Jump to content

Louis T Steinhil

Members
  • Posts

    81
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by Louis T Steinhil

  1. 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.
  2. 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; }
  3. 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
  4. Hello anyone knows how to have this skill tab? My skill tab is like this. I already tried editing msgstringtable but still the same
  5. Increase your Event Queue https://rathena.org/board/topic/126700-warning-npc_event-players-event-queue-is-full-cant-add-event-onpcloadmapevent/
  6. 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!
  7. The translation is good but in-game it's not.
  8. Hi I got it. this is the link that helped me. https://rathena.org/board/topic/114735-someone-pls-help-me-msgstringtable-error-language/
  9. Hi I got it. this is the link that helped me. https://rathena.org/board/topic/114735-someone-pls-help-me-msgstringtable-error-language/
  10. Are you using the latest version of grf editor also?
  11. Hello thanks for the hardwork! I was wondering if you have korean resourcename? I tried encoding > charsets > korean > euc-kr but it's still not the same as the normal resourcename of iteminfo.
  12. Hello this one works although it returns an error:
  13. Hello guys, just need a bit of help with my instance entry mes "Confirmed the party has been made. Would you like to reserve entrance to the Endless Tower?"; next; switch(select( ( .@party_id && .@is_leader && !.@has_instance )? "Generate dungeon "+.@md_name$+": "", ( .@party_id && .@has_instance )? "Enter the dungeon": "", "Return to Alberta","Cancel")){ What could be the right one? Thanks in advance!
  14. View File Endless Tower Instance with Difficulty Good day! I've been an observer since the beginning of time and I want to share this script hoping that it will help fellow human beings who need it. This was a paid script of mine and I hired @sader1992 to help me finish it in 2020. I'm hoping someone will improve the code in the near future with other stuff to give another flavor for Endless Tower. This works with the latest version of rAthena. Requirement: Y'all need this patch for +damage to work setunitdata script command monster stat recaulculation fixes #3968 About the script: It is simply Endless Tower with Easy, Veteran, Nightmare, Hell & Torment Difficulties. You can edit the values I pre-assigned: This part is for the difficulty settings and adding stats to the monsters: This part is for the rewards: It gives #INSTANCEPOINTS and EXP depending on the difficulty you're on. I assigned a monster (1613 : metalling) to show us that the stats boost really works: PS: I'm also integrating this to other instances. Maybe I'll post it if people requests it. Submitter Louis T Steinhil Submitted 05/02/23 Category Games, Events, Quests Video Content Author Ylen X. Walker
×
×
  • Create New...