Leaderboard
Popular Content
Showing content with the highest reputation on 04/19/25 in all areas
-
Version 1.0.0
103 downloads
Author: Nyani Version 1.0 ---------------------------------------------- Features - Unlimited Chain Quest (Randomized Kill/Collection Quest) - Automatic Quest submission - unless Collection Quest (Must turn in) - Automatic Quest Acquisition - Does not repeat previous quest (shuffles the quest provided) - Cancel Current Quest (Must talk to NPC) - Monthly Ranking - Automated Monthly Reward distribution - Chance to obtain rewards for quest submissions - Milestone Rewards every 100 quests finished ---------------------------------------------- Changelogs v1.0 - Initial Release Notice: No support will be provided - unless it is a bug on the current script Config // ========================== // CONFIGURATION // ========================== // 0 = NPC Claim Mode, 1 = RoDEX Mode .reward_mode = 1; // Mob and kill amounts setarray .MobList[0], 1002,1004,1010; setarray .MobAmount[0], 30,40,50; setarray .ItemList[0], 705, // Orcish Voucher 1015, // Garlet 1021, // Tooth of Bat 719, // Bear’s Footskin 729, // Coal 744, // Witherless Rose 746, // Evil Horn 728, // Cyfar 938, // Golem Fragment 1058, // Cactus Needle 1009, // Claw of Desert Wolf 1038, // Emveretarcon 1042, // Worm Peelings 1044, // Flame Heart 1046, // Mystic Frozen 1047, // Great Nature 1049; // Red Blood setarray .ItemAmount[0], 5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5; // Completion reward pool setarray .RewardList[0], 607, 608, 609; setarray .RewardAmount[0], 1, 2, 1; // 100-completion reward pool setarray .SpecialRewardList[0], 7711, 7712; setarray .SpecialRewardAmount[0], 1, 1; // Monthly rewards for top 10 setarray .MonthlyReward[0], 607, 501, 504, 505, 506,909,910; setarray .MonthlyRewardAmount[0], 5, 2, 1, 3, 2,5,10; // Reward chance settings (1-10000 scale) .RewardChance = 10000; // 100% chance by default .SpecialRewardChance = 10000; // 100% for 100-completion Make sure to run SQL queries! No support provided, unless it's a bug in the script's core features.Free2 points -
I'm not sure this is what you asked. You can copy the NPC to put in another map, there are 3 examples. The item data is in the .items array. //===== rAthena Script ======================================= //= Idea Economic Model //===== By: ================================================== //= monyet //============================================================ // NPC: Abas Eden Group (NPC Penjual Item Konsumsi) morocc,172,86,5 script Abas 56,{ mes "[Abas]"; mes "Berikut adalah harga pembelian kami saat ini:"; ShowSellItemList(strnpcinfo(0)); next; ChooseSellItem(strnpcinfo(0)); close; OnInit: //<Item ID>, <Minimum Price>, <Maximum Price>, setarray .items, 12041,200,2500, //Fried Grasshopper Legs 12051,150,2550, //Steamed Crab Nippers 12056,200,2500, //Frog Egg Squid Ink Soup 12066,200,2500, //Fried Monkey Tails 12042,200,2500, //Seasoned Sticky Webfoot 12052,200,2500, //Assorted Seafood 12057,200,2500, //Smooth Noodle 12043,200,2500, //Bomber Steak 12053,200,2500, //Clam Soup 12058,200,2500, //Tentacle Cheese Gratin 12068,200,2500, //Fried Sweet Potato 12054,200,2500, //Seasoned Jellyfish 12059,200,2500, //Lutie Cold Noodle 12069,200,2500, //Steamed Ancient Lips 12070,200,2500; //Fried Scorpion Tails bindatcmd "resetpricesmorocc",strnpcinfo(3) + "::OnReset",99,99; .size = getarraysize(.items); donpcevent strnpcinfo(0)+"::OnReset"; end; OnTimer3600000: OnReset: stopnpctimer(); .@npc = getnpcid(0); for ( .@i = 0; .@i < .size; .@i += 3 ) { setd "$@" + .@npc + "last" + .items[.@i], getd("$@" + .@npc + "_" + .items[.@i]); setd "$@" + .@npc + "_" + .items[.@i], rand(.items[.@i+1], .items[.@i+2]); } initnpctimer(); announce "Pedagang Grup Eden Morocc: Harga telah diperbarui! Silakan cek barang yang ingin dijual.", bc_all; end; } // NPC: Abas Veins (NPC Penjual Item ratna) morocc,172,90,3 script Abas#veins 1_M_SIGNMCNT,{ mes "[Abas]"; mes "Saya akan membeli batu langka apa pun yang Anda temukan saat menambang."; if (getgroupid() >= 99) mes " ", "^808080@resetpricesveins^000000 untuk memaksa pengaturan ulang."; next; switch(select("Pembelian harga saat", "Penjual")) { case 1: mes "[Abas]"; mes "Berikut adalah harga pembelian kami saat ini:"; ShowSellItemList(strnpcinfo(0)); break; case 2: ChooseSellItem(strnpcinfo(0)); break; } close; OnInit: //<Item ID>, <Minimum Price>, <Maximum Price>, setarray .items, 718,3000,6000, //Garnet 719,3000,6000, //Amethyst 720,3000,6000, //Aquamarine 721,2500,4500, //Emerald 722,3000,6000, //Pearl 723,2500,4500, //Ruby 725,3000,6000, //Sardonyx 726,2500,4500, //Sapphire 727,3000,6000, //Opal 728,2500,4500, //Topaz 729,2500,4500, //Zircon 969,2000,3500, //Gold 714,10000,20000; //Emperium bindatcmd "resetpricesveins",strnpcinfo(3) + "::OnReset",99,99; .size = getarraysize(.items); donpcevent strnpcinfo(0)+"::OnReset"; end; OnMinute20: OnReset: stopnpctimer(); .@npc = getnpcid(0); for ( .@i = 0; .@i < .size; .@i += 3 ) { setd "$@" + .@npc + "last" + .items[.@i], getd("$@" + .@npc + "_" + .items[.@i]); setd "$@" + .@npc + "_" + .items[.@i], rand(.items[.@i+1], .items[.@i+2]); } initnpctimer(); announce "Pedagang Veins: Harga telah diperbarui! Silakan cek barang yang ingin dijual.", bc_all; end; } // NPC: Abas Rachel (NPC Penjual Item) morocc,170,89,3 script Abas#rachel 935,{ mes "[Abas]"; mes "Kuil tersebut mencari artefak terkutuk untuk pemurnian nanti."; if (getgroupid() >= 99) mes " ", "^808080@resetpricesrachel^000000 untuk memaksa pengaturan ulang."; next; switch(select("Pembelian harga saat", "Penjual")) { case 1: mes "[Abas]"; mes "Berikut adalah harga pembelian kami saat ini:"; ShowSellItemList(strnpcinfo(0)); break; case 2: ChooseSellItem(strnpcinfo(0)); break; } close; OnInit: //<Item ID>, <Minimum Price>, <Maximum Price>, setarray .items, 1761,50,200, //Cursed Arrow 724,200,600, //Cursed Ruby 6004,8000,10000, //Cursed Baphomet Doll 12020,1000,2000, //Cursed Water 2728,50000,60000; //Cursed Hand bindatcmd "resetpricesrachel",strnpcinfo(3) + "::OnReset",99,99; .size = getarraysize(.items); donpcevent strnpcinfo(0)+"::OnReset"; end; OnMinute40: OnReset: stopnpctimer(); .@npc = getnpcid(0); for ( .@i = 0; .@i < .size; .@i += 3 ) { setd "$@" + .@npc + "last" + .items[.@i], getd("$@" + .@npc + "_" + .items[.@i]); setd "$@" + .@npc + "_" + .items[.@i], rand(.items[.@i+1], .items[.@i+2]); } initnpctimer(); announce "Pedagang Kuil Rachel: Harga telah diperbarui! Silakan cek barang yang ingin dijual.", bc_all; end; } // NPC: Abas Hugel (NPC Penjual Item) morocc,176,90,3 script Abas#hugel 4_M_HUOLDARMY,{ mes "[Abas]"; mes "Halo! Saya membeli barang-barang lokal untuk mendukung pertanian di Hugel."; if (getgroupid() >= 99) mes " ", "^808080@resetpriceshugel^000000 untuk memaksa pengaturan ulang."; next; switch(select("Pembelian harga saat", "Penjual")) { case 1: mes "[Abas]"; mes "Berikut adalah harga pembelian kami saat ini:"; ShowSellItemList(strnpcinfo(0)); break; case 2: ChooseSellItem(strnpcinfo(0)); break; } close; OnInit: //<Item ID>, <Minimum Price>, <Maximum Price>, setarray .items, 519,50,100, //Milk 574,50,100, //Egg 518,100,200, //Honey 577,100,200, //Grain 1026,100,200, //Acorn 581,100,200, //Edible Mushroom 515,100,200, //Carrot 516,100,200, //Sweet Potato 535,100,200, //Pumpkin 517,150,300, //Meat 919,80,100; //Animal Skin bindatcmd "resetpriceshugel",strnpcinfo(3) + "::OnReset",99,99; .size = getarraysize(.items); donpcevent strnpcinfo(0)+"::OnReset"; end; OnMinute00: OnReset: stopnpctimer(); .@npc = getnpcid(0); for ( .@i = 0; .@i < .size; .@i += 3 ) { setd "$@" + .@npc + "last" + .items[.@i], getd("$@" + .@npc + "_" + .items[.@i]); setd "$@" + .@npc + "_" + .items[.@i], rand(.items[.@i+1], .items[.@i+2]); } initnpctimer(); announce "Pedagang Hugel: Harga telah diperbarui! Silakan cek barang yang ingin dijual.", bc_all; end; } // Function ShowSellItemList - Tampilkan daftar barang yang dijual function script ShowSellItemList { .@npc = getnpcid(0, getarg(0)); .@size = getvariableofnpc( .size, getarg(0)); copyarray .@items[0], getvariableofnpc( .items[0], getarg(0)), .@size; for ( .@i = 0; .@i < .@size; .@i += 3 ) { .@item_id = .@items[.@i]; .@old_price = getd("$@" + .@npc + "last" + .@items[.@i]); .@price = getd("$@" + .@npc + "_" + .@items[.@i]); if (.@price > .@old_price && .@old_price) setarray .@c$,"^008000","/\\"; else if (.@price < .@old_price) setarray .@c$,"^FF0000","\\/"; mes mesitemlink(.@item_id, false) + ": " + .@c$[0] + F_InsertComma(.@price) + " Z " + .@c$[1] + "^000000"; } return; } // Function ChooseSellItem - periksa inventaris untuk barang yang akan dijual function script ChooseSellItem { disable_items; .@npc = getnpcid(0, getarg(0)); explode(.@npcname$, getarg(0), "#"); .@size = getvariableofnpc( .size, getarg(0)); copyarray .@items[0], getvariableofnpc( .items[0], getarg(0)), .@size; for (.@i = 0; .@i < .@size; .@i+=3) { if (countitem(.@items[.@i]) > 0) { .@menu$ += "^0000FF" + getitemname(.@items[.@i]) + "^000000:"; .@menuindex[.@count++] = .@i; } } if (.@count == 0) { mes "[" + .@npcname$[0] + "]"; mes "Anda tidak memiliki salah satu item yang diterima."; mes "Kembali lagi ketika Anda memiliki sesuatu untuk dijual."; close; } mes "[" + .@npcname$[0] + "]"; mes "Apa yang ingin kamu jual?"; mes "Silakan pilih item yang ingin kamu jual."; .@selected = .@menuindex[select(.@menu$ + "Tidak Jadi") - 1]; clear; if (.@selected < .@count) { mes "[" + .@npcname$[0] + "]"; mes "Baik, mungkin lain kali."; close; } callfunc "SellItem", .@items[.@selected], getd("$@" + .@npc + "_" + .@items[.@selected]), getitemname(.@items[.@selected]); return; } // Function SellItem — penanganan jual item function script SellItem { .@item_id = getarg(0); .@price = getarg(1); .@item_name$ = getarg(2); if (countitem(.@item_id) < 1) { mes "Maaf, sepertinya kamu tidak memiliki "+.@item_name$+"!"; close; } mes "Berapa banyak "+.@item_name$+" yang ingin kamu jual?"; input .@amount; if (.@amount <= 0 || .@amount > countitem(.@item_id)) { mes "Mohon masukkan jumlah yang valid!"; close; } .@total_price = .@amount * .@price; mes "Kamu akan mendapatkan "+.@total_price+" Zeny untuk "+.@amount+" "+.@item_name$+"."; if (select("Jual:Batalkan") == 1) { delitem .@item_id, .@amount; set Zeny, Zeny + .@total_price; mes "Terima kasih telah menjual "+.@amount+" "+.@item_name$+" seharga "+.@total_price+" Zeny!"; } else { mes "Baik, mungkin lain kali."; } close; }1 point
-
Hi. Find: OnTimer10800000: And replace: OnTimer9000000: //trigger on the minimum time (2.5 hours) sleep rand(1800000); //Waits randomly until the max time (3 hours) Find: monster "prontera",98,186,"Gluttonous Plant",1750,1,"AntHellInvasion::OnInvasionAntHellPlant"; And add below it: setunitdata($@mobid[0], UMOB_DMGIMMUNE, 1); //make Plant not killable1 point
-
View File Shops Selling All Costumes Available in Rathena This script has NPC shops that sell all available costume items in rAthena as of March 2025. Costumes are categorized based on their equipment slot (Upper, Middle, Lower and Garment) and distributed across multiple shops (150 item per shop), Ensuring a well-organized and accessible shopping experience. The item list is filtered to include only valid costumes from latest iteminfo_EN.lua (English Translation), preventing missing or invalid entries. if you remove the commented shops it will sell all costumes available in the database (item_equip_db.yml). Ideal for servers looking to provide a complete costume collection for players! Submitter Shiroy Submitted 03/18/25 Category Utilities Video Content Author Shiroy1 point