Jump to content

Emistry

Forum Moderator
  • Posts

    10015
  • Joined

  • Days Won

    400

Community Answers

  1. Emistry's post in How to merge multiple arrays into a single array? was marked as the answer   
    setarray .combinedArray[getarraysize(.combinedArray)], .attr1, getarraysize(.attr1); setarray .combinedArray[getarraysize(.combinedArray)], .attr2, getarraysize(.attr2); setarray .combinedArray[getarraysize(.combinedArray)], .attr3, getarraysize(.attr3); setarray .combinedArray[getarraysize(.combinedArray)], .attr4, getarraysize(.attr4); setarray .combinedArray[getarraysize(.combinedArray)], .attr5, getarraysize(.attr5); setarray .combinedArray[getarraysize(.combinedArray)], .attr6, getarraysize(.attr6);  
  2. Emistry's post in Skill Plagiarist? was marked as the answer   
    its probably better to wait or use this PR
    https://github.com/rathena/rathena/pull/6304
    all the plagiarism npc out there enabled stalker class to learn up to 2 skills instead of 1 skill only.
  3. Emistry's post in Itemlink on @mobinfo was marked as the answer   
    conf/battle/feature.conf#L143-L148
    // Itemlink System on informational related commands (Note 1) // Generates an itemlink string for an item and can be used for npctalk, message, // dispbottom, and broadcast commands. The result is clickable-item name just // like from SHIFT+Click from player's inventory/cart/equipment window. // Requires: 2015-11-04Ragexe or later feature.itemlink: on  
  4. Emistry's post in Can anyone help me about dooming a certain map every 30 minutes? was marked as the answer   
    - script sample -1,{ OnMinute00: OnMinute30: .@size = getmapunits(BL_PC, "ordeal_a02", .@gid); for (.@i = 0; .@i < .@size; .@i++) { if (unitexists(.@gid[.@i])) unitkill .@gid[.@i]; } end; }  
  5. Emistry's post in Anyone know where the leveling curve info is so I can change it? was marked as the answer   
    db/pre-re/job_exp.yml
    you meant adjusting the exp required for each level ?
  6. Emistry's post in Requesting Pvp Warper w/ Announcer COntrol was marked as the answer   
    .@enter$ change to
    .enter$  
  7. Emistry's post in koe patch on 2020 rathena error was marked as the answer   
    try add
    #include "mapreg.hpp"  
  8. Emistry's post in Convert prize giving mail to getitem was marked as the answer   
    .@aid = convertpcinfo(.players[.@i],CPC_ACCOUNT); getitem .item_win, .count_win, .@aid;  
  9. Emistry's post in problem update table sql error console was marked as the answer   
    SELECT * FROM rush_mvp WHERE `char_id` = '"+getcharid(0)+"'", .@CharID change to
    SELECT `char_id` FROM rush_mvp WHERE `char_id` = '"+getcharid(0)+"'", .@CharID or whatever that field was named for char id
  10. Emistry's post in How to add points on mob kill on this script was marked as the answer   
    just find 
    dispbottom "You earned 1 Arena Points"; and change it to
    dispbottom "You earned 1 Arena Point. Total "+F_InsertComma(arenapoint)+" Points"; same goes for other arena points display message.
  11. Emistry's post in problem with NPC menu disappearing and then char freezing was marked as the answer   
    you can disable the SECURE_NPCTIMEOUT
    or
    add this to your warper npc
    *ignoretimeout <flag>{,<char_id>}; Disables the SECURE_NPCTIMEOUT function on the character invoking the script, or by the given character ID/character name. Valid flag: 0 - Enabled SECURE_NPCTIMEOUT. 1 - Disable SECURE_NPCTIMEOUT. Note: SECURE_NPCTIMEOUT must be enabled for this to work.  
  12. Emistry's post in Need Help [Warning]: buildin_unitwalk: Unit has already been forced to walk and not reached it's destination yet. was marked as the answer   
    stop the current script execution or wait until it reached destination only to trigger next unitwalk 
  13. Emistry's post in Regarding [VIP System] about vip_drop_increase: was marked as the answer   
    in the mob_dead(...)
    search for 
    drop_rate = mob_getdroprate(src, md->db, md->db->dropitem[i].rate, drop_modifier); replace with
    if (it->type == IT_CARD) drop_rate = md->db->dropitem[i].rate; else drop_rate = mob_getdroprate(src, md->db, md->db->dropitem[i].rate, drop_modifier); hmm... nvm this actually removed all modifier.
     
     
    it probably better if you pass the item type into 
    drop_rate = mob_getdroprate(src, md->db, md->db->dropitem[i].rate, drop_modifier, it); then
    int mob_getdroprate(struct block_list *src, std::shared_ptr<s_mob_db> mob, int base_rate, int drop_modifier,struct item_data it) then add the item type checking to skip if its card and is vip
    if (pc_isvip(sd) && it->type != IT_CARD) { // Increase item drop rate for VIP.  
  14. Emistry's post in How to remove 32,000 Critical Limit on Pre-Renewal client? was marked as the answer   
    you can't, perhaps just consider use a newer client that lifted this limit.
  15. Emistry's post in R>Modified Floating Rates was marked as the answer   
    npc/custom/etc/floating_rates.txt
    remove the drop rate modifier
    change the trigger time
  16. Emistry's post in Index (idx=0) out of range (nargs=0) and no default value found was marked as the answer   
    that is because you call the function without pass in any parameters/arguments or set a defeault value for each of getarg(...)
    getarg(0, "default_value") function script SC_MOVEARM { movenpc getarg(0, strnpcinfo(3)),rand(2,390),rand(2,390); getmapxy(.@map$,.@x,.@y, BL_NPC,getarg(0, strnpcinfo(3))); if( !checkcell(.@map$,.@x,.@y,cell_chkreach) ){ return 0; } if( !checkcell(.@map$,.@x,.@y,cell_chkpass) ){ return 0; } return 1; }  
    but as sader mentioned, your label with SC_MOVEARM name isn't suitable, you shouldn't name any label start with SC_ since its predefined for status change constants.
    and learn to use duplicate(...) npc instead of copy all npcs like that
  17. Emistry's post in Need to add GM Reset Command In Hunting Mission was marked as the answer   
    - script atcmd_example -1,{ OnInit: bindatcmd "reset",strnpcinfo(3) + "::OnAtcommand"; end; OnAtcommand: query_sql("DELETE FROM `char_reg_num` WHERE `key` LIKE 'Mission%'"); query_sql("DELETE FROM `acc_reg_num` WHERE `key` LIKE 'Mission%'"); .quest_count = getvariableofnpc(.Quests, "Hunting Missions"); addrid(0); #Mission_Count = 0; #Mission_Delay = 0; #Mission_Total = 0; @hm_char_del_check = 0; for (.@i = 0; .@i < .quest_count; .@i++) { setd "Mission" + .@i, 0; setd "Mission" + .@i+"_", 0; } dispbottom "A GM has forced reset your Hunting mission status."; end; }  
  18. Emistry's post in Help on 2 NPCs/Scripts - Kafra Suprema e Evento Chefe do Mundo / World Boss. was marked as the answer   
    - script WorldBoss::alwbman -1 ,{ end; OnNPCKillEvent: .wbKilledMob++; if(.wbKilledMob >= .killPopBoss) { .@map$ = .townMap$[rand(getarraysize(.townMap$) - 1)]; areamonster .@map$, 0, 0, 250, 250, "--ja--", .wBossId, 1, strnpcinfo(3) + "::OnWBossDied"; .boss_gid = $@mobid[0]; initnpctimer; announce "[Chefe do Mundo]: Humanos tolos, como ousam me despertar? Voc阺 ir鉶 sentir a minha ira!", bc_all, 0xFF0000; sleep 10000; announce "[Chefe do Mundo]: Muahahahahahaha Muahahahahahaha Muahahahahahaha...", bc_all, 0xFF0000; sleep 10000; announce "[Chefe do Mundo]: O Chefe do Mundo surgiu em >> " + .@map$ + " << para matar todos os aventureiros que o despertaram!", bc_all, 0xFF0000; } end; OnWBossDied: announce "[Chefe do Mundo]: " + strcharinfo(0) + " acerta o golpe final e acaba de matar o Chefe do Mundo! Parab閚s!", bc_all, 0xFF0000; sleep 5000; announce "[Chefe do Mundo]: " + strcharinfo(0) + " acaba de receber uma grande recompensa por det?lo!", bc_all, 0xFF0000; sleep 5000; announce "[Chefe do Mundo]: N鉶 fique contente humano eu retornarei um dia!", bc_all, 0xFF0000; getitem .rewardId, .rewardCount; OnTimer7200000: // after 2 hours stopnpctimer; .wbKilledMob = 0; if (unitexists(.boss_gid)) unitkill .boss_gid; end; OnInit: .killPopBoss = 10; setarray .townMap$[0],"prontera","geffen","morocc","payon","izlude","alberta","aldebaran","brasilis","dewata"; //to fill .wBossId = 2255; .rewardId = 14232; .rewardCount = 5; end; }  
  19. Emistry's post in Problems with my Warper was marked as the answer   
    try disable SECURE_NPCTIMEOUT
    or add this to your warper script
    *ignoretimeout <flag>{,<char_id>}; Disables the SECURE_NPCTIMEOUT function on the character invoking the script, or by the given character ID/character name. Valid flag: 0 - Enabled SECURE_NPCTIMEOUT. 1 - Disable SECURE_NPCTIMEOUT. Note: SECURE_NPCTIMEOUT must be enabled for this to work.  
  20. Emistry's post in entrance at et need tcg as requirment was marked as the answer   
    L_Enter: mes "Please pay me one "+getitemname(7227); if (select("Alright", "Cancel") == 2) close3; if (countitem(7227) < 1) { mes "You dont have enough "+getitemname(7227); close3; } switch(instance_enter("Endless Tower")) { case IE_OTHER: mes "An unknown error has occurred."; close; case IE_NOINSTANCE: mes "The memorial dungeon Endless Tower does not exist."; mes "The party leader did not generate the dungeon yet."; close; case IE_NOMEMBER: mes "You can enter the dungeon after making the party."; close; case IE_OK: delitem 7227, 1; mapannounce "e_tower", strcharinfo(0) +" of the party, "+ getpartyname( getcharid(1) ) +", is entering the dungeon, Endless Tower.",bc_map,"0x00ff99",FW_NORMAL,12; if (getarg(1)) { set etower_timer,gettimetick(2); set etower_partyid, getcharid(1); setquest 60200; setquest 60201; } //warp "1@tower",52,354; if (getarg(0) == 0) close; else end; } npc/instances/EndlessTower.txt#L295
  21. Emistry's post in Can i change SC_AUTOTRADE to other? was marked as the answer   
    it was added to ensure character will auto disconnect after it reached the time limit.
    if you dont need it, might as well just remove the whole block of codes.
    if( battle_config.at_timeout ) { int timeout = atoi(message); status_change_start(NULL,&sd->bl, SC_AUTOTRADE, 10000, 0, 0, 0, 0, ((timeout > 0) ? min(timeout,battle_config.at_timeout) : battle_config.at_timeout) * 60000, 0); } or just disable the at_timeout settings as mentioned previously.
  22. Emistry's post in How to set Delay from get item... was marked as the answer   
    - script KillMon2Cash -1,{ OnNPCKillEvent: .@gettimetick = gettimetick(2); if (rand(100) < 1 && .@gettimetick > @delay) { getitem 50001,1; @delay = .@gettimetick + 60; // 60 seconds } end; }  
  23. Emistry's post in FluxCP Error: Unknown column 'group_id' in 'where clause' was marked as the answer   
    your fluxcp is too old , use a newer version of fluxcp
    https://github.com/rathena/FluxCP
  24. Emistry's post in How to display multiple rows of result from SQL query using NPC was marked as the answer   
    input .@item_id; .@size = query_sql("SELECT char_id, nameid, amount FROM `inventory` HAVING nameid = "+.@item_id+" ORDER BY amount DESC LIMIT 3",.@charid,.@nameid,.@amnt); for (.@i = 0; .@i < .@size; .@i++) dispbottom .@charid[.@i]+" : "+getitemname(.@nameid[.@i])+" "+.@amnt[.@i]+"pcs"; end;  
  25. Emistry's post in Help me fix my event changer script. was marked as the answer   
    switch(select("^000088Visit Shop^000000", "Information")){ case 1: switch(select("^000088Use Event Points^000000", "Use Event Coins")){ case 1: close; callshop "eventpoints",1; end; case 2: close; callshop "eventpoints",1; end; } break; case 2: switch(select("^000088Castle Drops^000000","Cards","Cancel")){ case 1: callshop "eventcastle",1; end; case 2: callshop "eventcards",1; end; } break; } your usage of switch() and select() isn't correct
×
×
  • Create New...