Перейти к содержанию

[atcommand] @aura


Fox RM

Рекомендуемые сообщения

  • 1 месяц спустя...
  • 1 год спустя...
  • 3 месяца спустя...

А как добавить несколько аур на сервер?

Так же интересует этот вопрос.

Только глянув в патч понял что это смешивание еффектов.

А как сделать что бы грузило с папки клиента ауры?

Изменено пользователем unknown
  • Downvote 2
Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...

Возник вопрос: А какие оно эффекты подгружает? А именно какое название этих эффектов в папке дата?

название эффектов есть в списке

Ссылка на комментарий
Поделиться на другие сайты

Возник вопрос: А какие оно эффекты подгружает? А именно какое название этих эффектов в папке дата?

название эффектов есть в списке

Конечно спасибо за ответ. Если я правильно понял это

effect_list.txt

Только начал искать в клиенте и не нахожу еффекты например Water Escape Technique Как он в дате называется?

Изменено пользователем unknown
Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...

А вчём может быть дело, я добавил весь сорс, команда работает, но ауры не показывает, к примеру @aura 620 должна быть синяя словно кусок из Water Escape Technique а через @effect 620 работает

Также я пробовал через другой сорс @auraset но там такаяже фигня

@auraset by: [TwiTerror]

Updated by: Advi


Index: src/common/mmo.h
===================================================================
--- src/common/mmo.h (revision 14568)
+++ src/common/mmo.h (working copy)
@@ -316,6 +316,9 @@
int mother;
int child;

+ //Aura System
+ int aura;
+
unsigned int base_exp,job_exp;
int zeny;

Index: src/map/atcommand.c
===================================================================
--- src/map/atcommand.c (revision 14568)
+++ src/map/atcommand.c (working copy)
@@ -8592,6 +8592,45 @@


/*==========================================
+* Original code by [TwiTerror]
+* Redone by Advi
+* @auraset (aura) (character)
+*------------------------------------------
+*/
+int atcommand_auraset(
+const int fd, struct map_session_data* sd,
+const char* command, const char* message)
+{
+struct map_session_data *pl_sd = 0;
+int type = 0;
+
+if (!message || !*message || sscanf(message, "%d %[^\n]", &type, atcmd_player_name) < 2) {
+if (!message || !*message || sscanf(message, "%d", &type) < 1) {
+clif_displaymessage(fd, "Please, enter at least an option (usage: @auraset <aura> <char>).");
+return -1;
+}
+atcmd_player_name[0] = 0;
+pl_sd = sd;
+}
+
+if (pl_sd != sd){
+if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL || ((pl_sd = map_id2sd(atoi(atcmd_player_name))) != NULL && pl_sd->state.active)) {
+} else {
+return -1;
+}
+}
+
+pl_sd->status.aura = type;
+pc_setglobalreg(pl_sd,"USERAURA",type);
+
+pc_setpos(pl_sd, pl_sd->mapindex, pl_sd->bl.x, pl_sd->bl.y, 3);
+
+clif_displaymessage(fd, "Aura set.");
+
+return 0;
+}
+
+/*==========================================
* atcommand_info[] structure definition
*------------------------------------------*/

@@ -8895,6 +8934,7 @@
{ "delitem", 60,60, atcommand_delitem },
{ "charcommands", 1,1, atcommand_commands },
{ "font", 1,1, atcommand_font },
+ { "auraset", 60,60, atcommand_auraset },
};


