Jump to content

  •  

Blinzer

Member Since 21 Apr 2014
Offline Last Active Apr 25 2017 01:18 PM
-----

Topics I've Started

poison damage doubling the experience you receive

03 March 2017 - 09:32 PM

this is a long lasting problem i've had since i'm using an older version of hercules where poison damage doubles the experience you receive from the damage of the poison, and likewise venom dust gives you NO experience for the damage from that poison. can anyone point me to the commit that fixes these two problems?


sitting regen nerf(200% --> 150%)

01 March 2017 - 06:00 PM

i know it's in here somewhere, but i just can't find it

 

Spoiler

 

i've tried changing at least 7 different things(including in other places in status.c) and not a single one affected the double sitting regen


making slim potion pitcher great again

15 January 2017 - 12:28 AM

alright so simply put

 

WelltodoGiantAlligator.gif

 

 

as you can see, sling item equips the food as ammunition and then you can sling it to another player to give them the buff effects of the food

 

i need help doing the same thing with slim potion pitcher. i already know how to make items into ammo, so the only thing i need help with is the source code aspect and make it search for whatever ammo you have equipped instead of whatever it's doing. i have highlighted the suspected culprits

 

 


 

case CR_SLIMPITCHER:

            if (sd) {
                int i = skill_lv%11 - 1;
                int j = pc->search_inventory(sd,skill->db[skill_id].itemid[i]);
                if( j < 0 || skill->db[skill_id].itemid[i] <= 0 ) 
                {
                    clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
                    return 1;
                }
                script->potion_flag = 1;
                script->potion_hp = 0;
                script->potion_sp = 0;
                script->run(sd->inventory_data[j]->script,0,sd->bl.id,0); <---- i suspect this to be the game running the effects of the item on the target player(s)
                script->potion_flag = 0;
                //Apply skill bonuses
                i = pc->checkskill(sd,CR_SLIMPITCHER)*10
                    + pc->checkskill(sd,AM_POTIONPITCHER)*10
                    + pc->checkskill(sd,AM_LEARNINGPOTION)*5
                    + pc->skillheal_bonus(sd, skill_id);
 
                script->potion_hp = script->potion_hp * (100+i)/100;
                script->potion_sp = script->potion_sp * (100+i)/100;
 
                if(script->potion_hp > 0 || script->potion_sp > 0) {
                    i = skill->get_splash(skill_id, skill_lv);
                    map->foreachinarea(skill->area_sub,
                                       src->m,x-i,y-i,x+i,y+i,BL_CHAR,
                                       src,skill_id,skill_lv,tick,flag|BCT_PARTY|BCT_GUILD|1,
                                       skill->castend_nodamage_id);
                }
            } else {
                int i = skill_lv%11 - 1;
                struct item_data *item;
                i = skill->db[skill_id].itemid[i];
                item = itemdb->search(i);
                script->potion_flag = 1;
                script->potion_hp = 0;
                script->potion_sp = 0;
                script->run(item->script,0,src->id,0);
                script->potion_flag = 0;
                i = skill->get_max(CR_SLIMPITCHER)*10;
 
                script->potion_hp = script->potion_hp * (100+i)/100;
                script->potion_sp = script->potion_sp * (100+i)/100;
 
                if(script->potion_hp > 0 || script->potion_sp > 0) {
                    i = skill->get_splash(skill_id, skill_lv);
                    map->foreachinarea(skill->area_sub,
                                       src->m,x-i,y-i,x+i,y+i,BL_CHAR,
                                       src,skill_id,skill_lv,tick,flag|BCT_PARTY|BCT_GUILD|1,
                                       skill->castend_nodamage_id);
                }
            }
            break;
 
 
please note that i will not be using any values specified in the skill_require_db, i will be opting for a hard code of each individual item id that is valid for ammo.
 
 
other info from previous attempts:
 
when getting help before, they suggested me to use this code(which is basically sling item's)
 

 

case CR_SLIMPITCHER:

 

            if( dstmd && (dstmd->class_ == MOBID_EMPERIUM || (dstmd->class_ >= MOBID_BARRICADE1 && dstmd->class_ <= MOBID_GUARIDAN_STONE2)) )
                break;
            if( sd ) {
                short ammo_id;
                int equip_idx = sd->equip_index[EQI_AMMO];
                if( equip_idx <= 0 )
                    break; // No ammo.
                ammo_id = sd->inventory_data[equip_idx]->nameid;
                if( ammo_id <= 0 )
                    break;
                sd->itemid = ammo_id;
               
                if( ammo_id == 545 || ammo_id == 546 || ammo_id == 547 ) {
                    struct script_code *scriptroot = sd->inventory_data[equip_idx]->script;
                    if( !scriptroot )
                        break;
                    if( dstsd )
                        script->run(scriptroot,0,dstsd->bl.id,npc->fake_nd->bl.id);
                    else
                        script->run(scriptroot,0,src->id,0);
                }
            }
 
 
but the problem is that not only does the ammunition provide its buffs to the wielder like this when it gets equipped, but it doesn't even use the ammunition at all and opts to search for the item requirement defined in skill_require_db anyways.

Where does the game apply the bonus ATK from refine in pre-re?

19 December 2016 - 11:18 PM

I'm trying to turn the ATK bonus refinement gives into a % increase in damage(pre-re), but can't find where the game does its formulas and such for refinement. I've already changed the values in refine_db accordingly, but can't find where it pulls those values in the source(though admittedly, I haven't checked battle calculations). Can someone help me out?


Rebalancing Rogue/Stalker - Revival of Ragnarok Online Stalker Spotlight(Video)

13 December 2016 - 11:11 AM

 
Revival of Ragnarok Online is an ongoing project which has made innumerable improvements to the game "Ragnarok Online". As one of many parts of the project, I have redesigned classes to be more efficient and unique at fulfilling their roles in the PvM and PvP, bringing them up to the standard they should have been designed with in the first place. Stalker is a class which specializes in stealthily out-maneuvering opponents and sabotaging them.
 
In this video you can see the class grow by acquiring items from various dungeon monsters and using them to defeat stronger monsters, giving a small demonstration of the progression that has been forged in this project. As the more keen of you will notice, the monsters in these videos pose much more of a threat and are much more intelligent than in the original game, making these feats all the more impressive at such low levels.
 
Many more spotlight videos will come in the next few weeks showcasing classes, monsters, items, refinement and progression. For those interested, the server's approximate launch date will be sometime in mid January, depending on how long it takes to finish. If you were looking for the server that has done it right, your search has now come to an end. Always remember that there is no magic in greatness, only pure hard work.