EL Dragon Posted March 26, 2013 Group: Members Topic Count: 86 Topics Per Day: 0.02 Content Count: 591 Reputation: 146 Joined: 06/19/12 Last Seen: December 10, 2016 Share Posted March 26, 2013 Ich will machen das der Skill Heal und Slim Potion Pitcher +100% mehr machen. habe schon in src / map / (skill.c) gesucht aber finde da nicht wirklich was, und wen ich was finden würde wüste ich sicher nicht wie ich +100% mache kann wäre nett wen jemand ne kurze Erklärung hätte oder so Danke im Voraus Quote Link to comment Share on other sites More sharing options...
Plank Posted March 26, 2013 Group: Members Topic Count: 10 Topics Per Day: 0.00 Content Count: 44 Reputation: 2 Joined: 02/28/13 Last Seen: July 15, 2017 Share Posted March 26, 2013 Vielleicht hilft dir das: http://rathena.org/board/topic/61269-heal-skill-100stronger/ Quote Link to comment Share on other sites More sharing options...
EL Dragon Posted March 26, 2013 Group: Members Topic Count: 86 Topics Per Day: 0.02 Content Count: 591 Reputation: 146 Joined: 06/19/12 Last Seen: December 10, 2016 Author Share Posted March 26, 2013 hmn und mit Slim Potion Pitcher genau so? Quote Link to comment Share on other sites More sharing options...
Kenpachi Posted March 27, 2013 Group: Members Topic Count: 22 Topics Per Day: 0.00 Content Count: 764 Reputation: 220 Joined: 11/14/11 Last Seen: November 19, 2020 Share Posted March 27, 2013 Die Berechnung für den Heal Skill findest du in ../src/map/skill.c #ifdef RENEWAL /** * Renewal Heal Formula * Formula: ( [(Base Level + INT) / 5] x 30 ) x (Heal Level / 10) x (Modifiers) + MATK **/ hp = (status_get_lv(src) + status_get_int(src)) / 5 * 30 * skill_lv / 10; #else hp = ( status_get_lv(src) + status_get_int(src) ) / 8 * (4 + ( skill_id == AB_HIGHNESSHEAL ? ( sd ? pc_checkskill(sd,AL_HEAL) : 10 ) : skill_lv ) * 8); #endif Einfach nach "hp = (status_get_lv(src) + status_get_int(src)) / 5 * 30 * skill_lv / 10;" suchen. Darunter kommen noch ein paar kleine Anpassungen des HP-Wertes, spiel einfach mal ein wenig damit rum. Dann speichern und neu kompilieren. Für Potion Pitcher ist das ganze schon ein wenig versteckter. Die Berechnung ist in der selben Datei, aber dieses mal in der Funktion skill_castend_nodamage_id. Und in dieser Funktion gibt es dann einen Block der so beginnt: case AM_BERSERKPITCHER: case AM_POTIONPITCHER: { So ziemlich am Ende dieses Blocks wird dann mit der folgenden Zeile geheilt: status_heal(bl,hp,sp,0); Da "+100%" ja eigentlich nur verdoppeln heißt, kannst du daraus folgendes machen: status_heal(bl,hp*2,sp,0); Dann auch wieder speichern und neu kompilieren. Denk auch bitte an die Config (../conf/battle/skill.conf) in der der maximale Heal-Wert angegeben wird. // Level and Strength of "MVP heal". When someone casts a heal of this level or // above, the heal formula is bypassed and this value is used instead. max_heal: 9999 Quote Link to comment Share on other sites More sharing options...
EL Dragon Posted March 27, 2013 Group: Members Topic Count: 86 Topics Per Day: 0.02 Content Count: 591 Reputation: 146 Joined: 06/19/12 Last Seen: December 10, 2016 Author Share Posted March 27, 2013 hmn ich habe gemacht aber es geht nicht status_heal(bl,hp*2,sp,0); kann mann evtl. die Formel irgend wie ändern ? Quote Link to comment Share on other sites More sharing options...
Lemongrass Posted March 27, 2013 Group: Developer Topic Count: 28 Topics Per Day: 0.01 Content Count: 547 Reputation: 270 Joined: 11/08/11 Last Seen: June 10, 2024 Share Posted March 27, 2013 Hast du den Server anschließend neu kompiliert? Quote Link to comment Share on other sites More sharing options...
EL Dragon Posted March 27, 2013 Group: Members Topic Count: 86 Topics Per Day: 0.02 Content Count: 591 Reputation: 146 Joined: 06/19/12 Last Seen: December 10, 2016 Author Share Posted March 27, 2013 hmn ja also das mit Heal geht evtl kann mann ja int hp = potion_hp, sp = potion_sp; hp = hp * (100 + (tstatus->vit<<1))/100; sp = sp * (100 + (tstatus->int_<<1))/100; zu int hp = potion_hp, sp = potion_sp; hp = hp * (100 + (tstatus->vit<<1))/50; sp = sp * (100 + (tstatus->int_<<1))/50; machen oder soo kp..... Quote Link to comment Share on other sites More sharing options...
Lemongrass Posted March 27, 2013 Group: Developer Topic Count: 28 Topics Per Day: 0.01 Content Count: 547 Reputation: 270 Joined: 11/08/11 Last Seen: June 10, 2024 Share Posted March 27, 2013 Einfach hier: case AM_BERSERKPITCHER: case AM_POTIONPITCHER: { ... status_heal(bl,hp,sp,0); } break; case AM_CP_WEAPON: Umändern auf hp*2 bzw wenn du es für SP auch willst sp*2. Quote Link to comment Share on other sites More sharing options...
EL Dragon Posted March 28, 2013 Group: Members Topic Count: 86 Topics Per Day: 0.02 Content Count: 591 Reputation: 146 Joined: 06/19/12 Last Seen: December 10, 2016 Author Share Posted March 28, 2013 (edited) habe ich ja .... jedoch geht es nicht case AM_POTIONPITCHER: { int i,x,hp = 0,sp = 0,bonus=100; if( dstmd && dstmd->class_ == MOBID_EMPERIUM ) { map_freeblock_unlock(); return 1; } if( sd ) { x = skill_lv%11 - 1; i = pc_search_inventory(sd,skill_db[skill_id].itemid[x]); if( i < 0 || skill_db[skill_id].itemid[x] <= 0 ) { clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); return 1; } if(sd->inventory_data[i] == NULL || sd->status.inventory[i].amount < skill_db[skill_id].amount[x]) { clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); return 1; } if( skill_id == AM_BERSERKPITCHER ) { if( dstsd && dstsd->status.base_level < (unsigned int)sd->inventory_data[i]->elv ) { clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); return 1; } } potion_flag = 1; potion_hp = potion_sp = potion_per_hp = potion_per_sp = 0; potion_target = bl->id; run_script(sd->inventory_data[i]->script,0,sd->bl.id,0); potion_flag = potion_target = 0; if( sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ALCHEMIST ) bonus += sd->status.base_level; if( potion_per_hp > 0 || potion_per_sp > 0 ) { hp = tstatus->max_hp * potion_per_hp / 100; hp = hp * (100 + pc_checkskill(sd,AM_POTIONPITCHER)*10 + pc_checkskill(sd,AM_LEARNINGPOTION)*5)*bonus/10000; if( dstsd ) { sp = dstsd->status.max_sp * potion_per_sp / 100; sp = sp * (100 + pc_checkskill(sd,AM_POTIONPITCHER)*10 + pc_checkskill(sd,AM_LEARNINGPOTION)*5)*bonus/10000; } } else { if( potion_hp > 0 ) { hp = potion_hp * (100 + pc_checkskill(sd,AM_POTIONPITCHER)*10 + pc_checkskill(sd,AM_LEARNINGPOTION)*5)*bonus/10000; hp = hp * (100 + (tstatus->vit<<1)) / 100; if( dstsd ) hp = hp * (100 + pc_checkskill(dstsd,SM_RECOVERY)*10) / 100; } if( potion_sp > 0 ) { sp = potion_sp * (100 + pc_checkskill(sd,AM_POTIONPITCHER)*10 + pc_checkskill(sd,AM_LEARNINGPOTION)*5)*bonus/10000; sp = sp * (100 + (tstatus->int_<<1)) / 100; if( dstsd ) sp = sp * (100 + pc_checkskill(dstsd,MG_SRECOVERY)*10) / 100; } } if (sd->itemgrouphealrate[IG_POTION]>0) { hp += hp * sd->itemgrouphealrate[IG_POTION] / 100; sp += sp * sd->itemgrouphealrate[IG_POTION] / 100; } if( (i = pc_skillheal_bonus(sd, skill_id)) ) { hp += hp * i / 100; sp += sp * i / 100; } } else { hp = (1 + rnd()%400) * (100 + skill_lv*10) / 100; hp = hp * (100 + (tstatus->vit<<1)) / 100; if( dstsd ) hp = hp * (100 + pc_checkskill(dstsd,SM_RECOVERY)*10) / 100; } if( dstsd && (i = pc_skillheal2_bonus(dstsd, skill_id)) ) { hp += hp * i / 100; sp += sp * i / 100; } if( tsc && tsc->count ) { if( tsc->data[SC_CRITICALWOUND] ) { hp -= hp * tsc->data[SC_CRITICALWOUND]->val2 / 100; sp -= sp * tsc->data[SC_CRITICALWOUND]->val2 / 100; } if( tsc->data[SC_DEATHHURT] ) { hp -= hp * 20 / 100; sp -= sp * 20 / 100; } if( tsc->data[SC_WATER_INSIGNIA] && tsc->data[SC_WATER_INSIGNIA]->val1 == 2 ) { hp += hp / 10; sp += sp / 10; } } clif_skill_nodamage(src,bl,skill_id,skill_lv,1); if( hp > 0 || (skill_id == AM_POTIONPITCHER && sp <= 0) ) clif_skill_nodamage(NULL,bl,AL_HEAL,hp,1); if( sp > 0 ) clif_skill_nodamage(NULL,bl,MG_SRECOVERY,sp,1); #ifdef RENEWAL if( tsc && tsc->data[SC_EXTREMITYFIST2] ) sp = 0; #endif status_heal(bl,hp*2,sp,0); } Edited March 28, 2013 by EL Dragon Quote Link to comment Share on other sites More sharing options...
Lemongrass Posted March 28, 2013 Group: Developer Topic Count: 28 Topics Per Day: 0.01 Content Count: 547 Reputation: 270 Joined: 11/08/11 Last Seen: June 10, 2024 Share Posted March 28, 2013 Kann es sein, dass es falsch angezeigt wird, jedoch die doppelte Anzahl heilt? Quote Link to comment Share on other sites More sharing options...
EL Dragon Posted March 28, 2013 Group: Members Topic Count: 86 Topics Per Day: 0.02 Content Count: 591 Reputation: 146 Joined: 06/19/12 Last Seen: December 10, 2016 Author Share Posted March 28, 2013 hmn ne habe es eben geh testet -.- 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.