Index: src/map/clif.c
===================================================================
--- src/map/clif.c (revision 14568)
+++ src/map/clif.c (working copy)
@@ -1134,6 +1134,7 @@
case BL_PC:
{
TBL_PC *sd = ((TBL_PC*)bl);
+ clif_sendauras((TBL_PC*)bl, SELF); //Aura System
if (sd->spiritball > 0)
clif_spiritball(sd);
if(sd->state.size==2) // tiny/big players [Valaris]
@@ -4156,6 +4157,12 @@
if(&sd->bl == bl)
break;
clif_getareachar_unit(sd,bl);
+ //Aura System
+ if (bl->type == BL_PC) {
+ struct map_session_data *tsd = (struct map_session_data *)bl;
+ clif_sendaurastoone(sd,tsd);
+ clif_sendaurastoone(tsd,sd);
+ }
break;
}
return 0;
@@ -14778,3 +14785,80 @@
add_timer_func_list(clif_delayquit, "clif_delayquit");
return 0;
}
+
+/*==========================================
+ * Aura System
+ *------------------------------------------*/
+
+void clif_sendauras( struct map_session_data *sd, int target )
+{
+int effect1;
+effect1 = sd->status.aura;
+
+if (sd->status.option & OPTION_HIDE)
+return;
+
+if (effect1 > 0)
+clif_specialeffect(&sd->bl, effect1, target);
+}
+
+
+/*==========================================
+ * Aura System
+ *------------------------------------------*/
+void clif_sendaurastoone( struct map_session_data *sd, struct map_session_data *dsd )
+{
+int effect1;
+effect1 = sd->status.aura;
+
+if (sd->status.option & OPTION_HIDE)
+return;
+
+if (effect1 > 0)
+clif_specialeffecttoone(&sd->bl, &dsd->bl, effect1);
+}
+
+/*==========================================
+ * Aura System
+ *------------------------------------------*/
+int clif_specialeffecttoone(struct block_list *bl, struct block_list *dst, int type) {
+
+struct map_session_data *sd = (struct map_session_data *)dst;
+
+WFIFOW(sd->fd,0) = 0x1f3;
+WFIFOL(sd->fd,2) = bl->id;
+WFIFOL(sd->fd,6) = type;
+WFIFOSET(sd->fd, packet_len(0x1f3));
+
+return 0;
+
+}
+
+/*==========================================
+ * Aura System
+ *------------------------------------------*/
+void clif_getareachar_char2(struct map_session_data* sd,struct block_list *bl)
+{
+map_foreachinarea(clif_insight2, bl->m, bl->x-AREA_SIZE, bl->y-AREA_SIZE, bl->x+AREA_SIZE, bl->y+AREA_SIZE, BL_PC, bl);
+}
+
+/*==========================================
+ * Aura System
+ *------------------------------------------*/
+int clif_insight2(struct block_list *bl,va_list ap)
+{
+struct block_list *tbl;
+TBL_PC *sd, *tsd;
+tbl=va_arg(ap,struct block_list*);
+
+if (bl == tbl) return 0;
+
+sd = BL_CAST(BL_PC, bl);
+tsd = BL_CAST(BL_PC, tbl);
+
+if (sd && sd->fd)
+{ //Tell sd that tbl walked into his view
+clif_getareachar_unit(sd,tbl);
+}
+return 0;
+}
Index: src/map/clif.h
===================================================================
--- src/map/clif.h (revision 14568)
+++ src/map/clif.h (working copy)
@@ -571,6 +571,13 @@
void clif_PartyBookingDeleteNotify(struct map_session_data* sd, int index);
void clif_PartyBookingInsertNotify(struct map_session_data* sd, struct party_booking_ad_info* pb_ad);

+// Aura System
+int clif_specialeffecttoone(struct block_list *bl, struct block_list *dst, int type);
+void clif_sendauras( struct map_session_data *sd, int target );
+void clif_sendaurastoone(struct map_session_data *sd, struct map_session_data *dsd);
+void clif_getareachar_char2(struct map_session_data* sd,struct block_list *bl);
+int clif_insight2(struct block_list *bl,va_list ap);
+
void clif_showdigit(struct map_session_data* sd, unsigned char type, int value);

#endif /* _CLIF_H_ */
Index: src/map/pc.c
===================================================================
--- src/map/pc.c (revision 14568)
+++ src/map/pc.c (working copy)
@@ -1016,6 +1016,9 @@
sd->change_level = pc_readglobalreg(sd,"jobchange_level");
sd->die_counter = pc_readglobalreg(sd,"PC_DIE_COUNTER");

