Lilith Posted December 24, 2011 Group: Members Topic Count: 14 Topics Per Day: 0.00 Content Count: 407 Reputation: 159 Joined: 11/18/11 Last Seen: November 15, 2014 Share Posted December 24, 2011 (edited) Пересобраный diff-файл для работы на новых ревизиях ветки rAthena. Автор: digitalhamster Оригинальный топик: здесь Charms_Revision_15289.patch Edited December 28, 2011 by Lilith Quote Link to comment Share on other sites More sharing options...
Golem1988 Posted August 14, 2012 Group: Members Topic Count: 57 Topics Per Day: 0.01 Content Count: 162 Reputation: 1 Joined: 08/08/12 Last Seen: December 10, 2023 Share Posted August 14, 2012 простите за вероятно тупой вопрос, но что такое чармы? Quote Link to comment Share on other sites More sharing options...
Krivedkin Posted August 17, 2012 Group: Members Topic Count: 8 Topics Per Day: 0.00 Content Count: 89 Reputation: 1 Joined: 01/09/12 Last Seen: November 29, 2022 Share Posted August 17, 2012 Как я понял, это типо гомункулов, только у соцесеров. Quote Link to comment Share on other sites More sharing options...
kadze Posted August 17, 2012 Group: Members Topic Count: 1 Topics Per Day: 0.00 Content Count: 58 Reputation: 5 Joined: 12/12/11 Last Seen: March 10, 2024 Share Posted August 17, 2012 это предметы,которые ЛЕЖАТ в инвентаре и дают какие либо св-ва,т.е. надевать их не нужно. Quote Link to comment Share on other sites More sharing options...
Krivedkin Posted August 18, 2012 Group: Members Topic Count: 8 Topics Per Day: 0.00 Content Count: 89 Reputation: 1 Joined: 01/09/12 Last Seen: November 29, 2022 Share Posted August 18, 2012 это предметы,которые ЛЕЖАТ в инвентаре и дают какие либо св-ва,т.е. надевать их не нужно. Поясните пжлст. Quote Link to comment Share on other sites More sharing options...
kadze Posted August 18, 2012 Group: Members Topic Count: 1 Topics Per Day: 0.00 Content Count: 58 Reputation: 5 Joined: 12/12/11 Last Seen: March 10, 2024 Share Posted August 18, 2012 что еще вам нужно пояснить? Quote Link to comment Share on other sites More sharing options...
Lilith Posted August 18, 2012 Group: Members Topic Count: 14 Topics Per Day: 0.00 Content Count: 407 Reputation: 159 Joined: 11/18/11 Last Seen: November 15, 2014 Author Share Posted August 18, 2012 Обычные вещи дают бонус ( str+3, к примеру ) только если их надеть на персонажа. Этот мод добавляет возможность использовать новые предметы, которые дают бонусы, находясь в инвентаре персонажа ( надевать их не нужно ). Quote Link to comment Share on other sites More sharing options...
Krivedkin Posted August 18, 2012 Group: Members Topic Count: 8 Topics Per Day: 0.00 Content Count: 89 Reputation: 1 Joined: 01/09/12 Last Seen: November 29, 2022 Share Posted August 18, 2012 Обычные вещи дают бонус ( str+3, к примеру ) только если их надеть на персонажа. Этот мод добавляет возможность использовать новые предметы, которые дают бонусы, находясь в инвентаре персонажа ( надевать их не нужно ). А, понял. Зачаровывание брони к примеру? Там еще сфера появляется. Оно? Quote Link to comment Share on other sites More sharing options...
Golem1988 Posted August 25, 2012 Group: Members Topic Count: 57 Topics Per Day: 0.01 Content Count: 162 Reputation: 1 Joined: 08/08/12 Last Seen: December 10, 2023 Share Posted August 25, 2012 Обычные вещи дают бонус ( str+3, к примеру ) только если их надеть на персонажа. Этот мод добавляет возможность использовать новые предметы, которые дают бонусы, находясь в инвентаре персонажа ( надевать их не нужно ). А, понял. Зачаровывание брони к примеру? Там еще сфера появляется. Оно? Нет не оно... блин, положил в инвентарь шмотку, просто положил. она там лежит, и бонус дает при этом. ее не надо ни одевать ни использовать, она просто лежит там и бонус дает... Вааще сама идея имхо бредовая, с учетом тогочто в данное время способен сам РО дать персонажу все эти ваши чармы, которые я видел на одном из русских серваков кажется мне лишней хренью... Но, в принципе мысль интересная... пасиб за то, что делишься системой ) Quote Link to comment Share on other sites More sharing options...
Krivedkin Posted August 27, 2012 Group: Members Topic Count: 8 Topics Per Day: 0.00 Content Count: 89 Reputation: 1 Joined: 01/09/12 Last Seen: November 29, 2022 Share Posted August 27, 2012 Обычные вещи дают бонус ( str+3, к примеру ) только если их надеть на персонажа. Этот мод добавляет возможность использовать новые предметы, которые дают бонусы, находясь в инвентаре персонажа ( надевать их не нужно ). А, понял. Зачаровывание брони к примеру? Там еще сфера появляется. Оно? Нет не оно... блин, положил в инвентарь шмотку, просто положил. она там лежит, и бонус дает при этом. ее не надо ни одевать ни использовать, она просто лежит там и бонус дает... Вааще сама идея имхо бредовая, с учетом тогочто в данное время способен сам РО дать персонажу все эти ваши чармы, которые я видел на одном из русских серваков кажется мне лишней хренью... Но, в принципе мысль интересная... пасиб за то, что делишься системой ) Дошло=) Да, задумка интересная, но бредовая...=) Quote Link to comment Share on other sites More sharing options...
kadze Posted August 27, 2012 Group: Members Topic Count: 1 Topics Per Day: 0.00 Content Count: 58 Reputation: 5 Joined: 12/12/11 Last Seen: March 10, 2024 Share Posted August 27, 2012 если ты не играл в д2,то для тебя бредовая Quote Link to comment Share on other sites More sharing options...
Benefaktor Posted August 28, 2012 Group: Members Topic Count: 23 Topics Per Day: 0.01 Content Count: 72 Reputation: 0 Joined: 07/19/12 Last Seen: November 8, 2012 Share Posted August 28, 2012 Было бы тру если бы сделали дополнительную ячейку в экиппировке,например ожерелье. Quote Link to comment Share on other sites More sharing options...
kadze Posted August 28, 2012 Group: Members Topic Count: 1 Topics Per Day: 0.00 Content Count: 58 Reputation: 5 Joined: 12/12/11 Last Seen: March 10, 2024 Share Posted August 28, 2012 пиши в гравити Quote Link to comment Share on other sites More sharing options...
Lilith Posted August 28, 2012 Group: Members Topic Count: 14 Topics Per Day: 0.00 Content Count: 407 Reputation: 159 Joined: 11/18/11 Last Seen: November 15, 2014 Author Share Posted August 28, 2012 это и самому можно сделать :-) Quote Link to comment Share on other sites More sharing options...
kadze Posted August 28, 2012 Group: Members Topic Count: 1 Topics Per Day: 0.00 Content Count: 58 Reputation: 5 Joined: 12/12/11 Last Seen: March 10, 2024 Share Posted August 28, 2012 Смогут только единицы =) Quote Link to comment Share on other sites More sharing options...
Golem1988 Posted August 28, 2012 Group: Members Topic Count: 57 Topics Per Day: 0.01 Content Count: 162 Reputation: 1 Joined: 08/08/12 Last Seen: December 10, 2023 Share Posted August 28, 2012 если ты не играл в д2,то для тебя бредовая Играл в д2... помню талисманы... в принципе не так и бредово, но надо долго думать как это все красиво преподнести, чтобы баланс не сбивать... а то толку от реньювала вааще не будет Смогут только единицы =) далана? переписать базу данных предметов (или один предмет) и поменять циферку 1 на циферку 2, и переписать itemslotcounttable это челленж для избранных? Помню как делали раньше квесты на двуслотовую клипсу ) Quote Link to comment Share on other sites More sharing options...
kadze Posted August 28, 2012 Group: Members Topic Count: 1 Topics Per Day: 0.00 Content Count: 58 Reputation: 5 Joined: 12/12/11 Last Seen: March 10, 2024 Share Posted August 28, 2012 (edited) а как ты выведешь отображение нового слота в эквипе для ожерелья? речь шла об этом,а не о двухслотовой клипе Edited August 28, 2012 by kadze Quote Link to comment Share on other sites More sharing options...
Golem1988 Posted September 22, 2012 Group: Members Topic Count: 57 Topics Per Day: 0.01 Content Count: 162 Reputation: 1 Joined: 08/08/12 Last Seen: December 10, 2023 Share Posted September 22, 2012 (edited) а как ты выведешь отображение нового слота в эквипе для ожерелья? речь шла об этом,а не о двухслотовой клипе переписать itemslotcounttable мой же постitemslotcounttable = itemslotcounttable.txt в папке дата либо в грф файле. Но таки да, видимо открыть текстовый файл это снова челленж для избранных @Лилит, есть ли возможность забубенить привязку спрайта к чармам? Ну или ауру чтоли... Тоесть чарм попадает к тебе в инвентарь и у тебя меняется аура... Просто не хочу никаких бонусов итд, хочу внешних изменений ) и аура как-то больше мне нравится как вариант чем спрайты... Надеюсь, на чистой рА можно использовать несколько видов аур без изменения сорса? Edited September 22, 2012 by Golem1988 Quote Link to comment Share on other sites More sharing options...
Lilith Posted September 22, 2012 Group: Members Topic Count: 14 Topics Per Day: 0.00 Content Count: 407 Reputation: 159 Joined: 11/18/11 Last Seen: November 15, 2014 Author Share Posted September 22, 2012 (edited) а как ты выведешь отображение нового слота в эквипе для ожерелья? речь шла об этом,а не о двухслотовой клипе переписать itemslotcounttable мой же постitemslotcounttable = itemslotcounttable.txt в папке дата либо в грф файле. Но таки да, видимо открыть текстовый файл это снова челленж для избранных @Лилит, есть ли возможность забубенить привязку спрайта к чармам? Ну или ауру чтоли... Тоесть чарм попадает к тебе в инвентарь и у тебя меняется аура... Просто не хочу никаких бонусов итд, хочу внешних изменений ) и аура как-то больше мне нравится как вариант чем спрайты... Надеюсь, на чистой рА можно использовать несколько видов аур без изменения сорса? itemslotcounttable в данном случае не поможет, т.к. он изменяет кол-во слотов в предмете, а не в окне экипировки. Зайди в игру и открой окно экипировки и ты увидишь слоты экипировки, в которые вещи "одеваются". Увеличить их кол-во можно хексом ехе, хотя один слот вроде можно и без хекса использовать. Только сейчас проверил: в rathena не реализованы ещё 2 слота во второй закладке экипировки По поводу аур - всё равно придётся править исходники одной командой specialeffect тут явно не обойтись. Edited September 22, 2012 by Lilith Quote Link to comment Share on other sites More sharing options...
kadze Posted September 22, 2012 Group: Members Topic Count: 1 Topics Per Day: 0.00 Content Count: 58 Reputation: 5 Joined: 12/12/11 Last Seen: March 10, 2024 Share Posted September 22, 2012 а как ты выведешь отображение нового слота в эквипе для ожерелья? речь шла об этом,а не о двухслотовой клипе переписать itemslotcounttable мой же постitemslotcounttable = itemslotcounttable.txt в папке дата либо в грф файле. Но таки да, видимо открыть текстовый файл это снова челленж для избранных @Лилит, есть ли возможность забубенить привязку спрайта к чармам? Ну или ауру чтоли... Тоесть чарм попадает к тебе в инвентарь и у тебя меняется аура... Просто не хочу никаких бонусов итд, хочу внешних изменений ) и аура как-то больше мне нравится как вариант чем спрайты... Надеюсь, на чистой рА можно использовать несколько видов аур без изменения сорса? Просто кто то не понимает о чем идет речь и начинает строить из себя умного Quote Link to comment Share on other sites More sharing options...
Golem1988 Posted September 22, 2012 Group: Members Topic Count: 57 Topics Per Day: 0.01 Content Count: 162 Reputation: 1 Joined: 08/08/12 Last Seen: December 10, 2023 Share Posted September 22, 2012 (edited) Просто кто то не понимает о чем идет речь и начинает строить из себя умного А сорри, реально сорри, подумал что ты совсем про другие слоты А ты имел ввиду слот для одевания одежды. Или скорее место. Я не думаю что просто хексом тут можно обойтись, потому как в сорсу это тоже прописывать надо будет. @Лилит, я так понимаю с кастомными спрайтами тут попроще? Вчера рыл форум на наличие системы смены аур итд, нашел пока только какойто мусор и один дифф для еА... Мож есть какая ссылка на норм систему смены аур, а то вроде как это не сложно делается... в принципе над будет попробовать с этим диффом разобраться... Index: common/mmo.h =================================================================== --- common/mmo.h (revision 150) +++ common/mmo.h (working copy) @@ -301,6 +301,9 @@ int father; int mother; int child; + + //Aura System + int aura; unsigned int base_exp,job_exp; int zeny; Index: map/atcommand.c =================================================================== --- map/atcommand.c (revision 150) +++ map/atcommand.c (working copy) @@ -9060,8 +9060,46 @@ return 0; } +/*========================================== +* 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 *------------------------------------------*/ @@ -9373,6 +9411,7 @@ { "whosell", 60,99, atcommand_shopsearch }, { "nochat", 0,10, atcommand_nochat}, { "requestgm", 0,10, atcommand_requestgm }, + { "auraset", 60,60, atcommand_auraset }, //Aura System }; Index: map/clif.c =================================================================== --- map/clif.c (revision 150) +++ map/clif.c (working copy) @@ -1077,6 +1077,9 @@ 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] @@ -3963,6 +3966,14 @@ 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; @@ -4047,6 +4058,8 @@ if (sd && sd->fd) { //Tell sd that tbl walked into his view clif_getareachar_unit(sd,tbl); + clif_sendaurastoone(sd,tsd); //Aura System + clif_sendaurastoone(tsd,sd); //Aura System } return 0; } @@ -14369,3 +14382,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: map/clif.h =================================================================== --- map/clif.h (revision 150) +++ map/clif.h (working copy) @@ -465,3 +465,10 @@ void clif_progressbar(struct map_session_data * sd, unsigned long color, unsigned int second); void clif_progressbar_abort(struct map_session_data * sd); #endif /* _CLIF_H_ */ + +// 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); Index: map/pc.c =================================================================== --- map/pc.c (revision 150) +++ map/pc.c (working copy) @@ -1019,6 +1019,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"); Index: map/pc.h =================================================================== --- map/pc.h (revision 150) +++ map/pc.h (working copy) @@ -297,6 +297,9 @@ int hprecov_rate,sprecov_rate; 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: map/status.c =================================================================== --- map/status.c (revision 150) +++ map/status.c (working copy) @@ -5397,6 +5397,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 @@ -6651,6 +6659,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; Edited September 22, 2012 by Golem1988 Quote Link to comment Share on other sites More sharing options...
pizda Posted October 7, 2012 Group: Members Topic Count: 0 Topics Per Day: 0 Content Count: 2 Reputation: 0 Joined: 10/07/12 Last Seen: October 28, 2013 Share Posted October 7, 2012 Автор! Спасибо! Quote Link to comment Share on other sites More sharing options...
zdox21 Posted August 1, 2013 Group: Members Topic Count: 4 Topics Per Day: 0.00 Content Count: 19 Reputation: 0 Joined: 09/30/12 Last Seen: February 21, 2021 Share Posted August 1, 2013 Выдает такую ошибку... Как с этим бороться? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.