Jump to content

Emistry

Forum Moderator
  • Posts

    10013
  • Joined

  • Days Won

    396

Everything posted by Emistry

  1. you can get most of the client here. http://nemo.herc.ws/clients/
  2. its not loaded in your server, or check for any related map-server error log in case it failed to execute
  3. OnSpin: set .spin, rand(0, .pReg - 1); attachrid(getcharid(3, .playerlist$[.spin])); .@name$ = strcharinfo(0); callsub OnCheck; mapannounce "izlude", .NPC$ +" The revolver is spinning . . .",bc_map; sleep 3000; mapannounce "izlude", .NPC$ +" Revolver slowly stopped spinning . . .",bc_map; sleep 2000; mapannounce "izlude", .NPC$ +" The revolver is pointing to "+ .@name$ +" . . .",bc_map; sleep 3000; mapannounce "izlude", .NPC$ +" Pull the trigger now "+ .@name$,bc_map; callsub OnCheck; callsub OnShoot; sleep 3000; callsub OnSpin; return; try this
  4. you didn't have the mob_db data of these mob, either remove the mob spawn from the scripts or add the mob_db data
  5. the intention is good, but opencore has long evolved to resolve these colors matching mechanism trick.
  6. OnInvaEnd: announce .n$+": Thank you guys for your help in defeating the invaders, we will counting on you for the next time as well.",0; donpcevent strnpcinfo(0)+"::OnInvaRestart"; donpcevent strnpcinfo(0)+"::OnReward"; end; OnReward: addrid(0); doevent "Invasion Rewarder::OnTalk"; end; prontera,150,175,4 script Invasion Rewarder 110,{ OnTalk: mes .n$; mes "Hello, "+strcharinfo(0)+"!"; mes "So you want to be rewarded from the Mob Invasion Event, huh?"; mes "Let me take a look at your battle record."; next; ... ... ... try these
  7. https://github.com/rathena/rathena/issues/7548
  8. EQI_COMPOUND_ON (-1) - Item slot that calls this script (In context of item script) - exclusive to getequipid EQI_ACC_L (0) - Accessory 1 EQI_ACC_R (1) - Accessory 2 EQI_SHOES (2) - Footgear (shoes, boots) EQI_GARMENT (3) - Garment (mufflers, hoods, manteaux) EQI_HEAD_LOW (4) - Lower Headgear (beards, some masks) EQI_HEAD_MID (5) - Middle Headgear (masks, glasses) EQI_HEAD_TOP (6) - Upper Headgear EQI_ARMOR (7) - Armor (jackets, robes) EQI_HAND_L (8) - Left hand (weapons, shields) EQI_HAND_R (9) - Right hand (weapons) EQI_COSTUME_HEAD_TOP (10) - Upper Costume Headgear EQI_COSTUME_HEAD_MID (11) - Middle Costume Headgear EQI_COSTUME_HEAD_LOW (12) - Lower Costume Headgear EQI_COSTUME_GARMENT (13) - Costume Garment EQI_AMMO (14) - Arrow/Ammunition EQI_SHADOW_ARMOR (15) - Shadow Armor EQI_SHADOW_WEAPON (16) - Shadow Weapon EQI_SHADOW_SHIELD (17) - Shadow Shield EQI_SHADOW_SHOES (18) - Shadow Shoes EQI_SHADOW_ACC_R (19) - Shadow Accessory 2 EQI_SHADOW_ACC_L (20) - Shadow Accessory 1 your values are outdated
  9. Delay: Duration: 5000 Status: Reuse_Limit_F remove these from your item_db
  10. you probably have this setting configured? conf/battle/status.conf#L15-L20 // Will certain skill status-changes be removed on logout? // 0 = (Default) Only remove status that has the SCF_NO_SAVE flag. // 1 = Remove negative buffs (status that are flagged as debuff) // 2 = Remove positive buffs. // 3 = Remove all. debuff_on_logout: 0 or remove the SCF_NO_SAVE flag from all buff statuses
  11. your fluxcp is too old , use a newer version of fluxcp https://github.com/rathena/FluxCP
  12. 20 days? good luck. Been waiting since 2015 (around 2017 requested to cancel it to recreated the requests with smaller amount, so far only succeed to get one time around $7)
  13. perhaps delete the existing achievements from player log then let them redo it ?
  14. -- -- Table structure for table `skill` -- CREATE TABLE IF NOT EXISTS `skill` ( `char_id` int(11) unsigned NOT NULL default '0', `id` smallint(11) unsigned NOT NULL default '0', `lv` tinyint(4) unsigned NOT NULL default '0', `flag` TINYINT(1) UNSIGNED NOT NULL default 0, PRIMARY KEY (`char_id`,`id`) ) ENGINE=MyISAM; you should check why its missing from your database or some failed queries execution.
  15. try this //===== rAthena Script ======================================= //= Free Script //===== By: ================================================== //= Sader1992 //= https://rathena.org/board/profile/30766-sader1992/ //= Email [email protected] //===== Compatible With: ===================================== //= rAthena Project //= ========================================================== //= @aitem this command allows you to check how many of the item in the server //= command @aitem2 allows you to check also who have the items //= @aitem is fast, but @aitem2 will take some time to finish //= the time depend on how big your database is! //= ========================================================== //= you should wait until the command is done , do not logout/talk to npc/ anything until you get the results! //= ========================================================== //= '@AnalyzeItem' return the count of the item in the server. //= '@AnalyzeItem2' return the count of the item and the lst of who have it in the server (take more time). //= USAGE: //= @AnalyzeItem <ITEM_ID> //= @AnalyzeItem2 <ITEM_ID> //= OR //= @AItem <ITEM_ID> //= @AItem2 <ITEM_ID> //= Wait until you get the results in your chat //= to add more tables (like other storages) check the array .@tables$ and .@id$ //= F_GET_REAL_OWNER_NAME(<"string table">,<id>) get the name for id //============================================================ function script F_GET_REAL_OWNER_NAME { .@table$ = getarg(0); .@id = getarg(1); .@n$ = ""; if(.@table$ != "account_id" && .@table$ != "char_id"){ if(.@table$ != "id"){ return "(Mails):"; }else{ return "(Guilds):"; } } .@acc = .@id; if(.@table$ == "char_id"){ query_sql("SELECT `account_id` FROM `char` WHERE `char_id` = '" + .@id + "'",.@acc); } query_sql("SELECT `group_id`,`userid` FROM `login` WHERE `account_id` = '" + .@acc + "'",.@g,.@name$); if(.@g >= 1){ .@n$ = "[ Player ] "; } if(.@g >= 80){ .@n$ = "[ Staff ] "; } .@name1$ = .@n$ + .@name$; return .@name1$; } prontera,155,181,5 script Sample 757,{ input .@item_id; .@owner_name = select("Continue", "Get Real Owner Name") - 1; setarray .@tables$,"cart_inventory","guild_storage","inventory","storage", "mail_attachments"; setarray .@id$, "char_id", "guild_id", "char_id", "account_id","id"; mes "Searching for item '" + getitemname(.@item_id) + "'",0x9FFFB5; mes "Analyze Tables",0x9FFFB5; for(.@i=0;.@i<getarraysize(.@tables$);.@i++){ query_sql("SELECT `amount`,`" + .@id$[.@i] + "` FROM `" + .@tables$[.@i] + "` WHERE nameid = '"+ .@item_id +"' OR card0 = "+.@item_id+" OR card1 = "+.@item_id+" OR card2 = "+.@item_id+" OR card3 = "+.@item_id, .@count, .@id, .@c0, .@c1, .@c2, .@c3); for(.@n=0;.@n<getarraysize(.@count);.@n++){ if (.@id[.@n] != .@item_id) { .@allcounts += (.@c0[.@n] == .@item_id); .@allcounts += (.@c1[.@n] == .@item_id); .@allcounts += (.@c2[.@n] == .@item_id); .@allcounts += (.@c3[.@n] == .@item_id); } else .@allcounts += .@count[.@n]; if(.@owner_name){ .@n$ = F_GET_REAL_OWNER_NAME(.@id$[.@i],.@id[.@n]); .@ndx = inarray(.@name_list$,.@n$); if(.@ndx == -1){ .@ndx = getarraysize(.@name_list$); .@name_list$[.@ndx] = .@n$; } .@count_list[.@ndx] += .@count[.@n]; sleep2 2; } } sleep2 5; deletearray .@count[0],getarraysize(.@count); } if(.@owner_name){ mes "==================================",0x9FFFB5; mes "Extended List:",0x9FFFB5; if(getarraysize(.@name_list$) > 20){ for(.@i=0;.@i<getarraysize(.@name_list$);.@i += 3){ mes "" + .@name_list$[.@i] + " - (" + .@count_list[.@i] + ")" + " " + "(" + .@name_list$[.@i+1] + "): (" + .@count_list[.@i+1] + ")" + " " + "(" + .@name_list$[.@i+2] + "): (" + .@count_list[.@i+2] + ")",0x9FFFB5; } }else{ for(.@i=0;.@i<getarraysize(.@name_list$);.@i++){ mes "" + .@name_list$[.@i] + " - (" + .@count_list[.@i] + ")"; } } mes "==================================",0x9FFFB5; } mes "Analyze Done.",0x9FFFB5; mes "(" + .@allcounts + ")" + getitemname(.@item_id) + ".",0x9FFFB5; close; }
  16. // -- This function was originally from Annieruru function script F_ShuffleNumbers { deletearray getarg(2); .@static = getarg(0); .@range = getarg(1) +1 - .@static; .@count = getarg(3, .@range); if (.@range <= 0 || .@count <= 0) return 0; if (.@count > .@range) .@count = .@range; for (.@i = 0; .@i < .@range; ++.@i) .@temparray[.@i] = .@i; for (.@i = 0; .@i < .@count; ++.@i) { .@rand = rand(.@range); set getelementofarray( getarg(2), .@i ), .@temparray[.@rand] + .@static; .@temparray[.@rand] = .@temparray[--.@range]; } return .@count; } - script Dropped -1,{ OnInit: setarray .item_id, 501, 645, 533; // Possible items to receive (ID, amount) setarray .item_qty, 25, 5, 30; .item_id_size = getarraysize(.item_id); end; OnDropping: getmapxy(.@map$, .@x, .@y, BL_PC); .@t = rand(.item_id_size); callfunc "F_ShuffleNumbers", 0, .@t, .@id; for ( .@i = 0; .@i < .@t; .@i++ ) makeitem .item_id[.@id[.@i]], rand(1, .item_qty[.@id[.@i]]), .@map$, .@x, .@y; end; } jupe_ele,0,0 monster Boss 1004,1,5000,0,"Dropped::OnDropping" use the monster keep respawn, you can consider use the permanent monster spawn script instead.
  17. how about start with reading the config inside the script? dont turn on the penalty if you dont want it to penalize the players https://github.com/deadlybrothers/script/blob/master/goldroom.txt#L56-L57
  18. 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.
  19. 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
  20. - 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; }
  21. - 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; }
  22. 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
  23. npc/custom/etc/floating_rates.txt remove the drop rate modifier change the trigger time
×
×
  • Create New...