+ //Aura System
+ sd->status.aura = pc_readglobalreg(sd,"USERAURA");
+
// Cash shop
sd->cashPoints = pc_readaccountreg(sd,"#CASHPOINTS");
sd->kafraPoints = pc_readaccountreg(sd,"#KAFRAPOINTS");
Index: src/map/pc.h
===================================================================
--- src/map/pc.h (revision 14568)
+++ src/map/pc.h (working copy)
@@ -312,6 +312,9 @@
int matk_rate;
int critical_rate,hit_rate,flee_rate,flee2_rate,def_rate,def2_rate,mdef_rate,mdef2_rate;

+ //Aura System
+ int aura;
+
int itemid;
short itemindex; //Used item's index in sd->inventory [Skotlex]

Index: src/map/status.c
===================================================================
--- src/map/status.c (revision 14568)
+++ src/map/status.c (working copy)
@@ -5507,6 +5507,14 @@
}
break;
case SC_HIDING:
+
+ //Aura System
+ if (sd && sd->status.aura > 0){
+ sd->status.aura *= -1;
+ clif_clearunit_area(&sd->bl, 4);
+ clif_getareachar_char2(sd, &sd->bl);
+ }
+
val2 = tick/1000;
tick = 1000;
val3 = 0; // unused, previously speed adjustment
@@ -6778,6 +6786,13 @@
break;

case SC_HIDING:
+
+ //Aura System
+ if (sd && sd->status.aura < 0){
+ sd->status.aura *= -1;
+ clif_sendauras(sd, AREA_WOS);
+ }
+
sc->option &= ~OPTION_HIDE;
opt_flag|= 2|4; //Check for warp trigger + AoE trigger
break;

Источник: http://www.mediafire...t [14568].patch

Отредактировал: Вообщем @auraset както само решилось, выставил ауру 620, перезашёл и появилась, что именно я сделал я так и не допёр, но знаю точно, что провёл процедуру установки патча через черепаху, также как и до этого =/

c @aura не прокатило , проблема осталась...

Изменено пользователем Flitemaster
Ссылка на комментарий
Поделиться на другие сайты

Отсутствуют строки:


int clif_setip(const char* ip)
@@ -1016,6 +1149,7 @@
clif_specialeffect(bl,423,AREA);
else if(sd->state.size==1)
clif_specialeffect(bl,421,AREA);
+ clif_sendauras((TBL_PC*)bl, AREA);
}
break;
case BL_MOB:
@@ -3388,6 +3522,7 @@
clif_specialeffect_single(bl,423,sd->fd);
else if(tsd->state.size==1)
clif_specialeffect_single(bl,421,sd->fd);
+ clif_sendaurastoone(tsd, sd);
}
break;
case BL_NPC:
@@ -3413,6 +3548,37 @@
}
}

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

Отсутствуют строки:


int clif_setip(const char* ip)
@@ -1016,6 +1149,7 @@
clif_specialeffect(bl,423,AREA);
else if(sd->state.size==1)
clif_specialeffect(bl,421,AREA);
+ clif_sendauras((TBL_PC*)bl, AREA);
}
break;
case BL_MOB:
@@ -3388,6 +3522,7 @@
clif_specialeffect_single(bl,423,sd->fd);
else if(tsd->state.size==1)
clif_specialeffect_single(bl,421,sd->fd);
+ clif_sendaurastoone(tsd, sd);
}
break;
case BL_NPC:
@@ -3413,6 +3548,37 @@
}
}

Спасибо тебе огромное Fox RM ты как обычно выручаешь!

Ссылка на комментарий
Поделиться на другие сайты

  • 7 месяцев спустя...
  • 3 года спустя...
×
×
  • Создать...
Яндекс.Метрика