Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 04/27/20 in Posts

  1. The following script emulates the Bounty Board Quests from iRO. This was made by having direct interaction with all the npcs, directly doing some of this quest and also using iRO Wiki information as a source. This quest uses a special function designed to concentrate and manage all the bounties in a few lines, to make it easy to update, modify or even create custom bounties. iRO Bounty Boards v1.1.rar : Added vip function to collect all bounties and fixed a minnor bug with one use of a close command. iRO Bounty Boards v1.0.2.rar : Removed += operations with strings. iRO Bounty Boards v1.0.1.rar : Changed npc and monsters constants to numerical ids. iRO Bounty Boards v1.0.rar : Initial Release For more details please check: Bounty Board Quests - iRO Wiki Special thanks to: Trixtan and ZacktheBear from AtlantisRO. This would not have been possible without their invaluable help. Some notes about this: There are some errors in iRO's npc. In example, in Juno the Bounty 70-110 for Juno with a char base level 127, the Bounty says it is for levels 70-100 (not 110, as his name says). This error was caused because this quests were implemented before update that expands max base level to 175 and it seems that iRO's npc were scripted individually one by one, not as a function, so, this errors may be only little bugs when updating values. This kind of error is present in some bounties for Lighthalzen, Hugel, and don't remember which other one. However, all the npcs presented here are using the information provided by iRO Wiki and presents information ingame avoiding this kind of errors. Some to-do : I'm missing base/job exp for False Angel and Mini Demon (Geffen Bounties), since that information is not present in iRO Wiki and I haven't The Sign quest. If somebody can open Portal to Geffenia, i will update that values. Bounties for biolab 3 and 4 has a special function, it is like containing two boards in one, since a player can choose to do all bounties for monsters from 3rd level and all bounties for monsters from 4th level (to receive the reward for all the bounties completed). Add vip function to Collect All Bounties. Add questinfo command to show quest mark in bounties npc. This quests are a close emulation to iRO's Bounty Boards. We hope players can enjoy this quests. If you detect any error or have a suggestion, please feel free to comment it.
    1 point
  2. Hi, as I believe, many of us have a /db/import/quest_db.txt file with any custom quests that currently with the new YAML format are not loaded by the server, my file is attached for example. Is there an automatic way (script? batch?) To convert the DB created in the old .txt format to this new .yml format without having to hand write all the quests one by one? quest_db.txt quest_db.yml
    1 point
  3. Well i can tell you 1 thing and that how you get them in //===== rAthena Script ======================================= //= Card Seller A-Z //===== Description: ========================================= //= Sells all cards dropped by mobs, grouped alphabetically. //= MVP cards are excluded from the list. //= //= NOTE: Requires SQL item and mob databases. //===== Changelogs: ========================================== //= 1.0 First version [AnnieRuru] //= 1.1 Minor edits [Euphy] //= 1.2 Update for monster mode and enchants [Lemongrass] //============================================================ prontera,155,177,5 script Card Seller 100,{ .@menu$ = getvariableofnpc( .alphabet_menu$, "card_seller_creation" ); if (.@menu$ == "") { mes "[Card Seller]"; mes "I am sorry, it seems like something went wrong."; mes "I cannot find any cards in our database at the moment."; mes "Please contact a game master."; close; } mes "[Card Seller]"; mes "Welcome!"; mes "I can sell you any normal monster card in the game. Would you like to have a look?"; next; .@s = select(.@menu$) -1; close2; callshop "card_mob#"+ getvariableofnpc( .alphabet$[.@s], "card_seller_creation" ), 1; end; } - script card_seller_creation -1,{ end; OnInit: if (checkre(0)) { .@mob_db$ = "mob_db_re"; .@item_db$ = "item_db_re"; } else { .@mob_db$ = "mob_db"; .@item_db$ = "item_db"; } freeloop 1; .@total = query_sql( "SELECT DISTINCT LEFT( `name_japanese`, 1 ) AS alphabets FROM `"+ .@item_db$ +"` WHERE `type` = " + IT_CARD + " AND `id` ORDER BY alphabets;", .@alphabet$ ); for ( .@i = 0; .@i < .@total; .@i++ ) { .@nb = query_sql( "SELECT `"+ .@item_db$ +"`.`id` FROM `"+ .@item_db$ +"` WHERE `type` = " + IT_CARD + " AND LEFT( `name_japanese`, 1 ) = '"+ .@alphabet$[.@i] +"' AND `id` ORDER BY `name_japanese` LIMIT 128;", .@id ); if (.@nb > 0) { .alphabet$[.@size_alphabet++] = .@alphabet$[.@i]; .alphabet_menu$ = .alphabet_menu$ + .@alphabet$[.@i] +" Cards:"; npcshopdelitem "card_mob#"+ .@alphabet$[.@i], 501; for ( .@j = 0; .@j < .@nb; .@j++ ) { if (callfunc( "F_IsCharm", .@id[.@j] ) == true)// Skip enchants in case someone added them as card drop continue; npcshopadditem "card_mob#"+ .@alphabet$[.@i], .@id[.@j], 1000000; } } } freeloop 0; end; } - shop card_mob#A -1,501:1000 - shop card_mob#B -1,501:1000 - shop card_mob#C -1,501:1000 - shop card_mob#D -1,501:1000 - shop card_mob#E -1,501:1000 - shop card_mob#F -1,501:1000 - shop card_mob#G -1,501:1000 - shop card_mob#H -1,501:1000 - shop card_mob#I -1,501:1000 - shop card_mob#J -1,501:1000 - shop card_mob#K -1,501:1000 - shop card_mob#L -1,501:1000 - shop card_mob#M -1,501:1000 - shop card_mob#N -1,501:1000 - shop card_mob#O -1,501:1000 - shop card_mob#P -1,501:1000 - shop card_mob#Q -1,501:1000 - shop card_mob#R -1,501:1000 - shop card_mob#S -1,501:1000 - shop card_mob#T -1,501:1000 - shop card_mob#U -1,501:1000 - shop card_mob#V -1,501:1000 - shop card_mob#W -1,501:1000 - shop card_mob#X -1,501:1000 - shop card_mob#Y -1,501:1000 - shop card_mob#Z -1,501:1000 many many errors... but the mvp cards are in figure it out all i did was deleted this IN ( SELECT DISTINCT `dropcardid` FROM `"+ .@mob_db$ +"` WHERE ~(`MODE`) & " + MD_MVP + " ) from both lines
    1 point
  4. Tick Desktop dev with C++ Universal Window Platform dev
    1 point
  5. Try this guide but this is 2017 but all you need is similar here or change version / name in the latest one
    1 point
  6. Hi, I was abble to find in my old backups files some 2006, 2008 and 2009 clients. 2006-12-18a 2008-01-22aSakexe 2008-05-28aSakexe_patched 2008-12-24aSakaexe_patched 2009-03-18a1w_v23_d-grf 2009-06-17-aSakexe 2009-06-24bRagexeRE_patched 2009-02-25b_patched https://www.mediafire.com/file/rnbz5huuwzy130c/old_clients.rar/file Also find this: https://github.com/JulioCF/CronusClient/tree/master/Hexeds Wish you luck
    1 point
  7. http://nemo.herc.ws/clients/
    1 point
  8. - script Sample -1,{ OnInit: setarray .@map_list$, "prtg_cas01", "gefg_cas01", "payg_cas01", "aldeg_cas01", "prtg_cas02", "gefg_cas02", "payg_cas02", "aldeg_cas02", "prtg_cas03", "gefg_cas03", "payg_cas03", "aldeg_cas03", "prtg_cas04", "gefg_cas04", "payg_cas04", "aldeg_cas04", "prtg_cas05", "gefg_cas05", "payg_cas05", "aldeg_cas05"; for (.@i = 0; .@i < .@size; .@i++) setmapflag .@map_list$[.@i], mf_loadevent; end; OnPCLoadMapEvent: if (getmercinfo(0) > 0 && getmapflag(strcharinfo(3), mf_gvg_castle)) { mes "Mercenary aren't allowed in woe."; sleep 3000; warp "SavePoint", 0, 0; } end; } for your warpers and other NPC, add these line. if (getmercinfo(0)) { mes "Mercenary aren't allowed in woe."; close; }
    1 point
  9. You could try below prontera,150,150,6 script Gold Room Manager 2_M_OLDBLSMITH,{ function CheckRoom; .@guild = getcharid(2); if (!.@guild) { mes .npc$; mes "You are not in guild"; close; } if (strcharinfo(0) != getguildmaster(.@guild)) { mes .npc$; mes "Only guild leader can talk to me"; close; } if (Zeny < .zeny) { mes .npc$; mes "You need " + (callfunc ("F_InsertComma", .zeny)) + " zeny in order to rent a room."; close; } mes .npc$; mes "Which map do you want to rent?"; next; while (.@i < .size) { if (CheckRoom(.@i) && getd(".Room"+.@i) == getcharid(2)) .@owned++; .@menu$ += .Maps$[.@i] + " - [" + (CheckRoom(.@i) ? "Unavailable" : "Available") + "]:"; .@i++; } .@s = select(.@menu$) - 1; if (CheckRoom(.@s)) { mes .npc$; mes "I told you it's unavailable!"; close; } if (.@owned) { mes .npc$; mes "You already owned a room! Make room for others!"; close; } mes .npc$; mes "Are you sure you want to rent " + .Maps$[.@s] + "?"; next; if (select("Yes:No") - 1) end; Zeny -= .zeny; setd ".Room"+.@s, .@guild; announce "Guild " + getguildname(.@guild) + " has occupied gold room " + .Maps$[.@s], 0; close; // true = occupied | false = available function CheckRoom { .@rn = getarg(0, 0); return getd(".Room"+.@rn) ? true : false; } // Release rooms every 2 hours OnMinute00: if (gettime(DT_HOUR) % 2) end; while (.@i < .size) { setd ".Room"+.@i, 0; .@i++; } announce "Gold rooms are now available again for rent!", 0; end; OnGuildRoom: if (!getcharid(2)) end; while (.@i < .size) { if (getd(".Room"+.@i) == getcharid(2)) { warp .Maps$[.@i], 0, 0; break; } .@i++; } end; OnInit: .npc$ = "[" + strnpcinfo(1) + "]"; setarray .Maps$[0], "ordeal_3-1", "ordeal_3-2"; .size = getarraysize(.Maps$); while (.@i < .size) { setmapflag .Maps$[.@i], MF_NOWARPTO; .@i++; } .zeny = 5000; bindatcmd "guildroom", strnpcinfo(1) + "::OnGuildRoom"; end; } - script GRBuff FAKE_NPC,{ if (@delay > gettimetick(2)) { emotion ET_ANGER; npctalk "Use me after " + (@delay - gettimetick(2)) + " second(s)."; } else { specialeffect2 EF_HEAL2; percentheal 100,100; specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,240000,10; specialeffect2 EF_BLESSING; sc_start SC_BLESSING,240000,10; @delay = gettimetick(2) + 3; // 3 seconds delay } end; } // Add more npc on every room ordeal_3-1,149,149,6 duplicate(GRBuff) Kiddo#ord31 4W_KID ordeal_3-2,153,153,6 duplicate(GRBuff) Kiddo#ord32 4W_KID // Monsters ordeal_3-1,0,0 monster Dokebi 1110,50,5000 ordeal_3-2,0,0 monster Dokebi 1110,50,5000
    1 point
  10. There's no #define RENEWAL_CAST in skill.h
    1 point
×
×
  • Create New...