EIysium

Members
  • Content Count

    38
  • Avg. Content Per Day

    0
  • Joined

  • Last visited

  • Days Won

    1

EIysium last won the day on February 17

EIysium had the most liked content!

Community Reputation

4 Neutral

About EIysium

  • Rank
    Drops

Profile Information

  • Gender
    Male
  • Location
    Chile

Recent Profile Visitors

1,059 profile views
  1. Hi, i have a problem that I have not been able to solve. I want make Hatred Level 1 only for players and all classes, that only receive 50% more damage. Hatred Level 2: only for monsters, that only receive 200% more damage. Hatred Level 3: only for emperium, that only receive 500% more damage. Thank you for your time o/
  2. Hello, you can do in src/map/pc.cpp (Don't forget recompile) Search: if(sd->bl.prev == NULL || pc_isdead(sd)) return; and add below: if(sd->status.base_level >= 99) base_exp = 0; Tested and works fine. Original Topic.
  3. You can do this in src/map/status.cpp and search: // Strip skills, need to divest something or it fails. case SC_STRIPWEAPON: if (sd && !(flag&SCSTART_LOADED)) { // Apply sc anyway if loading saved sc_data short i; opt_flag = 0; // Reuse to check success condition. if(sd->bonus.unstripable_equip&EQP_WEAPON) return 0; i = sd->equip_index[EQI_HAND_L]; if (i>=0 && sd->inventory_data[i] && sd->inventory_data[i]->type == IT_WEAPON) { opt_flag|=1; pc_unequipitem(sd,i,3); // Left-hand weapon } i = sd->equip_index[EQI_HAND_R]; if (i>=0 && sd->inventory_data[i] && sd->inventory_data[i]->type == IT_WEAPON) { opt_flag|=2; pc_unequipitem(sd,i,3); } if (!opt_flag) return 0; } if (tick == 1) return 1; // Minimal duration: Only strip without causing the SC break; case SC_STRIPSHIELD: if( val2 == 1 ) val2 = 0; // GX effect. Do not take shield off.. else if (sd && !(flag&SCSTART_LOADED)) { short i; if(sd->bonus.unstripable_equip&EQP_SHIELD) return 0; i = sd->equip_index[EQI_HAND_L]; if ( i < 0 || !sd->inventory_data[i] || sd->inventory_data[i]->type != IT_ARMOR ) return 0; pc_unequipitem(sd,i,3); } if (tick == 1) return 1; // Minimal duration: Only strip without causing the SC break; case SC_STRIPARMOR: if (sd && !(flag&SCSTART_LOADED)) { short i; if(sd->bonus.unstripable_equip&EQP_ARMOR) return 0; i = sd->equip_index[EQI_ARMOR]; if ( i < 0 || !sd->inventory_data[i] ) return 0; pc_unequipitem(sd,i,3); } if (tick == 1) return 1; // Minimal duration: Only strip without causing the SC break; case SC_STRIPHELM: if (sd && !(flag&SCSTART_LOADED)) { short i; if(sd->bonus.unstripable_equip&EQP_HELM) return 0; i = sd->equip_index[EQI_HEAD_TOP]; if ( i < 0 || !sd->inventory_data[i] ) return 0; pc_unequipitem(sd,i,3); } if (tick == 1) return 1; // Minimal duration: Only strip without causing the SC break; And replace with this: // Strip skills, need to divest something or it fails. case SC_STRIPWEAPON: if (sd && !(flag&SCSTART_LOADED)) { // Apply sc anyway if loading saved sc_data short i; opt_flag = 0; // Reuse to check success condition. if(sd->bonus.unstripable_equip&EQP_WEAPON) return 0; i = sd->equip_index[EQI_HAND_L]; if (i>=0 && sd->inventory_data[i] && sd->inventory_data[i]->type == IT_WEAPON) { pc_unequipitem(sd,i,3); // Left-hand weapon } i = sd->equip_index[EQI_HAND_R]; if (i>=0 && sd->inventory_data[i] && sd->inventory_data[i]->type == IT_WEAPON) { pc_unequipitem(sd,i,3); } } if (tick == 1) return 1; // Minimal duration: Only strip without causing the SC break; case SC_STRIPSHIELD: if (sd && !(flag&SCSTART_LOADED)) { short i; opt_flag = 0; // Reuse to check success condition. if(sd->bonus.unstripable_equip&EQP_SHIELD) return 0; i = sd->equip_index[EQI_HAND_L]; if (i>=0 && sd->inventory_data[i] && sd->inventory_data[i]->type == IT_ARMOR) { pc_unequipitem(sd,i,3); } } if (tick == 1) return 1; // Minimal duration: Only strip without causing the SC break; case SC_STRIPARMOR: if (sd && !(flag&SCSTART_LOADED)) { short i; opt_flag = 0; // Reuse to check success condition. if(sd->bonus.unstripable_equip&EQP_ARMOR) return 0; i = sd->equip_index[EQI_ARMOR]; if (i>=0 && sd->inventory_data[i] && sd->inventory_data[i]->type == IT_ARMOR) { pc_unequipitem(sd,i,3); } } if (tick == 1) return 1; // Minimal duration: Only strip without causing the SC break; case SC_STRIPHELM: if (sd && !(flag&SCSTART_LOADED)) { short i; opt_flag = 0; // Reuse to check success condition. if(sd->bonus.unstripable_equip&EQP_HELM) return 0; i = sd->equip_index[EQI_HEAD_TOP]; if (i>=0 && sd->inventory_data[i] && sd->inventory_data[i]->type == IT_ARMOR) { pc_unequipitem(sd,i,3); } } if (tick == 1) return 1; // Minimal duration: Only strip without causing the SC break; Tested and works fine
  4. Olá, você pode retirar essa condição em src/map/skill.cpp e procura a linha: status_change_clear_buffs(target, SCCB_BUFFS | SCCB_CHEM_PROTECT); e remove "SCCB_CHEM_PROTECT" status_change_clear_buffs(target, SCCB_BUFFS); Não se esqueça de recompilar seu server.
  5. Search src/config/renewal.hpp and comment with // (don't forget recompile). //#define RENEWAL //#define RENEWAL_CAST //#define RENEWAL_DROP //#define RENEWAL_EXP //#define RENEWAL_LVDMG //#define RENEWAL_ASPD //#define RENEWAL_STAT
  6. You can do manually looking in: db/(pre-re or re)/mob_db.txt db/(pre-re or re)/item_bluebox.txt db/(pre-re or re)/item_giftbox.txt db/(pre-re or re)/item_violetbox.txt db/(pre-re or re)/item_db.txt npc/anything with shops
  7. Test in another map and write @disguise 1874 if you keep giving an error, it's because you do not have the sprite of Beelzebub in your kRO. Probably, they had already answered you above. Maybe it's that you do not have updated your kRO. I recommend you download this: Or download RSU updater: http://nn.ai4rei.net/dev/rsu/
  8. src/char/char.cpp and search: !(start_job == JOB_SUMMONER && (charserv_config.allowed_job_flag&2))) Change (charserv_config.allowed_job_flag&2))) to (charserv_config.allowed_job_flag&1))) !(start_job == JOB_SUMMONER && (charserv_config.allowed_job_flag&1))) Don't forget recompile your server.
  9. db/import/skill_db.txt and paste: 80,9,8,2,3,0x20,1:1:1:1:1:2:2:2:2:2:2,10,3:4:5:6:7:8:9:10:11:12,yes,0,0x2000,5,magic,0,0x1, WZ_FIREPILLAR,Fire Pillar src/map/skill.cpp Find this line: case WZ_FIREPILLAR: if( map_getcell(src->m, x, y, CELL_CHKLANDPROTECTOR) ) return NULL; if((flag&1)!=0) limit=1000; val1=skill_lv+2; break; And comment below case WZ_FIREPILLAR: //if( map_getcell(src->m, x, y, CELL_CHKLANDPROTECTOR) ) //return NULL; if((flag&1)!=0) limit=1000; val1=skill_lv+2; break; Search this: //It deletes everything except traps and barriers if ((!(skill_get_inf2(unit->group->skill_id)&(INF2_TRAP)) && !(skill_get_inf3(unit->group->skill_id)&(INF3_NOLP))) || unit->group->skill_id == WZ_FIREPILLAR || unit->group->skill_id == GN_HELLS_PLANT) { if (skill_get_unit_flag(unit->group->skill_id)&UF_RANGEDSINGLEUNIT) { if (unit->val2&UF_RANGEDSINGLEUNIT) skill_delunitgroup(unit->group); } else skill_delunit(unit); return 1; } break; and remove: unit->group->skill_id == WZ_FIREPILLAR || //It deletes everything except traps and barriers if ((!(skill_get_inf2(unit->group->skill_id)&(INF2_TRAP)) && !(skill_get_inf3(unit->group->skill_id)&(INF3_NOLP))) || unit->group->skill_id == GN_HELLS_PLANT) { if (skill_get_unit_flag(unit->group->skill_id)&UF_RANGEDSINGLEUNIT) { if (unit->val2&UF_RANGEDSINGLEUNIT) skill_delunitgroup(unit->group); } else skill_delunit(unit); return 1; } break; Then recompile your server, i've tested by myself. Hope it helps.
  10. I tested custom BGM and seems works fine. Maybe you put the song name with the extension, playBGMall "bio5.mp3"; and should be playBGMall "bio5";
  11. You had an extra TAB in prontera,147,170,4 and you miss , in "Poison Bottle to Item Ticket" C_4; and should be "Poison Bottle to item Ticket",C_4; C_OW you miss put : Btw, i recommend you use switch(select in menu tab, is more easy to use and less tedious. I made an example script to help you: prontera,150,171,4 script Item Trader 622,{ disable_items; disable_command; mes "[^711872Trader^000000]"; mes "Hello hello Hello!"; switch(select("Item Ticket to Yggdrasil Berry:Item Ticket to Poison Bottle:Yggdrasil Berry to Item Ticket:Poison Bottle to Item Ticket:- Close.")) { case 1: if (checkweight(607,100) == 0 ) goto C_OW; if(countitem(7284)<1) goto C_NI; delitem 7284,1; getitem 607,100; mes "[^711872Trader^000000]"; mes "[There you go!]"; close; case 2: if (checkweight(678,30) == 0 ) goto L_OW; if(countitem(7284)<1) goto C_NI; delitem 7284,1; getitem 678,300; next; mes "[^711872Trader^000000]"; mes "[There you go!]"; close; case 3: next; if(countitem(607)<100) goto C_NI; delitem 607,100; getitem 7284,1; mes "[^711872Trader^000000]"; mes "[There you go!]"; close; case 4: next; if(countitem(678)<30) goto C_NI; delitem 678,30; getitem 7284,1; mes "[^711872Trader^000000]"; mes "[There you go!]"; close; case 5: next; mes "[^711872Trader^000000]"; mes "See ya!"; close; C_OW: next; mes "[^711872Trader^000000]"; mes "Sorry you're overweight"; close; C_NI: next; mes "[^711872Trader^000000]"; mes "[You don't have the items]"; close; } } I recommend you use disable_items; and disable_command; to prevent exploits. hope it helped you.
  12. https://github.com/rathena/rathena/pull/3548
  13. You can put the condition in src/map/skill.cpp (See Magenta Skill from Ranger). For unit skills you can browse in db/skill_unit_db.txt.