Jump to content

Louis T Steinhil

Members
  • Posts

    92
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by Louis T Steinhil

  1. Try to search that RixSquirrel. I think that's just font of RO. The quierytransparentiteminfo try that ignore error patch from warp? maybe that'll work
  2. Good day! I tried editing this act & spr in act editor because it doesn't have "actions". So I went copying some actions from other headgear. ¿©_cons_of_poison.act ¿©_cons_of_poison.spr This is the original act & spr and this is the edited act & spr. For some reason it always crash my client. Anyone else know why? Thanks in advance! ³²_elempoison.act ³²_elempoison.spr This is the error code: eax: 0x00000000 ebx: 0x36d1a000 ecx: 0x01133c50 edx: 0x00000000 esi: 0x00000004 edi: 0x0019f4a8 ebp: 0x00000000 esp: 0x0019fff8 stack 0019fff8 - 001a03f8 0019FFF8 : 00 00 39 00 00 00 00 00 41 63 74 78 20 00 00 00 001A0008 : 01 00 00 00 1C 33 00 00 DC 00 00 00 00 00 00 00 001A0018 : 20 00 00 00 00 00 00 00 14 00 00 00 01 00 00 00 001A0028 : 07 00 00 00 34 00 00 00 7C 01 00 00 01 00 00 00 001A0038 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 001A0048 : 00 00 00 00 02 00 00 00 4E EF 26 1A 98 02 00 00 001A0058 : 44 00 00 00 E0 02 00 00 54 02 00 00 00 00 00 00 001A0068 : BA 71 32 F3 34 05 00 00 4A 00 00 00 80 05 00 00 001A0078 : 48 03 00 00 00 00 00 00 5B 49 59 2D C8 08 00 00 001A0088 : 32 00 00 00 FC 08 00 00 00 03 00 00 00 00 00 00 001A0098 : CD EA CE 32 FC 0B 00 00 42 00 00 00 40 0C 00 00 001A00A8 : 36 03 00 00 00 00 00 00 C8 5F 50 38 78 0F 00 00 001A00B8 : 5E 00 00 00 D8 0F 00 00 68 03 00 00 00 00 00 00 001A00C8 : 44 05 28 B1 40 13 00 00 56 00 00 00 98 13 00 00 001A00D8 : 86 03 00 00 10 00 00 00 09 00 00 00 EC 00 00 00 001A00E8 : 02 00 00 00 01 00 00 00 7C 01 00 00 DC 15 00 00 Launch Info 00F8 00A4 00A4 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 Job : Paladin prontera.rsw 158 81 renderer.cpp 838
  3. I have tried adding new race (RC_Orc) on this but Orc lady card doesn't work on it. I added it on map.hpp and script_constants.hpp please help thanks! * Race (r) RC_Angel, RC_Brute, RC_DemiHuman, RC_Demon, RC_Dragon, RC_Fish, RC_Formless, RC_Insect, RC_Plant, RC_Player_Human (RC_Player deprecated), RC_Player_Doram, RC_Undead, RC_All
  4. Hello does anyone has a full working sprite of this? Thanks! Cons of Poison Cons of Water
  5. Good day I would like to ask on how to add this * Monster Race (mr) RC2_Goblin, RC2_Kobold, RC2_Orc, RC2_Golem, RC2_Guardian, RC2_Ninja, RC2_GVG, RC2_Battlefield, RC2_Treasure, RC2_BioLab, RC2_Manuk, RC2_Splendide, RC2_Scaraba, RC2_OGH_ATK_DEF, RC2_OGH_Hidden, RC2_Bio5_Swordman_Thief, RC2_Bio5_Acolyte_Merchant, RC2_Bio5_Mage_Archer, RC2_Bio5_MVP, RC2_Clocktower, RC2_Thanatos, RC2_Faceworm, RC2_Hearthunter, RC2_Rockridge, RC2_Werner_Lab, RC2_Temple_Demon, RC2_Illusion_Vampire, RC2_Malangdo, RC2_EP172ALPHA, RC2_EP172BETA, RC2_EP172BATH, RC2_Illusion_Turtle, RC2_Rachel_Sanctuary, RC2_Illusion_Luanda into this patch that was available and made Cydh public. doc/item_bonus.txt | 1 + src/map/map.hpp | 1 + src/map/pc.cpp | 4 ++++ src/map/pc.hpp | 1 + src/map/script_constants.hpp | 1 + src/map/status.cpp | 5 +++++ 6 files changed, 13 insertions(+) diff --git a/doc/item_bonus.txt b/doc/item_bonus.txt index 7ffe172b5..08ef4a571 100644 --- a/doc/item_bonus.txt +++ b/doc/item_bonus.txt @@ -260,6 +260,7 @@ Atk/Def ------- bonus bAtkEle,e; Gives the player's attacks element e bonus bDefEle,e; Gives the player's defense element e +bonus bRace,r; Set the player's race to race r bonus2 bMagicAtkEle,e,x; Increases damage of e element magic by x% diff --git a/src/map/map.hpp b/src/map/map.hpp index 5200ff6b4..44073fbb2 100644 --- a/src/map/map.hpp +++ b/src/map/map.hpp @@ -429,6 +429,7 @@ enum _sp { // Mercenaries SP_MERCFLEE=165, SP_MERCKILLS=189, SP_MERCFAITH=190, + SP_RACE, // original 1000- SP_ATTACKRANGE=1000, SP_ATKELE,SP_DEFELE, // 1000-1002 diff --git a/src/map/pc.cpp b/src/map/pc.cpp index ab1040eca..be3d1cdee 100755 --- a/src/map/pc.cpp +++ b/src/map/pc.cpp @@ -3217,6 +3217,10 @@ void pc_bonus(struct map_session_data *sd,int type,int val) if (sd->state.lr_flag != 2) sd->special_state.no_mado_fuel = 1; break; + case SP_RACE: + PC_BONUS_CHK_RACE(val, SP_RACE); + sd->bonus.change_race = (enum e_race)val; + break; default: if (running_npc_stat_calc_event) { ShowWarning("pc_bonus: unknown bonus type %d %d in OnPCStatCalcEvent!\n", type, val); diff --git a/src/map/pc.hpp b/src/map/pc.hpp index 05e861c64..dfebca1d9 100644 --- a/src/map/pc.hpp +++ b/src/map/pc.hpp @@ -497,6 +497,7 @@ struct map_session_data { int ematk; // matk bonus from equipment int eatk; // atk bonus from equipment uint8 absorb_dmg_maxhp; // [Cydh] + enum e_race change_race; short critical_rangeatk; short weapon_atk_rate, weapon_matk_rate; } bonus; diff --git a/src/map/script_constants.hpp b/src/map/script_constants.hpp index 5d5066a4e..2c8a2f0e9 100644 --- a/src/map/script_constants.hpp +++ b/src/map/script_constants.hpp @@ -731,6 +731,7 @@ export_constant2("bRegenPercentHP", SP_REGEN_PERCENT_HP); export_constant2("bRegenPercentSP", SP_REGEN_PERCENT_SP); export_constant2("bSkillDelay",SP_SKILL_DELAY); + export_constant2("bRace", SP_RACE); /* equip indices */ export_constant(EQI_COMPOUND_ON); diff --git a/src/map/status.cpp b/src/map/status.cpp index d08be8e81..67546d1c2 100644 --- a/src/map/status.cpp +++ b/src/map/status.cpp @@ -3495,6 +3495,7 @@ int status_calc_pc_sub(struct map_session_data* sd, enum e_status_calc_opt opt) ); memset (&sd->bonus, 0, sizeof(sd->bonus)); + sd->bonus.change_race = RC_NONE_; // Autobonus pc_delautobonus(sd,sd->autobonus,ARRAYLENGTH(sd->autobonus),true); @@ -4208,6 +4209,10 @@ int status_calc_pc_sub(struct map_session_data* sd, enum e_status_calc_opt opt) if (sc->data[SC_LAUDARAMUS]) sd->bonus.crit_atk_rate += 5 * sc->data[SC_LAUDARAMUS]->val1; } + + if (sd->bonus.change_race != RC_NONE_) + base_status->race = sd->bonus.change_race; + status_cpy(&sd->battle_status, base_status); // ----- CLIENT-SIDE REFRESH ----- This code is working and I would just like to add it from these choices: * Race (r) RC_Angel, RC_Brute, RC_DemiHuman, RC_Demon, RC_Dragon, RC_Fish, RC_Formless, RC_Insect, RC_Plant, RC_Player_Human (RC_Player deprecated), RC_Player_Doram, RC_Undead, RC_All Thanks in advance!
  6. I fixed this issue by removing static on this part from this static TIMER_FUNC(autoattack_timer) { to this TIMER_FUNC(autoattack_timer) {
  7. I tried this but still the same error
  8. Anyone has the change race src? Thank in advance!
  9. It has to do with the number of monsters being summoned. If you reduce the numbers being summoned that error will go away. I don't know how to fix that coz its src code.
  10. Good day! Does this still work? I've encountered different structure on map.cpp. It was supposed to be like this but diff --git a/src/map/map.cpp b/src/map/map.cpp index 735bfc678..10537d75e 100644 --- a/src/map/map.cpp +++ b/src/map/map.cpp @@ -2088,6 +2088,9 @@ int map_quit(struct map_session_data *sd) { status_change_end(&sd->bl, SC_AUTOTRADE, INVALID_TIMER); status_change_end(&sd->bl, SC_SPURT, INVALID_TIMER); status_change_end(&sd->bl, SC_BERSERK, INVALID_TIMER); +#ifdef FORGOTTEN_SKILLS + status_change_end(&sd->bl, SC_FURY2, INVALID_TIMER); +#endif status_change_end(&sd->bl, SC__BLOODYLUST, INVALID_TIMER); status_change_end(&sd->bl, SC_TRICKDEAD, INVALID_TIMER); status_change_end(&sd->bl, SC_LEADERSHIP, INVALID_TIMER); it's different now. /*========================================== * Standard call when a player connection is closed. *------------------------------------------*/ int map_quit(map_session_data *sd) { int i; if (sd->state.keepshop == false) { // Close vending/buyingstore if (sd->state.vending) vending_closevending(sd); else if (sd->state.buyingstore) buyingstore_close(sd); } if(!sd->state.active) { //Removing a player that is not active. struct auth_node *node = chrif_search(sd->status.account_id); if (node && node->char_id == sd->status.char_id && node->state != ST_LOGOUT) //Except when logging out, clear the auth-connect data immediately. chrif_auth_delete(node->account_id, node->char_id, node->state); //Non-active players should not have loaded any data yet (or it was cleared already) so no additional cleanups are needed. return 0; } if (sd->expiration_tid != INVALID_TIMER) delete_timer(sd->expiration_tid, pc_expiration_timer); if (sd->npc_timer_id != INVALID_TIMER) //Cancel the event timer. npc_timerevent_quit(sd); if (sd->autotrade_tid != INVALID_TIMER) delete_timer(sd->autotrade_tid, pc_autotrade_timer); if (sd->npc_id) npc_event_dequeue(sd); if (sd->bg_id) bg_team_leave(sd, true, true); if (sd->bg_queue_id > 0) bg_queue_leave(sd, false); if( sd->status.clan_id ) clan_member_left(sd); pc_itemcd_do(sd,false); npc_script_event(sd, NPCE_LOGOUT); //Unit_free handles clearing the player related data, //map_quit handles extra specific data which is related to quitting normally //(changing map-servers invokes unit_free but bypasses map_quit) if( sd->sc.count ) { for (const auto &it : status_db) { std::bitset<SCF_MAX> &flag = it.second->flag; //No need to save infinite status if (flag[SCF_NOSAVEINFINITE] && sd->sc.getSCE(it.first) && sd->sc.getSCE(it.first)->val4 > 0) { status_change_end(&sd->bl, static_cast<sc_type>(it.first)); continue; } //Status that are not saved if (flag[SCF_NOSAVE]) { status_change_end(&sd->bl, static_cast<sc_type>(it.first)); continue; } //Removes status by config if (battle_config.debuff_on_logout&1 && flag[SCF_DEBUFF] || //Removes debuffs (battle_config.debuff_on_logout&2 && !(flag[SCF_DEBUFF]))) //Removes buffs { status_change_end(&sd->bl, static_cast<sc_type>(it.first)); continue; } } } for (i = 0; i < EQI_MAX; i++) { if (sd->equip_index[i] >= 0) if (pc_isequip(sd,sd->equip_index[i])) pc_unequipitem(sd,sd->equip_index[i],2); } // Return loot to owner if( sd->pd ) pet_lootitem_drop(sd->pd, sd); if (sd->ed) // Remove effects here rather than unit_remove_map_pc so we don't clear on Teleport/map change. elemental_clean_effect(sd->ed); if (sd->state.permanent_speed == 1) sd->state.permanent_speed = 0; // Remove lock so speed is set back to normal at login. struct map_data *mapdata = map_getmapdata(sd->bl.m); if( mapdata->instance_id > 0 ) instance_delusers(mapdata->instance_id); unit_remove_map_pc(sd,CLR_RESPAWN); if (sd->state.vending) idb_remove(vending_getdb(), sd->status.char_id); if (sd->state.buyingstore) idb_remove(buyingstore_getdb(), sd->status.char_id); pc_damage_log_clear(sd,0); party_booking_delete(sd); // Party Booking [Spiria] pc_makesavestatus(sd); pc_clean_skilltree(sd); pc_crimson_marker_clear(sd); pc_macro_detector_disconnect(*sd); chrif_save(sd, CSAVE_QUIT|CSAVE_INVENTORY|CSAVE_CART); unit_free_pc(sd); return 0; }
  11. setarray .@item[1],[item_id],[item_id],[item_id],[item_id],[item_id]; ....... message strcharinfo(0,.@CID[.@i]),"You now have " + getvar(#MEMORIALDUNGEONPOINTS,.@CID[.@i]) + " Memorial Dungeon Points"; ..... getitem .@item['level_mode],1,.@AID[.@i]; You can declare it something like this. Just look for the function reward. You'll follow
  12. Hello anyone knows how to have this skill tab? My skill tab is like this. I already tried editing msgstringtable but still the same
  13. Increase your Event Queue https://rathena.org/board/topic/126700-warning-npc_event-players-event-queue-is-full-cant-add-event-onpcloadmapevent/
  14. This code I made based on some posts I saw and just attached this onmymobdead. I killed a Drops and it will already give me exp and by adding this code will another line of exp. Is there a way to combine those two and just give me one liner with the total of both? // Exp Reward //============================================================ function script F_Tower_Exp { setarray .@bonusExp[1],10,20,40,80,100; 'bonuzExp = .@bonusExp['level_mode]; set BaseExp, BaseExp + (getmonsterinfo(killedrid,3) * 'bonuzExp); set JobExp, JobExp + (getmonsterinfo(killedrid,4) * 'bonuzExp); return; } Almost same thing for monsters drop although I want it to make the monsters legit drop it not just makeitem script command them. // Drops Reward //============================================================ function script F_Tower_Drop { setarray .@bonusDrop[1], 20, 40, 60, 80, 100; set .@bonus, .@bonusDrop['level_mode]; set .@map$, getarg(0); getmapxy .@map$, .@x, .@y; getmobdrops(killedrid); set .@mc, $@MobDrop_count; copyarray .@mi, $@MobDrop_item, .@mc; copyarray .@mr, $@MobDrop_rate, .@mc; for (set .@i, 0; .@i < .@mc; set .@i, .@i + 1) { set .@dropChance, .@mr[.@i] + .@bonus; if (rand(1, 100) <= .@dropChance) { setarray .@items[getarraysize(.@items)], .@mi[.@i]; } } set .@d, getarraysize(.@items); if (.@d) { for (set .@j, 0; .@j < .@d; set .@j, .@j + 1) { makeitem .@items[.@j], 1, .@map$, .@x, .@y; } } return; } All the help I can get. Thanks in advance!
  15. The translation is good but in-game it's not.
  16. Hi I got it. this is the link that helped me. https://rathena.org/board/topic/114735-someone-pls-help-me-msgstringtable-error-language/
  17. Hi I got it. this is the link that helped me. https://rathena.org/board/topic/114735-someone-pls-help-me-msgstringtable-error-language/
×
×
  • Create New...