-
Posts
763 -
Joined
-
Last visited
-
Days Won
20
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by crazyarashi
-
unexpected type for argrument 1 expected string . PVP script
crazyarashi replied to Takuyakii's question in Scripting Support
//This lines if (.msg_die) message .@victimaid, "You have been killed by "+ .@killername$; if (.msg_kill) message .@killeraid, "You just killed "+ .@victimname$; to if (.msg_die) message .@victimname$, "You have been killed by "+ .@killername$; if (.msg_kill) message .@killername$, "You just killed "+ .@victimname$; -
[ON] and [OFF] using switch(select
crazyarashi replied to Gidz Cross's question in Scripting Support
switch(select("MENU 1","MENU 2",(case == 1 ? "ON" : "OFF"))){ case 1: //CODE case 2: //CODE case 3: case = (case == 1 ? 0 : 1); } Use ternary operator -
//callfunc("RENAME_ME",501,50,30,502,5,20,503,10,30); //ITEM ID, AMOUNT, WEIGHT function script RENAME_ME { for(.@i = 0; .@i < getargcount(); .@i += 3){ .@id[.@i/3] = getarg(.@i); .@amount[.@i/3] = getarg(.@i+1); .@size += getarg(.@i+2); for(.@j = 0; .@j < getarg(.@i+2); .@j++) .@list[getarraysize(.@list)] = getarg(.@i); } .@item = .@list[rand(.@size)]; getitem .@item,.@amount[inarray(.@id,.@item)]; return; }
-
Crazyarashi Script Collection [3/13/2021]
crazyarashi replied to crazyarashi's topic in Script Collections
There seems to be people around here capitalizing over my scripts, do not be a victim of those people. March 13, 2021 Update : Added 17.1 Illusion - Custom -
payon,139,226,5 script Potion Converter 749,{ for(.@i = 0; .@i < .size; .@i += 5) .@menu$ += .trade[.@i+1] + " x " + getitemname(.trade[.@i]) + " for " + .trade[.@i+3] + " x " + getitemname(.trade[.@i+2]) + ":"; .@s = (select(.@menu$) - 1) * 5; .@max = countitem(.trade[.@s]) / .trade[.@s+1]; mes "Max Amount available for trade : " + .@max; next; input .@amount; .@amount = min(.@amount,.@max); if(.@amount > .@max || .@amount == 0){ mes "Amount cannot be 0 or greater than the max tradeable amount."; end; } mes "You have selected " + .trade[.@s+1] + " x " + getitemname(.trade[.@s]) + " for " + .trade[.@s+3] + " x " + getitemname(.trade[.@s+2]) + "?"; mes "This has " + .trade[.@s+4] + "% success rate."; mes "Amount : " + .@amount; mes "Note: everything you trade will be character bound potion."; next; if(select("Cancel:Trade") == 1) end; .@total = countitem(.trade[.@s+1]) * .@amount; if(countitem(.trade[.@s]) < .@total){ mes "You don't have enough item for trade."; end; } delitem .trade[.@s],.trade[.@s+1] * .@amount; for(.@i = 0; .@i < .@amount; .@i++){ if(.trade[.@s+4] < rand(1,100)) continue; .@success++; } mes "Successfully converted amount : " + .@success; getitem .trade[.@s+2],.@success * .trade[.@s+3]; end; OnInit: // < ITEM FOR TRADE >, < AMOUNT >, < ITEM TRADED >, < AMOUNT >, < SUCCESS RATE >.. setarray .trade, 11503,2,32018,1,100; .size = getarraysize(.trade); end; }
-
OnInit: // 1 = item reward // 2 = variable/cashpoints reward // If you want to set item and variable/cashpoints rewards, do 1|2. // If you only want 1, just choose between 1 or 2 $event_options = 1|2; setarray $event_item_reward, 501, 10, 502, 5; setarray $event_var$,"EVENTVARIABLE1","EVENTVARIABLE2"; setarray $event_var_name$,"Custom Points 1","EVENT VARIABLE2"; setarray $event_var_gain,1,3; $event_item_arr = getarraysize($event_item_reward); if ( $event_options&1 ) { for ( .@j = 0; .@j < $event_item_arr; .@j += 2 ) getitem $event_item_reward[.@j], $event_item_reward[.@j+1]; } if ( $event_options&2 ) { for(.@i = 0; .@i < getarraysize($event_var$); .@i++){ .@v = getd("#" + $event_var$[.@i]) + $event_var_gain[.@i]; setd getd("#" + $event_var$[.@i]),.@v; dispbottom "You gained "+$event_var_gain[.@i]+" "+$event_var_name$[.@i]+". You now have "+getd("#" + $event_var$[.@i])+" "+$event_var_name$[.@i]+"."; }
-
- script npc_example -1,{ OnCommand: //Add event on the start of your npc mes "I'm the Example."; end; OnInit: bindatcmd "npc1",strnpcinfo(3) + "::OnCommand"; end; }
-
Changed it. Thanks Akkarin ^^
-
View File Compendium Compendium - A levelable battle pass inspired majority of games out there. Feature : Easy customizable settings. Three types of selectable daily quest. Daily quest requirements are randomized. Daily quest count resets everyday. Compendium resets on the first day of the month. Rewards are sent via mail. '@compendium' command to access the compendium Settings : Adding a reward on the compendium Rewards : "Level | Reward ID, Amount, Reward ID, Amount,... ==| Level order doesn't matter but 'duplicates' will bug out the script. setarray .compendium_reward$, "1|501:10,502:20", "10|501:20,502:30", "5|501:100,502:500"; Adding a monster/item/mvp to hunt or collect Just add the ID on the following line. setarray .mvp_list setarray .hunt_list setarray .gather_list Changing EXP given on the quest types. .gathering_exp = 50; .hunt_exp = 50; .mvp_hunt_exp = 100; Submitter crazyarashi Submitted 12/09/2020 Category Utilities Video Content Author crazyarashi
-
Version 1.1.0
733 downloads
Compendium - A levelable battle pass inspired majority of games out there. Feature : Easy customizable settings. Three types of selectable daily quest. Daily quest requirements are randomized. Daily quest count resets everyday. Compendium resets on the first day of the month. Rewards are sent via mail. '@compendium' command to access the compendium Settings : Adding a reward on the compendium Rewards : "Level | Reward ID, Amount, Reward ID, Amount,... ==| Level order doesn't matter but 'duplicates' will bug out the script. setarray .compendium_reward$, "1|501:10,502:20", "10|501:20,502:30", "5|501:100,502:500"; Adding a monster/item/mvp to hunt or collect Just add the ID on the following line. setarray .mvp_list setarray .hunt_list setarray .gather_list Changing EXP given on the quest types. .gathering_exp = 50; .hunt_exp = 50; .mvp_hunt_exp = 100;Free -
View File Equipment Recycle NPC A recycle NPC that uses the shop interface. Changing the rewards .reward_id = 501; .reward_point$ = "#KAFRAPOINT"; Adding a recyclable equipment. /* *=============================================================================| * .@r = Refine | .@b = Bonus =| * list_add("<Equip ID>,<Value>{,<Starting .@r for .@b>,.@b1:.@b2:.@b3:..."); =| *=============================================================================| * Cotton_Shirt w/ +8 Starting .@r bonus =| * .@r = 8 : 1 Bonus Item/Point =| * .@r = 9 : 5 Bonus Item/Point =| * .@r >= 10 : 7 Bonus Item/Point. =| *=============================================================================| * list_add(2301,8,"1:5:7"); =| ==============================================================================| */ function list_create { //= Remove samples and add here. list_add(2301,10,8,"1:5:7"); //Cotton_Shirt list_add(1201,10,7,"1:2:3:4:5"); //Knife list_add(2504,5); //Muffler_ return; } Submitter crazyarashi Submitted 12/07/2020 Category Utilities Video Content Author crazyarashi
-
Version 1.1.0
586 downloads
A recycle NPC that uses the shop interface. Changing the rewards .reward_id = 501; .reward_point$ = "#KAFRAPOINT"; Adding a recyclable equipment. /* *=============================================================================| * .@r = Refine | .@b = Bonus =| * list_add("<Equip ID>,<Value>{,<Starting .@r for .@b>,.@b1:.@b2:.@b3:..."); =| *=============================================================================| * Cotton_Shirt w/ +8 Starting .@r bonus =| * .@r = 8 : 1 Bonus Item/Point =| * .@r = 9 : 5 Bonus Item/Point =| * .@r >= 10 : 7 Bonus Item/Point. =| *=============================================================================| * list_add(2301,8,"1:5:7"); =| ==============================================================================| */ function list_create { //= Remove samples and add here. list_add(2301,10,8,"1:5:7"); //Cotton_Shirt list_add(1201,10,7,"1:2:3:4:5"); //Knife list_add(2504,5); //Muffler_ return; }Free -
Looking for an Invasion Scriptwith mob selection
crazyarashi replied to Rivers's question in Script Requests
- script invasion -1,{ OnInit: setarray .map$,"prontera","izlude"; function add_set; function create_set; create_set(); end; OnMinute00: function start_set; start_set(); end; OnMobDead: if(!mobcount(.current_map$,strnpcinfo(0) + "::OnMobDead")){ OnTimer900000: function end_set; end_set(); } end; //= Add your new set here. function create_set { //= add_set("Mob ID:Mob Amount{:Min amount:Max amount},....."); If min/max amount is added mob amount will be ignored. add_set("1001:50,1002:20:70:100"); add_set("1005:50:10:20,1001:20"); } function add_set { .set$[getarraysize(.set$)] = getarg(0); return; } function start_set { .current_map$ = .map$[rand(getarraysize(.map$))]; killmonster .current_map$,strnpcinfo(0) + "::OnMobDead"; explode(.@T$,.set$[rand(getarraysize(.set$))],","); for(.@i = 0; .@i < getarraysize(.@T$); .@i++){ explode(.@TT$,.@T$[.@i],":"); if(getarraysize(.@TT$) > 2){ if(atoi(.@TT$[3]) == 0) .@amount = atoi(.@TT$[1]); else .@amount = rand(atoi(.@TT$[2]),atoi(.@TT$[3])); } else .@amount = atoi(.@TT$[1]); monster .current_map$,0,0,"--ja--",atoi(.@TT$[0]),.@amount,strnpcinfo(0) + "::OnMobDead"; deletearray .@TT$[0],getarraysize(.@TT$); } announce "Invasion : Invasion has started in " + .current_map$ + ".",bc_blue; initnpctimer; end; } function end_set { announce "Invasion : All monster has been killed.",bc_blue; killmonster .current_map$,strnpcinfo(0) + "::OnMobDead"; end; } } -
View File Instance @cd/@cooldown Command A simple command for managing instance cooldowns or any other quest that you feel like adding. Adding new quest/instance should be simple enough for everyone. Submitter crazyarashi Submitted 12/06/2020 Category Utilities Video Content Author crazyarashi
- 1 reply
-
- 1
-
-
Database MySQL / Login / Map / Char Server Error?
crazyarashi replied to Osus's question in Database Support
Its either the user/pass is wrong or the user doesn't have permission. Try using localhost in your inter server configuration -
prontera,255,55,5 script NPC 123,{ if(!.active) end; mes "Event is active."; close; OnInit: OnHour00: .active = 0; function check_month_end; .@day = 10; .@months_end = check_month_end(); if(.@day > .@months_end) .@day = .@months_end; .@current_day = gettime(DT_DAYOFMONTH); if(.@current_day < .@day) waitingroom "Next offer appears in " + (.@day - .@current_day) + "D at 21:00",0; else if(.@current_day > .@day) waitingroom "Next offer appears in " + ((.@months_end - .@current_day) + .@day) + "D at 21:00",0; else { waitingroom "OFFER DAY!",0; .active = 1; } end; function check_month_end { .@month = gettime(DT_MONTH); switch(.@month){ case APRIL: case JUNE: case SEPTEMBER: case NOVEMBER: .@days = 30; break; case FEBRUARY: .@year = gettime(DT_YEAR); if(.@year % 4 == 0 && .@year % 100 != 0 || .@year % 400 == 0) .@days = 29; else .@days = 28; break; default: .@days = 31; break; } return .@days; } }
-
Try adding it in, luafiles514/transparentitem/transparentitem.lub
-
Make sure you add your robes into the following files luafiles514/datainfo/spriterobeid.lub luafiles514/datainfo/spriterobename.lub
-
prontera,255,55,5 script exchange_tcg 123,{ .@max = Zeny/.rates; mes "[ Exchanger ]"; mes "Do you want to exchange your ^33CC33" + .rates + "^000000 Zeny to a TCG?"; next; if(select("Exchange:Quit") == 2) end; if(!.@max){ mes "[ Exchanger ]"; mes "You don't have enough zeny for the exchange."; close; } OnExchange: mes "[ Exchanger ]"; mes "You can exchange up to ^0000FF"+.@max+"^000000 TCG."; mes "How many would you like to exchange?"; next; input .@count; if(.@count == 0 || .@count > .@max){ mes "[ Exchanger ]"; mes "You can't enter 0 or you can only exchange up to ^0000FF"+.@max+"^000000 TCG."; mes "Please try again."; next; goto OnExchange; } mes "[ Exchanger ]"; mes "Are you sure you want to exchange ^33CC33" + (.rates*.@count) + "^000000 Zeny for " + .@count + "TCG?"; next; if(select("Yes:No") == 2) end; mes "[ Exchanger ]"; mes "Okay, Here you go!, Thank you for using my services."; Zeny -= (.rates*.@count); getitem .item_id,.@count; end; OnInit: .item_id = 501; .rates = 10000000; end; }
-
Doubt about kagerou and oboro shadow armor
crazyarashi replied to Hatsumi's question in Database Support
I see nothing wrong with it. It's a class specific item. https://www.divine-pride.net/database/item/24403 https://www.divine-pride.net/database/item/24404 -
All maps are removed when operating server on linux
crazyarashi replied to dma2's question in General Support
Make sure you comment out everything in the conf/grf-files.txt and double check your map_cache. -
if(Class == Job_Knight || Class == Job_Lord_Knight){ if(checkriding()){ setoption OPTION_DRAGON1; } } //= Unequip Part of the item script //= Remove Dragon/Ride PecoPeco and changebase if(Class == Job_Knight || Class == Job_Lord_Knight){ if(checkdragon()){ setriding; setriding; } } changebase Class;
-
HOW TO MAKE EAJL BABY THIRD JOB AND BABY 2ND JOB
crazyarashi replied to Emonizer08's question in Scripting Support
The eaclass as far as i know won't work for what you're looking for since it's invoking from the player's class and baby class is a class of its own. ex : baby lord knight EAJL_THIRD is baby rune knight quite hard to explain. Another choice is to write a simple function for it that changebase to baby classes depending on the job.- 1 reply
-
- 1
-
https://github.com/rathena/rathena/blob/master/doc/mapflags.txt#L27-L36