-
Posts
10018 -
Joined
-
Days Won
408
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Emistry
-
Unable to restore stack! Double continuation! ( map-server crashed )
Emistry replied to iamhyd's question in Scripting Support
you're suppose to provide a string data type for comparison... if (compare(strnpcinfo(1),.@i)) change to if (compare(strnpcinfo(1), ""+.@i)) -
what's the point of create a script when the function are already exists for GM. Just enable the atcommand killmonster2 for your GM, which would already kill all the monsters at current map without having any loots.
-
prontera,155,181,5 script Sample 4_F_KAFRA1,{ if (Zeny < 1000 || !countitem(7139)) { npctalk "You required "+getitemname(7139)+" and 1,000 Zeny to use it."; } else { if (!checkre(0)) { progressbar_npc("0xFFFFFF", 2, getnpcid(0)); // sleep2 2000; } Zeny -= 1000; delitem 7139, 1; npcskill "CR_FULLPROTECTION", 5, 99, 99; } end; }
-
- script sample -1,{ OnInit: // sleep 2000; .guild_id = 1; debugmes("====== OnInit (ID = "+.guild_id+") ========="); debugmes("Guild Name = " + getguildname(.guild_id)); .@size = query_sql("SELECT name FROM `guild` WHERE `guild_id` = "+.guild_id+" LIMIT 1", .@guild_name$); debugmes("Guild Name (SQL) = " + .@guild_name$); requestguildinfo .guild_id, strnpcinfo(3)+"::OnRequestInfo"; end; OnRequestInfo: debugmes("====== OnRequestInfo ========="); debugmes("Guild Name = " + getguildname(.guild_id)); .@size = query_sql("SELECT name FROM `guild` WHERE `guild_id` = "+.guild_id+" LIMIT 1", .@guild_name$); debugmes("Guild Name (SQL) = " + .@guild_name$); end; } Output: [Info]: consolemes: ====== OnInit (ID = 1) ========= [Info]: consolemes: Guild Name = null <--- It failed [Info]: consolemes: Guild Name (SQL) = Sleepywood [Info]: consolemes: ====== OnRequestInfo ========= [Info]: consolemes: Guild Name = Sleepywood <--- Now it worked. [Info]: consolemes: Guild Name (SQL) = Sleepywood
-
257 Use Default Web Browser for <URL> 1 Use Tilde for Matk 258 Enable Shortcut All Item 3 Chat Flood Remove Limit 264 Set Tip Button 8 Custom Window Title 9 Disable 1rag1 type parameters (Recommended) 266 Set SNS Button 268 Restore chat focus 13 Disable Ragexe Filename Check (Recommended) 270 Change AchievementList*.lub path 272 Change Towninfo*.lub path 16 Disable Swear Filter 273 Change PetEvolutionCln*.lub path 17 Enable Official Custom Fonts 274 Change Tipbox*.lub path 18 Skip Service Selection Screen 275 Change CheckAttendance*.lub path 19 Enable Title Bar Menu 276 Change OngoingQuestInfoList* path 20 Extend Chat Box 21 Extend Chat Room Box 22 Extend PM Box 23 Enable /who command (Recommended) 24 Fix Camera Angles (Recommended) 283 Change fade in/out delay 28 Increase Headgear ViewID 285 Fix act delay for act files with many frames 286 Hide zero date (1969-01-01) in guild members window 31 Increase Zoom Out 75% 289 Fix Homunculus attack AI 290 Hide build info in client (Recommended) 34 Enable /showname (Recommended) 291 Hide packets from peek (Recommended) 36 Read msgstringtable.txt (Recommended) 38 Remove Gravity Ads (Recommended) 39 Remove Gravity Logo (Recommended) 40 Restore Login Window (Recommended) 41 Disable Nagle Algorithm (Recommended) 43 Always Use Email for Char Deletion 44 Translate Client (Recommended) 46 Use Normal Guild Brackets (Recommended) 47 Use Ragnarok Icon 48 Use Plain Text Descriptions (Recommended) 49 Enable Multiple GRFs (Recommended) 50 Skip License Screen 53 Use Ascii on All LangTypes (Recommended) 61 Disable Packet Encryption 64 @ Bug Fix (Recommended) 65 Load Custom lua file instead of iteminfo*.lub (Recommended) 67 Disable Quake skill effect 69 Extend Npc Dialog Box 72 Ignore Missing Palette Error 73 Remove Hourly Announce (Recommended) 74 Increase Screenshot Quality 80 Shared Body Palettes Type1 82 Shared Head Palettes Type1 84 Remove Serial Display (Recommended) 86 Only First Login Background 88 Allow space in guild name 90 Enable DNS Support (Recommended) 91 Disconnect to Login Window 97 Cancel to Login Window (Recommended) 98 Disable dc_scream.txt 99 Disable ba_frostjoke.txt 101 Skip Friend list Cheat Check 102 Skip Guild Member Cheat Check 204 Increase Attack Display 205 Enable Monster Tables 207 Resize Font 208 Restore Cash Shop Icon 213 Disable Help Message on Login (Recommended) 214 Restore Model Culling 215 Increase Map Quality 219 Always Show Resurrection Button 222 Show Replay Button 230 Always load Korea ExternalSettings lua file 233 Hide SNS Button 246 Increase hair style limit in game 247 Change new char name field height 251 Allow close cutin by pressing esc key 256 Use Default Web Browser In Cashshop cant remember if its this one, this log seem like the latest one I have, and I dont remember if the patch was actually success or failed, it seem like it stated it was failed in the website. http://nemo.herc.ws/clients/2018-06-20eRagexeRE/
-
Fixed in new version. A bug that take 5 years before someone noticed it ... ?
-
your drop rate are probably affected by the renewal drop rate adjustment due to your player level. set all these value into 10000 then you should be able to achieve 100% drop regardless of any modifier. https://github.com/rathena/rathena/blob/157392cd1a3174abf2051907126aba4617f8ffbc/conf/battle/drops.conf#L44-L45 https://github.com/rathena/rathena/blob/157392cd1a3174abf2051907126aba4617f8ffbc/conf/battle/drops.conf#L51-L52 https://github.com/rathena/rathena/blob/157392cd1a3174abf2051907126aba4617f8ffbc/conf/battle/drops.conf#L58-L59 https://github.com/rathena/rathena/blob/157392cd1a3174abf2051907126aba4617f8ffbc/conf/battle/drops.conf#L65-L66 https://github.com/rathena/rathena/blob/157392cd1a3174abf2051907126aba4617f8ffbc/conf/battle/drops.conf#L72-L73 https://github.com/rathena/rathena/blob/157392cd1a3174abf2051907126aba4617f8ffbc/conf/battle/drops.conf#L78-L79 https://github.com/rathena/rathena/blob/157392cd1a3174abf2051907126aba4617f8ffbc/conf/battle/drops.conf#L78-L79 https://github.com/rathena/rathena/blob/157392cd1a3174abf2051907126aba4617f8ffbc/conf/battle/drops.conf#L78-L79
-
the error are pretty much self explained. you didnt load the SQL table that provided.
-
that's why i asked you to disable the show zeny option ... so that it allow player to view the item requirements which also included the zeny requirement.
-
https://github.com/rathena/rathena/blob/de80c5aab61eff6996a5e4c94d4a5a868eb18ca4/conf/battle/player.conf#L84-L86
-
i am sure there are plenty of empty ID that are usable between 1000~3999 .... otherwise use a newer client that support a new mob_id starting around 10000+ i think, but I am not sure if rAthena current support it.
-
-
That's meant you files aren't inside the data folder or your client doesnt read from data folder. The error is very straight forward telling you the file doesn't existing and no where to be found.
-
Requesting an NPC that let's GM's send items to players in a specific Map.
Emistry replied to Mythryx's question in Script Requests
if you're using a newer version of rAthena - script Sample -1,{ OnInit: bindatcmd "reward",strnpcinfo(3) + "::OnAtcommand", 99, 99; end; OnAtcommand: if (getgroupid() >= 99) { if (.@atcmd_parameters$[0] == "all" ) .map$ = "all"; else if (.@atcmd_parameters$[0] == "map" ) .map$ = strcharinfo(3); else if (getmapusers(.@atcmd_parameters$[0]) >= 0) .map$ = .@atcmd_parameters$[0]; else dispbottom "Error, pick 'map' or 'all' "; .itemid = atoi(.@atcmd_parameters$[1]); .amount = atoi(.@atcmd_parameters$[2]); if (getitemname(.itemid) == "null" || .amount < 1) dispbottom "Invalid item id #"+.itemid+" and amount ("+.amount+")."; else donpcevent strnpcinfo(3)+"::OnReward"; } end; OnWhisperGlobal: if (getgroupid() >= 99) { if (@whispervar0$ == "all" ) .map$ = "all"; else if (@whispervar0$ == "map" ) .map$ = strcharinfo(3); else if (getmapusers(@whispervar0$) >= 0) .map$ = @whispervar0$; else dispbottom "Error, pick 'map' or 'all' "; .itemid = atoi(@whispervar1$); .amount = atoi(@whispervar2$); if (getitemname(.itemid) == "null" || .amount < 1) dispbottom "Invalid item id #"+.itemid+" and amount ("+.amount+")."; else donpcevent strnpcinfo(3)+"::OnReward"; } end; OnReward: if (.map$ == "all") addrid(0); else if (.map$ != "") addrid(5, 0, .map$); getitem .itemid, .amount; end; } [npc:Sample] <map_mapname|map|all>#512#100 @reward <map_name|map|all> 512 100 -
that's is the problem! because you didnt have this file in your GRF, and your client need it to load the content.
-
with the updated rA emulator, you could actually achieve the same feature using this method - script Sample -1,{ OnPCStatCalcEvent: if (EXTRA_BONUS == 0) end; else if (EXTRA_BONUS == 1) { bonus bStr, 10; } else if (EXTRA_BONUS == 2) { bonus bStr, 20; } else if (EXTRA_BONUS == 3) { bonus bStr, 30; } end; }
-
A New Label Time OnSec<secound> possible ?
Emistry replied to Hyroshima's question in Source Requests
#1 OnSecXX: doesn't exist, but this is redundant and unnecessary because OnMinuteXX already can fulfill what you looking for. #2 while(1) { // process what you want sleep 1000; } this attempt aren't actually recommended, people has been abusing how to use this trick for their convenience, without knowing the consequences. Whenever the script has done what its instructed to do, it should free up the resource, but this attempts doesn't free up the resource. #3 OnMinuteXX: due to user required to duplicate from 00 ~ 59th minutes, its become redundant work, but its exactly what you need. Fyi, it free up the resource once it done its part. #4 OnTimer60000: // process whatever you want here. OnInit: initnpctimer; end; more elegant, and less redundant work, doesn't required user to duplicate all the OnMinuteXX like attempt #3 did, and yes it also free up the resources once it done its part. Conclusion: you should pick between attempt #3 and #4. Personally, I would prefer #4. -
remove the comment in your SQL file /* <--- REMOVE ... ... */ <--- REMOVE
-
try remove the direction checking ... !map_check_dir(dir, t_dir) // <-- remove this checking change if ((!check_distance_bl(src, bl, 0) && !map_check_dir(dir, t_dir)) || bl->type == BL_SKILL) { into if (!check_distance_bl(src, bl, 0) || bl->type == BL_SKILL) {
-
try this. .@equip_loc = EQI_HAND_R; getinventorylist(); for (.@i = 0; .@i < @inventorylist_count; .@i++) if (@inventorylist_id[.@i] > 0 && @inventorylist_id[.@i] == getequipid(.@equip_loc) && @inventorylist_equip[.@i] > 0) { delequip .@equip_loc; getitem2 @inventorylist_id[.@i],1,@inventorylist_identify[.@i],@inventorylist_refine[.@i],1,@inventorylist_card1[.@i],@inventorylist_card2[.@i],@inventorylist_card3[.@i],@inventorylist_card4[.@i]; end; } with random item option .@equip_loc = EQI_HAND_R; getinventorylist(); for (.@i = 0; .@i < @inventorylist_count; .@i++) if (@inventorylist_id[.@i] > 0 && @inventorylist_id[.@i] == getequipid(.@equip_loc) && @inventorylist_equip[.@i] > 0) { delequip .@equip_loc; for (.@r = 1; .@r <= 5; .@r++) { .@RandomIDArray[.@r-1] = getd("@inventorylist_option_id"+.@r+"["+.@i+"]"); .@RandomValueArray[.@r-1] = getd("@inventorylist_option_value"+.@r+"["+.@i+"]"); .@RandomParamArray[.@r-1] = getd("@inventorylist_option_parameter"+.@r+"["+.@i+"]"); } getitem3 @inventorylist_id[.@i],1,@inventorylist_identify[.@i],@inventorylist_refine[.@i],1,@inventorylist_card1[.@i],@inventorylist_card2[.@i],@inventorylist_card3[.@i],@inventorylist_card4[.@i],.@RandomIDArray,.@RandomValueArray,.@RandomParamArray; end; }
-
View File Hairstyle Package Introduction: This package are currently contains around 90~100 hairstyles for both male/female character. I obtained these from various sources like old eAthena, rAthena, Hercules, TheSpriteRepository and other member who shared these sprites with me etc. I don't remember who exactly made each of the sprites, or who even shared these... tell me if you know who are them. If any of these hairstyles are custom work that are meant for private use, kindly contact me, so that I could remove it from the listing. I do have more than this amount, but since my current test client (2018-06-20) can only support up to 100 sprites, so I randomly picked 100 and only upload it here. It included the default 31 hairstyle from kRO, but I think I replaced the 1~20+ hairstyles from JRO which dyed the hair in dark color, the rest are custom hair styles. How to use: You can either merge the provided GRF into your own GRF Load it as another individual GRF using the DATA.ini file Extract it and put it in your Data folder * Depend on your client hexed with whatever settings. Search forum for all these guides. Disclaimer: You're free to share with everyone but do not monetize the contents in any way! These materials are meant for study or research purpose. Use these at your own risk, and always give credit to original author. If there exists issue with sprite file, for example: sprite misalignment, error, etc, kindly ask help from any member who have knowledge with sprite edit. If there exists issue with palette color file, for example: messed up color, error, etc, kindly ask help from any member who have knowledge with palette color edit. Fun Fact: Do you know you can actually combine all male and female hairstyle (including doram) to create a list of universal hairstyles that could be used by any gender of player and doram? Submitter Emistry Submitted 03/15/2020 Category Hairstyles Content Author Various
-
you can try this. prontera,155,181,5 script Sample 4_F_KAFRA1,{ if (quest_random_cd > gettimetick(2)) { mes "You will be assigned with a new quest by tomorrow 6AM."; mes "Cooldown: "+(quest_random_cd - gettimetick(2))+" seconds"; close; } if (!quest_random) { quest_random = rand(1, 2); mes "You have been assigned with a new quest."; next; } switch(quest_random) { case 1: setarray .@reward, 4001, 1; setarray .@item, 512; setarray .@amount, 100; break; case 2: setarray .@reward, 4002, 1; setarray .@item, 501, 502, 503; setarray .@amount, 3, 1, 2; break; default: mes "invalid quest."; close; } mes "Quest Requirement(s):"; .@size = getarraysize(.@item); for (.@i = 0; .@i < .@size; .@i++) { mes " > "+.@amount[.@i]+"x "+getitemname(.@item[.@i]); if (countitem(.@item[.@i]) < .@amount[.@i]) .@fail++; } if (!.@fail) { next; if (select("Submit Quest", "Cancel") == 1) { for (.@i = 0; .@i < .@size; .@i++) delitem .@item[.@i], .@amount[.@i]; getitem .@reward[0], .@reward[1]; quest_random = 0; quest_random_cd = gettimetick(2) + (86400 - gettimetick(1)) + (6 * 3600); // till 6AM next day. } } close; } or this prontera,155,181,5 script Sample 4_F_KAFRA1,{ if (quest_random_cd == gettime(8)) { mes "You will be assigned with a new quest by tomorrow 6AM."; close; } if (!quest_random) { if (gettime(3) < 6) { mes "You will be assigned with a new quest by 6AM today."; close; } quest_random_cd = 0; quest_random = rand(1, 2); mes "You have been assigned with a new quest."; next; } switch(quest_random) { case 1: setarray .@reward, 4001, 1; setarray .@item, 512; setarray .@amount, 100; break; case 2: setarray .@reward, 4002, 1; setarray .@item, 501, 502, 503; setarray .@amount, 3, 1, 2; break; default: mes "invalid quest."; close; } mes "Quest Requirement(s):"; .@size = getarraysize(.@item); for (.@i = 0; .@i < .@size; .@i++) { mes " > "+.@amount[.@i]+"x "+getitemname(.@item[.@i]); if (countitem(.@item[.@i]) < .@amount[.@i]) .@fail++; } if (!.@fail) { next; if (select("Submit Quest", "Cancel") == 1) { for (.@i = 0; .@i < .@size; .@i++) delitem .@item[.@i], .@amount[.@i]; getitem .@reward[0], .@reward[1]; quest_random = 0; quest_random_cd = gettime(8); } } close; }
-
Version 1.0.0
3218 downloads
Introduction: This package are currently contains around 90~100 hairstyles for both male/female character. I obtained these from various sources like old eAthena, rAthena, Hercules, TheSpriteRepository and other member who shared these sprites with me etc. I don't remember who exactly made each of the sprites, or who even shared these... tell me if you know who are them. If any of these hairstyles are custom work that are meant for private use, kindly contact me, so that I could remove it from the listing. I do have more than this amount, but since my current test client (2018-06-20) can only support up to 100 sprites, so I randomly picked 100 and only upload it here. It included the default 31 hairstyle from kRO, but I think I replaced the 1~20+ hairstyles from JRO which dyed the hair in dark color, the rest are custom hair styles. How to use: You can either merge the provided GRF into your own GRF Load it as another individual GRF using the DATA.ini file Extract it and put it in your Data folder * Depend on your client hexed with whatever settings. Search forum for all these guides. Disclaimer: You're free to share with everyone but do not monetize the contents in any way! These materials are meant for study or research purpose. Use these at your own risk, and always give credit to original author. If there exists issue with sprite file, for example: sprite misalignment, error, etc, kindly ask help from any member who have knowledge with sprite edit. If there exists issue with palette color file, for example: messed up color, error, etc, kindly ask help from any member who have knowledge with palette color edit. Fun Fact: Do you know you can actually combine all male and female hairstyle (including doram) to create a list of universal hairstyles that could be used by any gender of player and doram?Free -
hmm .. it seem like the default datetime stored in your database was different. change ( .@char_name$ == .@claim_name$ && !.@status && .@claim_time$ == "0000-00-00 00:00:00" ) ? "Claim Reward":"", into ( .@char_name$ == .@claim_name$ && !.@status && .@claim_time$ == "1000-01-01 00:00:00" ) ? "Claim Reward":"", or ( .@char_name$ == .@claim_name$ && !.@status) ? "Claim Reward":"", because that claim_time checking was just a failsafe.