

KidoSang
Members-
Posts
24 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by KidoSang
-
Your doram max job level is 50? if yes just change to this // -- A very simple script that made by me (Radian) // -- Compatible with rAthena. // -- I don't mind if you want to optimized this // -- just please include me on the credits :) prontera,140,177,4 script Max Lvl Reward Giver 4_F_NARIN,{ if ( .enable_event ) { if ( getcharid(3) > .aid_end ) { mes "[ ^777777Account ID Checker^000000 ]"; mes "I'm sorry you are late to avail this.."; close; } if ( getcharid(3) < .aid_start ) { mes "[ ^777777Account ID Checker^000000 ]"; mes "It's impossible you are below of the id we required to obtained the special event rewards."; close; } if( Class == 4218 ){ if ( BaseLevel < .max_base_level || JobLevel < .max_job_level_summon ) { mes "[ ^00FF00Race Up to Max^000000 ]"; mes "We're sorry you are not qualified yet on this event, please come back when you are base level is "+.max_base_level+" and job level is "+.max_job_level+"."; close; } }else{ if ( BaseLevel < .max_base_level || JobLevel < .max_job_level ) { mes "[ ^00FF00Race Up to Max^000000 ]"; mes "We're sorry you are not qualified yet on this event, please come back when you are base level is "+.max_base_level+" and job level is "+.max_job_level+"."; close; } } if ( #Reward == 1 ) { mes "[ ^FF0000FATAL ERROR^000000 ]"; mes "We apologize that you are not qualified any more to receive or get a special reward from us."; close; } mes "[ ^0000FFCongratulation Note^000000 ]"; mes "We verified that you are qualified and will receive a reward from us."; for ( .@i = 0; .@i < getarraysize(.reward); .@i++ ) for ( .@i = 0; .@i < getarraysize(.amount); .@i++ ) getitem .reward[.@i],.amount[.@i]; set #Reward, 1; close; OnInit: // ------------------------------------------------------------ .enable_event = 1; // Set 0 = Disable / 1 = Enable Default. .max_base_level = 175; // Set the maximum base level here. .max_job_level = 60; // Set the maximum job level here. .max_job_level_summon = 50; // Set the maximum job level here. .aid_start = 2000000; // Set the Account ID here where you want to start. [ set this to 0 = disable ] .aid_end = 9999999; // Set the ending Account ID here. [ set this to 0 = disable ] setarray .reward,7720,26090,16682,13607; // Set the rewards here. setarray .amount,100,1,1,3; // Set the reward amouns here. waitingroom "Race to the Max",0; // Waiting Room. // ------------------------------------------------------------- \\ end; } }
- 1 reply
-
- 1
-
-
Hmm, if im not wrong isequipped support only for card ids. Not really sure, i check the script page but it seems like it mention only for cards. i would do it in this way. havent tested yet. switch(getequipid(EQI_HAND_R)){ case 13071: case 18112: case 21000: case 1292: if (countitem (6240) <1 && countitem (984) < 1) { message strcharinfo (0), "You need some ore so I can upgrade your weapon"; }else{ //do your stuff here } break; default: message strcharinfo (0), "You have no equipped Upg weapon"; break; }
-
[SQL] Vending NPC with items/currency from SQL table
KidoSang replied to CyberDevil's question in Scripting Support
Sorry i dont really get the whole idea. What you mean is you want an npc basically open an item shop base on the table shop_npc in your database? -
function script guildbox { setarray .@weaponcard[1],4140,4062; setarray .@garmentcard[1],4402,4359; setarray .@acccard[1],4252,4344; setarray .@armorcard[1],4409,4401; if(#end == 1){ goto cardend; }else{ goto card1; } end; card1: for( .@i = 1; .@i < getarraysize(.@weaponcard); .@i++ ){ .@menu1$ = .@menu1$ + getitemname(.@weaponcard[.@i]) + ":"; } #selectedcard[1] = .@weaponcard[select(.@menu1$)]; if(#end == 1){ goto cardend; } goto card2; end; card2: for( .@i = 1; .@i < getarraysize(.@armorcard); .@i++ ){ .@menu2$ = .@menu2$ + getitemname(.@armorcard[.@i]) + ":"; } #selectedcard[2] = .@armorcard[select(.@menu2$)]; if(#end == 1){ goto cardend; } goto card3; end; card3: for( .@i = 1; .@i < getarraysize(.@acccard); .@i++ ){ .@menu3$ = .@menu3$ + getitemname(.@acccard[.@i]) + ":"; } #selectedcard[3] = .@acccard[select(.@menu3$)]; if(#end == 1){ goto cardend; } goto card4; end; card4: for( .@i = 1; .@i < getarraysize(.@garmentcard); .@i++ ){ .@menu4$ = .@menu4$ + getitemname(.@garmentcard[.@i]) + ":"; } #selectedcard[4] = .@garmentcard[select(.@menu4$)]; goto cardend; end; cardend: #end = 1; .@menu5$ = ""; mes "You had selected the card as below."; mes "Do you wish to change or continue?"; for( .@i = 1; .@i < getarraysize(#selectedcard); .@i++ ){ .@menu5$ = .@menu5$ + "Change " +getitemname(#selectedcard[.@i]) + ":"; } .@menu5$ = .@menu5$ + "Proceed"; .@finalanswer = select(.@menu5$); switch(.@finalanswer){ case 1: goto card1; break; case 2: goto card2; break; case 3: goto card3; break; case 4: goto card4; break; default: for( .@i = 1; .@i <= getarraysize(#selectedcard); .@i++ ){ getitem #selectedcard[.@i],1; } delitem theitemid,1 #end = 0; break; } end; } I think this is what you mentioned. Just call this function when you use the guild package item and change the delitem theitemid,1 to guild package box id.
-
//===== rAthena Script ======================================= //= Disguise Event //===== By: ================================================== //= GmOcean //===== Current Version: ===================================== //= 5.1 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= Guess a monster name correctly for prizes. //= //= NOTE: Requires PCRE library installed. //===== Additional Comments: ================================= //= 5.0 Last update by GmOcean. //= 5.1 Cleaned and standardized, mostly. [Euphy] //============================================================ prontera,160,155,4 script Disguise Event 795,{ // Currently set to run every two hours. // To change times, edit the OnClock labels below. set .@GMLevel,60; // GM level required to access NPC. set .@n$,"[^0000FFDisguise NPC^000000]"; if (getgmlevel()>=.@GMLevel) { mes .@n$; mes "Select an option."; next; switch(select("Turn ON/OFF Event:Event Settings")) { case 1: mes .@n$; if (.EventON) { mes "The Event is currently: [^0000FFON^000000]"; mes "Would you like to turn it OFF?"; } else { mes "The Event is currently: [^FF0000OFF^000000]"; mes "Would you like to turn it ON?"; } if(select("Yes:No")==2) close; if (.EventON) { set .EventON,0; set .Timer,0; setnpctimer 0; stopnpctimer; announce "A GM has decided to turn the Disguise Event off. As a result no further prizes will be given.",bc_map | bc_blue; deletepset 1; setnpcdisplay "Disguise Event",795; close; } set .EventON,1; set .Timer,1; setnpctimer 0; initnpctimer; set .ResetCounter,.ResetCounter+1; announce "The Disguise Event will begin in 3 minutes.",bc_all | bc_blue; announce "The Event is being held in Prontera.",bc_all | bc_blue; close; case 2: mes .@n$; mes "Pick a setting to modify."; next; switch(select("Monster Display:Number of Rounds:Prize Settings")) { case 1: setarray .@r$[0],"Disguise as all monsters.","Disguise as MVPs only."; mes .@n$; mes "Choose a disguise rule."; next; set .Rule, select(implode(.@r$,":")); mes .@n$; mes "The Disguise Rule has been set:"; mes " > ^0055FF"+.@r$[.Rule-1]+"^000000"; close; case 2: mes .@n$; mes "Input the number of rounds you want the event to last."; mes "Current number: [^0000FF"+.Rounds+"^000000]"; next; input .@Rounds; set .Rounds,.@Rounds; mes .@n$; mes "The number of rounds has been changed to "+.Rounds+"."; close; case 3: mes .@n$; mes "Input the Item ID of the prize given each round."; mes "Current item: [^0000FF"+getitemname(.Prize)+"^000000] (ID #"+.Prize+")"; next; input .@Prize; mes .@n$; if (getitemname(.@Prize)=="" || getitemname(.@Prize)=="null") { mes "That item does not exist. Please try again."; close; } set .Prize,.@Prize; mes "Input the amount to be given."; next; input .@amount; mes .@n$; if (.@amount<=0 || .@amount>=10000) { mes "That amount is invalid. Using default amount of 1."; set .@amount,1; next; mes .@n$; } set .PrizeAmt,.@amount; mes "The Prize has been changed successfully."; mes "Prize: "+.PrizeAmt+"x [^0000FF"+getitemname(.Prize)+"^000000]"; close; } } } if (.EventON) end; mes .@n$; mes "Welcome."; mes "How may I be of assistance?"; if(select("Information:Nothing, just passing through.")==2) close; next; mes .@n$; mes "This event is quite simple."; mes "At the start of the event, I will"; mes "disguise myself as a random"; mes "monster. You have to shout"; mes "that monster's name out loud."; next; mes "If you are correct, you will receive"; mes "a prize. If not, keep trying!"; mes "That's all that there is to this event."; close; OnInit: set .EventON,0; set .Wait,0; set .Winner,0; set .ResetCounter,0; set .Rounds,10; set .Prize,512; set .PrizeAmt,1; set .Rule,1; setarray .MVP[0],1038,1039,1046,1059,1086,1087,1112,1115,1147,1150,1157,1159,1190,1251,1252,1272,1312,1373, 1389,1399,1418,1492,1502,1511,1583,1623,1630,1646,1647,1648,1649,1650,1651,1658,1685,1688, 1708,1719,1734,1751,1768,1779,1785,1802,1832,1871,1874,1885,1917,1980,2022,2068,2087,2131, 2156,2165; set .BlackList$, "1003,1006,1017,1021,1022,1027,1043,1075,1136,1137,1168," + "1171,1172,1173,1181,1187,1210,1217,1218,1222,1223,1224,1225,1226,1227,1228," + "1233,1284,1407,1411,1414,1495,1501,1900,1996,2000,2001,2002,2003,2004," + "2005,2006,2007,2011,2012,2025,2028,2029,2030,2031,2032,2033,2034,2035," + "2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049," + "2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063," + "2064,2065,2066,2067,2075,2076,2077,2078,2079,2080,2081,2083,2084,2085," + "2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099," + "2100,2101,2012,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113," + "2114,2115,2116,2117,2118,2119,2120,2121,2123,2124,2125,1496,"; end; OnClock0000: OnClock0200: OnClock0400: OnClock0600: OnClock0800: OnClock1000: OnClock1200: OnClock1400: OnClock1600: OnClock1800: OnClock2000: OnClock2200: set .ResetCounter,.ResetCounter+1; set .EventON,1; set .Timer,1; set .Wait,1; announce "The Disguise Event will begin in 3 minutes.",bc_all | bc_blue; announce "The Event is being held in Prontera.",bc_all | bc_blue; setnpctimer 0; initnpctimer; end; OnTimer10000: if (.Timer || .Change) end; set .Wait,0; goto iDisguise; end; OnTimer30000: if (.Timer) end; set .Change,0; setnpcdisplay "Disguise Event",795; npctalk "Disguise Event : You took too long to guess what I was. Please wait 10 seconds while I disguise again."; npctalk "Disguise Event : The correct answer is "+$MonsterName$; specialeffect EF_DETECT2; set $MonsterName$,""; deletepset 1; stopnpctimer; setnpctimer 0; initnpctimer; end; OnTimer60000: if (.Timer!=1) end; announce "The Disguise Event will begin in 2 minutes.",bc_all | bc_blue; announce "The Event is being held in Prontera.",bc_all | bc_blue; end; OnTimer120000: if (.Timer!=1) end; announce "The Disguise Event will begin 1 minute.",bc_all | bc_blue; announce "The Event is being held in Prontera.",bc_all | bc_blue; end; OnTimer180000: if (.Timer!=1) end; announce "The Disguise Event has begun!",bc_all | bc_blue; announce "The Event is being held in Prontera.",bc_all | bc_blue; set .Timer,0; stopnpctimer; setnpctimer 0; initnpctimer; iDisguise: if (.Rule==1) { set .Winner,0; set .Monster,1000+rand(1,995); if (compare(","+.BlackList$+"," , ","+.Monster+",")) goto iDisguise; if (.Monster==.LastMonster) goto iDisguise; set .LastMonster,.Monster; set $MonsterName$,getmonsterinfo(.Monster,0); } if (.Rule==2) { set .Winner,0; set .Monster,rand(49); set $MonsterName$,getmonsterinfo(.MVP[.Monster],0); } deletepset 1; defpattern 1,"([^:]+):.\\s*"+$MonsterName$+".*", "iCorrect"; activatepset 1; if (.Rule==1) setnpcdisplay "Disguise Event",.Monster; if (.Rule==2) setnpcdisplay "Disguise Event",.MVP[.Monster]; set .Change,1; setnpctimer 0; end; iCorrect: if (.Winner) { dispbottom "Someone has already won this round."; end; } set .Winner,1; set .RoundCount,.RoundCount+1; deletepset 1; activatepset 1; getitem .Prize,.PrizeAmt; announce strcharinfo(0)+" is correct! I was disguised as: "+$MonsterName$+"",bc_map | bc_blue; if (.RoundCount>=.Rounds) { setnpcdisplay "Disguise Event",795; set .RoundCount,0; set .Change,0; set .EventON,0; setnpctimer 0; stopnpctimer; npctalk "Disguise Event : Thank you all for playing. That was the last round of the Disguise Event. Come play again later."; end; } setnpcdisplay "Disguise Event",795; set .Change,0; setnpctimer 0; end; }
-
Actually what i mean is in source.Anyways thanks for your help. I had found the way to do in source.
-
Hi, In src, how to create a loop to get each party member id? Thanks
-
Hi, i try to change a bit for the random option group to this, shouldn't it give me 3% of attack rate? item_randomopt_group.txt RDMOPTG_Crimson_Weapon,100,RDMOPT_VAR_ATKPERCENT,3,0 mob_drop.txt 1584,21015,10000,RDMOPTG_Crimson_Weapon // TAMRUAN
-
Hi, Is there any way to fix destroy instances button for client 2018-06-21aRagexeRE ? Try to click on it but nothing happen. Thanks
-
Thanks so much!
-
Hi, I try to use grf encryption on 20180620d RagexeRE and any client above, it can be encrypted but it cant read the file encrypted file when i try to open the client. I can open it with no issue without the encryption, everything works fine. However i revert my client to 2018-04-18bRagexeRE then its working fine again with grf encryption Which working client should i use in order to have soul reaper and star emperor that works with grf encryption as well. Thanks
-
Default Job Master disable regular 3rd class
KidoSang replied to KidoSang's question in Scripting Support
Hi, Thanks for the reply but after i change to this,i cant change to soul reaper from soul linker -
Hi, How can i disable the selection of regular 3rd class and enable trans 3rd class? Player must rebirth in order to change into 3rd class
-
You can try this see if it works, i havent tested it yet the idea is put the array .itm_l with item,rate,item,rate, after that create a loop to see if the .chance is less than the rate, if yes set the item as reward and quit the loop. prontera,141,226,4 script Maquina de Promoções 2_DROP_MACHINE,{ mes .npc_n$; mes "Você precisa de apenas "+.itm_a+" "+.itm_n$+" para poder usar a maquina de promoção.!"; mes "Você gostaria de usar-la..?"; next; if(select("^0084ff[ • ]^000000 Sim:^CD3278[ • ]^000000 Não:^0084ff[ • ]^000000 O que posso ganhar?")&2) { if(@menu-2) { set .@mes$, "Você pode ganhar: "; for(set(.@a,0);.@a<.len_i;set(.@a,.@a+2)) { set .@itm$, getitemname(.itm_l[(.@a)]); mes .@itm$; } close; } else close; } if (countitem(.itm_p) < .itm_a) { mes .npc_n$; mes "Você não tem "+.itm_a+" "+.itm_n$; close; } mes .npc_n$; mes "Aqui está!"; delitem .itm_p,.itm_a; set .chance, rand(1000); for(set .@i,1; .@i<=.len_i; set .@i,.@i+2) { if(.chance < .itm_l[.@i]){ set .@get, .itm_l[.@i-1]; break; } } if(compare(.itm_a$,""+.@get)) announce strnpcinfo(0)+": "+strcharinfo(0)+" Obteve ["+getitemname(.@get)+"] da Máquina de Promoções!",bc_all|bc_yellow; getitem .@get,1; close; OnInit: set .npc_n$, "[^4B0082Maquina de Promoções^000000]"; //Nome NPC. setarray .itm_l , 502,200,678,300,607,400,608,500,508,600,509,700,510,800,2132,900,555,1000;// Lista de Itens <ItemID>,<Rate>,<ItemID>,<Rate>..... set .itm_a$, "555";//IDs de item nesta cadeia são anunciados. set .len_i , getarraysize(.itm_l); //Comprimento da matriz. set .itm_a , 1; //Custo do NPC. set .itm_p , 7608; //Item usado como moeda. set .itm_n$, getitemname(.itm_p); //Nome do item. } NOTE: This will not work if there is multiple items with same rate. It will always take the first one with the same rate.
-
Fresh script that i just coded, you may try it. //===== rAthena Script ======================================= //= Exchange Shop //===== By: ================================================== //= KidoSang //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= Simple Exchange Shop. //===== Additional Comments: ================================= //= 1.0 Initial script. //============================================================ prontera,156,182,4 script Exchange Shop 826,{ set .RefineItem,1201; //Refine item id set .RefineLevel,7; //Refine value setarray .OtherItem[0],909,20,969,10; //Adding other items for exchange set .Reward,512; //Reward mes "You need to give me"; .@checking = 0; if (!countitem2(.RefineItem,1,7,0,0,0,0,0)) { .@checking = 1; } mes "+"+.RefineLevel+" "+getitemname(.RefineItem)+" "+countitem2(.RefineItem,1,7,0,0,0,0,0)+"/1"; for(.@i=0; .@i < getarraysize(.OtherItem); set .@i,.@i+2){ if(countitem(.OtherItem[.@i]) < .OtherItem[.@i+1]){ .@checking = 1; } mes "~ "+.OtherItem[.@i+1]+" "+getitemname(.OtherItem[.@i])+" "+countitem(.OtherItem[.@i])+"/"+.OtherItem[.@i+1]; } mes "to exchange "+getitemname(.Reward); .@sel = select("Exchange Please!","No"); if(.@sel){ if(.@checking){ next; mes "Sorry you are missing some items"; }else{ next; mes "Done!"; delitem2(.RefineItem,1,1,7,0,0,0,0,0); for(.@i=0; .@i < getarraysize(.OtherItem); set .@i,.@i+2) delitem .OtherItem[.@i],.OtherItem[.@i+1]; getitem .Reward,1; } } end; }
-
Hi, I wish to know that issit possible to have this scenario implemented in source mods. A party kill a poring, a poring drop jellopy and apple and the drop rate of jellopy and apple is 100% Everyone in the party will get the jellopy and apple which is for those who on their autoloot. Thanks
-
I had make a purchase of storm breaker yesterday and make payment of $30. I cant download yet atm, the order i still under pending. How long will it take to be able to complete my order
-
Hi, I try to use soul reaper at my server, however i found that the 3rd tab is missing. I had patch my server from this pull and recompile the server, and everything load fine https://github.com/rathena/rathena/pull/3994 The only problem is the 3rd tab is not appearing, is there anything i need to do on client side in order for it to appear? Thanks in advance Recentl
-
try again on this, i forget i remove the for loop thus the continue should be remove as well. //===== EinherjarRO Scripts ================================== //= Requested //===== By: ================================================== //= Stolao //===== Current Version: ===================================== //= 2.1C //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= //= A reward system for players who play more frequently //===== Todo ================================================= //= Make Logging out then it continue count //===== Additional Comments: ================================= //= 2.00 Origional Make //= 2.01 Fixed Logic Bug //= 2.02 Fixed Year Multiplier //= 2.03 Added an IP check //= 2.04 Split Rewards up //= 2.05 Move ip check to Daily reward collection //= 2.06 Added ability to see next day via commands/relogging //= 2.07 Added Delay //= 2.08 Moved Delay to none VIP only //= 2.09 Removed some useless lines //= 2.0A Removed Menus due to bugs //= 2.0B Fixed VIP Cutin //= 2.0C Added it showing previos day cutin //= 2.0D Added a for loop //= 2.0E Fixed Ramined logged in time calculation (visual bug) //= 2.0F Added a F_InsertPlural to "more minute" //= 2.10 Added a Mac Check //= 2.11 Changed the IP check to [Sader1992] version //= 2.12 Enable Bound Type //= 2.13 Added 'collectreward', 'dailyreward', 'collectdaily' Commands //= 2.14 Added 'nextreward' Command //= 2.15 Added Daily Buffs //= 2.16 Added Exp Rewards //= 2.17 Removed Reards for Autotraders //= 2.18 Move Buffs to Daily so VIP wont trigger twice //= 2.19 Optimized Slightly //= 2.1A Fixed a bug with VIP getting bonus rewards in normal rewards //= 2.1B Fixed some documentaion //= 2.1C Fixed extra '[' //===== Contact Info: ======================================== //= [Stolao] //= Email: [email protected] //============================================================ prontera,5,5,5 script LOGIN 111,{ OnPCLoginEvent: if(!@logintime) @logintime = gettime(DT_YEAR) * 60 * 24 * 365 + gettime(DT_DAYOFYEAR) * 60 * 24 + gettime(DT_HOUR) * 60 + gettime(DT_MINUTE); OnLoginCmnd: .@i = gettime(DT_YEAR) * 12 * 31 + gettime(DT_MONTH) * 31 + gettime(DT_DAYOFMONTH); if(.Reset && .@i > #LastDailyReward + 1) #DRewardCon = 0; .@Size = getarraysize(.Rewards$); if(#DRewardCon >= .@Size){ #LastDailyReward = .@i; end; } sleep2 1000; if(#DRewardCon >= .@Size){ message strcharinfo(0),"[Login especial]: Não há mais recompensas restantes este mês."; } else if(.@i <= #LastDailyReward){ message strcharinfo(0),"[Login especial]: Recompensas já coletadas hoje."; } if(.IPCheck){ query_sql("SELECT account_id FROM `login` WHERE last_ip = '"+getcharip()+"'", .@AccountId); .@Size = getarraysize(.@AccountId); for(.@i=0; .@i < .@Size; .@i++){ query_sql("SELECT `value` FROM `acc_reg_num` WHERE `account_id` = '"+.@AccountId[.@i]+"' AND `key` = '#LastDailyReward'",.@LastIp2); if(.@i <= .@LastIp2){ message strcharinfo(0),"[Login especial]: Recompensas são limitadas a 1 por IP."; } } } if(.MacCheck){ query_sql("SELECT last_unique_id FROM `login` WHERE account_id = "+getcharid(3)+"", .@last_unique_id$); query_sql("SELECT account_id FROM `login` WHERE last_unique_id = '"+.@last_unique_id$+"'", .@AccountId2); .@Size = getarraysize(.@AccountId2); for(.@i=0; .@i < .@Size; .@i++){ query_sql("SELECT `value` FROM `acc_reg_num` WHERE `account_id` = '"+.@AccountId2[.@i]+"' AND `key` = '#LastDailyReward'",.@MacCheck2); if(.@i <= .@MacCheck2){ message strcharinfo(0),"[Login especial]: Recompensas são limitadas a 1 por computador."; } } } if(.Rest){ .@time = gettime(DT_YEAR) * 60 * 24 * 365 + gettime(DT_DAYOFYEAR) * 60 * 24 + gettime(DT_HOUR) * 60 + gettime(DT_MINUTE); if(.@time < @logintime + .Rest){ .@delay = @logintime + .Rest - .@time; message strcharinfo(0),"[Login especial]: para coletar recompensas, você deve permanecer logado por "+callfunc("F_InsertPlural",.@delay,"more minute")+"."; } } deletearray .@XT$[0],getarraysize(.@XT$); .@NextDay = #DRewardCon + 1; explode(.@XT$,.Rewards$[.@NextDay],","); if(checkvending() & 2 && .Mode & 256){ message strcharinfo(0),"[Login especial]: Vendedores não podem receber recompensas."; end; } .@Size = getarraysize(.@XT$); deletearray .@TT[0],getarraysize(.@TT); deletearray .@itms[0],getarraysize(.@itms); deletearray .@qnts[0],getarraysize(.@qnts); for(.@x = y = 0; .@x < .@Size; .@x++) .@TT[.@x] = atoi(.@XT$[.@x]); if(.Mode & 1 && (.@TT[4] > 0 || .@vip[4] > 0)){ .@Size = getarraysize(.@TT); for(.@x = 4; .@x <= .@Size - 1 ; .@x += 2){ .@itms[.@y] = .@TT[.@x]; .@qnts[.@y] = .@TT[.@x + 1]; .@y++; } if(checkweight2(.@itms,.@qnts)){ for(.@x = 0; .@x < .@y; .@x++){ if(.Mode & 128) getitembound .@itms[.@x], .@qnts[.@x], .Bound_Mode; else getitem .@itms[.@x], .@qnts[.@x]; } } else { message strcharinfo(0),"[Login especial]: Você não pode carregar os prêmios, use o storage e relogue."; } } if(.Mode & 2 && (.@TT[1])){ #Loyalty += .@TT[1]; message strcharinfo(0),"[Login especial]: Recebido "+ .@TT[1] +" "+.Points$; } if(.Mode & 4 && (.@TT[0])){ zeny += .@TT[0]; message strcharinfo(0),"[Login especial]: Recebido "+ .@TT[0] +"z"; } if(.Mode & 8 && (.@TT[3] || .@TT[4])) getexp .@TT[3], .@TT[4]; if(.Mode & 16){ .@Size = getarraysize(.BuffInfo); for(.@x = 0; .@x < .@Size; .@x += 4){ if(.@NextDay == .BuffInfo[.@x + 1]) sc_start .BuffInfo[.@x], .BuffInfo[.@x + 2] * 60000, .BuffInfo[.@x + 3]; } } if(.Mode & 32){ cutin .Cutins$[#DRewardCon],4; soundeffect "complete.wav", 0; } #DRewardCon++; #LastDailyReward = .@i; sleep2 1000; if(.Mode & 64) { cutin .Cutins$[#DRewardCon],4; } message strcharinfo(0),"[Login especial]: Você coletou sua recompensa diária, por "+callfunc("F_InsertPlural",#DRewardCon,"dia")+" este mês."; if(.Mode & 32 || .Mode & 64){ sleep2 15000; cutin "",255; } end; OnNextCmnd: .@time = gettime(DT_YEAR) * 60 * 24 * 365 + gettime(DT_DAYOFYEAR) * 60 * 24 + gettime(DT_HOUR) * 60 + gettime(DT_MINUTE); if(.@time >= @logintime + .Rest){ message strcharinfo(0),"[Login especial]: sua próxima recompensa está disponível."; } else { .@i = gettime(DT_YEAR) * 12 * 31 + gettime(DT_MONTH) * 31 + gettime(DT_DAYOFMONTH); if(.@i <= #LastDailyReward) message strcharinfo(0),"[Login especial]: Sua próxima recompensa estará disponível amanhã."; else { .@days = (.@time >= @logintime + .Rest) / 60 / 24; .@hours = ((.@time >= @logintime + .Rest) / 60) % 24; .@mins = (.@time >= @logintime + .Rest) % 60; message strcharinfo(0),"[Login especial]: Você tem "+ ((.@days) ? .@days +" Dias " : "") + ((.@hours) ? .@hours +" Horas " : "") + ((.@mins) ? .@mins +" Minutos " : "") +" até sua próxima recompensa."; } if(.Mode & 32 || .Mode & 64){ if(.@NextDay >= getarraysize(.Rewards$)) .@g = 0; else .@g = #DRewardCon + 1; cutin .Cutins$[.@g],4; soundeffect "complete.wav", 0; } } end; OnHour00: if(gettime(DT_DAYOFMONTH) == 1){ query_sql("DELETE FROM `acc_reg_num` WHERE `key` = '#DRewardCon' OR `key` = '#LastDailyReward'"); addrid(0); #DRewardCon = #LastDailyReward = 0; } end; OnInit: // Basic Settings // 1: Item | 2: Points | 4: Zeny | 8: Exp // 16: Gain Buffs // 32: Show Cutins | 64: Show Next Day Cutin // 128: Item Rewards Bound // 256: No Rewards for Autotraders // (a bit value, e.g. 3 = Items & Points from Multi) .Mode = 1|2|4|16|32|64|128|256; // Item Binding Mode // Bound_Account : Account Bound item // Bound_Guild : Guild Bound item // Bound_Party : Party Bound item // Bound_Char : Character Bound item .Bound_Mode = Bound_Account; // To disable the command '@loginreward' comment the next lines // * Needs extra commands for typos bindatcmd("relog","LOGIN::OnLoginCmnd",0,99); bindatcmd("collectreward",strnpcinfo(3)+"::OnLoginCmnd",0,99); bindatcmd("dailyreward",strnpcinfo(3)+"::OnLoginCmnd",0,99); bindatcmd("collectdaily",strnpcinfo(3)+"::OnLoginCmnd",0,99); bindatcmd("nextreward",strnpcinfo(3)+"::OnNextCmnd",0,99); // Reset days back to 0 on a skipped day. // Toggle // [0] = Off // [1] = On .Reset = 0; // .Rest // Delay after login to collect rewards // In Minutes .Rest = 0; // Point Name .Points$ = "Loyalty Points"; // Ip check to prevent multi accounts // Toggle // [0] = Off // [1] = On .IPCheck = 0; // Consecutive Days Buff // Each buff contains 4 variables // <Type>,<Days>,<Duration>,<Rate>, // Buff 1 // <Type>,<Days>,<Duration>,<Rate>, // Buff 2 // ...; // // Example: 188,7,45,3 // -On the 7th day logged in Player gains +3 Str for 45 mins // // Type is 188, which references which SC_ to use, SC_INCSTR in this example // -For a full list of SC_ visit the db/const.txt // Days is days buff is applied, in this example 7, so every 7th day, 14,21,28.... // Duration is buff duration is Minuits, in this example 45 mins // Rate is buff val1, in this example player gains 3 Str setarray .BuffInfo ,260,2,360,1 // Life Insurance for 360 on 2nd Day ,198,3,120,10 // +10% Hp for 120 Mins on 3rd Day ,260,4,360,1 // Life Insurance for 360 on 4th Day ,196,5,120,25 // +25 Flee for 120 Mins on 5th Day ,198,6,120,10 // +10% Hp for 120 Mins on 6th Day ,257,7,240,50 // +50% Exp for 240 Mins on 7th Day ,260,8,360,1 // Life Insurance for 360 on 8th Day ,198,9,120,10 // +10% Hp for 120 Mins on 9th Day ,196,10,120,25 // +25 Flee for 120 Mins on 10th Day ,9,12,120,10 // +10% Hp for 120 Mins on 12th Day ,9,14,240,50 // +50% Exp for 240 Mins on 14th Day ,9,15,120,50 // +25 Flee for 120 Mins on 15th Day ,198,16,360,10 // Life Insurance for 360 on 16th Day ,9,18,120,10 // +10% Hp for 120 Mins on 18th Day ,9,20,120,25 // +25 Flee for 120 Mins on 20th Day ,9,21,240,50 // +50% Exp for 240 Mins on 21st Day ,9,22,360,1 // Life Insurance for 360 on 22nd Day ,9,24,120,10 // +10% Hp for 120 Mins on 24th Day ,9,25,120,25 // +25 Flee for 120 Mins on 25th Day ,9,26,360,1 // Life Insurance for 360 on 26th Day ,9,27,120,10 // +10% Hp for 120 Mins on 27th Day ,9,28,240,50 // +50% Exp for 240 Mins on 28th Day ,9,30,120,25; // +25 Flee for 120 Mins on 30th Day // Daily Prize items: // "<Zeny>,<Points>,<BaseExp>,<JobExp>,<itemID-1>,<amount-1>,<itemID-2>,<amount-2>...etc", // Day 1 // "<Zeny>,<Points>,<BaseExp>,<JobExp>,<itemID-1>,<amount-1>,<itemID-2>,<amount-2>...etc" // Day 2 // ...; // Total length of any days string must be 255 or shorter setarray .Rewards$[1], "0,0,0,0,12016,100", // Day 1 "0,0,0,0,28995,1", // Day 2 "0,0,0,0,7539,2", // Day 3 "0,0,0,0,14601,200", // Day 4 "0,0,0,0,12299,100", // Day 5 "0,0,0,0,12684,200", // Day 6 "0,0,0,0,28996,1", // Day 7 "0,0,0,0,14614,300", // Day 8 "0,0,0,0,28995,1", // Day 9 "0,0,0,0,12786,10", // Day 10 "0,0,0,0,12424,150", // Day 11 "0,0,0,0,12427,200", // Day 12 "0,0,0,0,7539,2", // Day 13 "0,0,0,0,28997,1", // Day 14 "0,0,0,0,28995,1", // Day 15 "0,0,0,0,12418,300", // Day 16 "0,0,0,0,12419,300", // Day 17 "0,0,0,0,12404,150", // Day 18 "0,0,0,0,7539,2", // Day 19 "0,0,0,0,12786,10", // Day 20 "0,0,0,0,28998,1", // Day 21 "0,0,0,0,14591,3", // Day 22 "0,0,0,0,12221,50", // Day 23 "0,0,0,0,7539,2", // Day 24 "0,0,0,0,28995,1", // Day 25 "0,0,0,0,14614,300", // Day 26 "0,0,0,0,12786,15", // Day 27 "0,0,0,0,28999,1"; // Day 28 // Cutin Array // Shows a cutin before collecting for each date // Start at 0 if showing next day setarray .Cutins$, "Daily_00", "Daily_01", "Daily_02", "Daily_03", "Daily_04", "Daily_05", "Daily_06", "Daily_07", "Daily_08", "Daily_09", "Daily_10", "Daily_11", "Daily_12", "Daily_13", "Daily_14", "Daily_15", "Daily_16", "Daily_17", "Daily_18", "Daily_19", "Daily_20", "Daily_21", "Daily_22", "Daily_23", "Daily_24", "Daily_25", "Daily_26", "Daily_27", "Daily_28", "kafra_08", "kafra_09", "kafra_01", "kafra_02", "kafra_03"; end; }
-
Hi, I encounter a problem where aura doesn't appear after 175 but it appear exactly at level 175. My server max level is 255, i had change all the necessary files. There is no problem in leveling up to 255 but just the aura issue. So far i had try to use nemo and apply use custom aura limits and the auraSpec.txt looks like this ############################################################################## # # Format # --------- # <jobid ranges>: # <level_l>-<level_h> => index, # # jobid ranges is a comma seperated list of id ranges and/or single ids. # ############################################################################# 0-30,4001-4052,4114-4119,4121-4126,4128,4130,4131,4133-4139,4141,4142,4144-4147,4149,4150,4152-4172,4181,4183-4196,4199,4200,4203,4204,4207,4210-4217: 99-255 => 1, 4053-4113,4120,4127,4129,4132,4133,4140,4143,4148,4151,4173-4180,4182,4197,4198,4201,4202,4205,4206,4208,4209: 99-149 => 1, 150-159 => 2, 160-255 => 3, It immediately crashed once i enter game from character selection. Below is all my file editing for max level 255 conf/battle/client.conf // Maximum allowed 'level' value that can be sent in unit packets. // Use together with the aura_lv setting to tell when exactly to show the aura. // NOTE: You also need to adjust the client if you want this to work. // NOTE: Default is 99. Values above 127 will probably behave incorrectly. // NOTE: If you don't know what this does, don't change it!!! max_lv: 255 // Level required to display an aura. // NOTE: This assumes that sending max_lv to the client will display the aura. // NOTE: aura_lv must not be less than max_lv. // Example: If max_lv is 99 and aura_lv is 150, characters with level 99~149 // will be sent as being all level 98, and only characters with level // 150 or more will be reported as having level 99 and show an aura. aura_lv: 255 src/map/map.h #define MAX_LEVEL 255 db/import/job_exp.txt //Base - Renewal 1000 Levels 255,4047:4048:4226:4238:24:25:4222:4228:4054:4055:4056:4057:4058:4059:4060:4061:4062:4063:4064:4065:4066:4067:4068:4069:4070:4071:4072:4073:4074:4075:4076:4077:4078:4079:4080:4081:4082:4083:4084:4085:4086:4087:4096:4097:4098:4099:4100:4101:4102:4103:4104:4105:4106:4107:4108:4109:4110:4111:4112:4211:4212:4215:4218:4220:4223:4224:4229:4239:4240:4241:4242:4243:4244,0,660,1080,1800,2640,3840,4560,5040,5460,6000,6600,7200,7320,7620,8040,8820,9600,10080,10560,11040,12610,13390,14300,15340,16900,18460,19500,20800,22100,23400,24700,26000,27300,28600,30160,31200,33800,35750,37700,39000,44100,46200,47600,50400,52500,53200,56000,58800,62300,65800,68600,71400,74200,77000,79800,82600,86100,88200,91000,93800,103500,105000,109500,115500,120000,126000,132000,136500,142500,165000,192000,210000,232500,244500,255000,270000,282000,292500,300000,345000,416000,480000,560000,640000,768000,880000,960000,1088000,1200000,1440000,1700000,2040000,2550000,3060000,3570000,4080000,4760000,5610000,6800000,7070000,7400000,7770000,8150000,8550000,9100000,9610000,10150000,10570000,11180000,12000000,12200000,12930000,13150000,14030000,14420000,15420000,15670000,16870000,17140000,18720000,19020000,20590000,20930000,22690000,23310000,25290000,26020000,27860000,28535000,30990000,31680000,33560000,34942000,36372000,38350000,39890000,41545000,43330000,45400000,48100000,50410000,53370000,56250000,59230000,62590000,66120000,70200000,75330000,81100000,95000000,98000000,103000000,107000000,112000000,116000000,121000000,125000000,130000000,134000000,139000000,145000000,152200000,160840000,171200000,191930000,202290000,214720000,229640000,247550000,283370000,301280000,322770000,348560000,379500000,441390000,443390000,445390000,447390000,449390000,451390000,453390000,455390000,457390000,459390000,461390000,463390000,465390000,467390000,469390000,471390000,473390000,475390000,477390000,479390000,481390000,483390000,485390000,487390000,489390000,491390000,493390000,495390000,497390000,499390000,501390000,503390000,505390000,507390000,509390000,511390000,513390000,515390000,517390000,519390000,521390000,523390000,525390000,527390000,529390000,531390000,533390000,535390000,537390000,539390000,541390000,543390000,545390000,547390000,549390000,551390000,553390000,555390000,557390000,559390000,561390000,563390000,565390000,567390000,569390000,571390000,573390000,575390000,577390000,579390000,581390000,583390000,585390000,587390000,589390000,591390000,593390000,595390000,597390000,599390000,601390000,603390000,605390000,607390000,609390000,611390000,613390000,615390000,617390000,619390000,621390000,623390000,625390000,627390000,629390000,631390000,633390000,635390000,637390000,639390000,641390000,643390000,645390000,647390000,649390000,651390000,653390000,655390000,657390000,659390000,661390000,663390000,665390000,667390000,669390000,671390000,673390000,675390000,677390000,679390000,681390000,683390000,685390000,687390000,689390000,691390000,693390000,695390000,697390000,699390000,701390000,703390000,705390000,707390000,709390000,711390000,713390000,715390000,717390000,719390000,721390000,723390000,725390000,727390000,729390000,731390000,733390000,735390000,737390000,739390000,741390000,743390000,745390000,747390000,749390000,751390000,753390000,755390000,757390000,759390000,761390000,763390000,765390000,767390000,769390000,771390000,773390000,775390000,777390000,779390000,781390000,783390000,785390000,787390000,789390000,791390000,793390000,795390000,797390000,799390000,801390000,803390000,805390000,807390000,809390000,811390000,813390000,815390000,817390000,819390000,821390000,823390000,825390000,827390000,829390000,831390000,833390000,835390000,837390000,839390000,841390000,843390000,845390000,847390000,849390000,851390000,853390000,855390000,857390000,859390000,861390000,863390000,865390000,867390000,869390000,871390000,873390000,875390000,877390000,879390000,881390000,883390000,885390000,887390000,889390000,891390000,893390000,895390000,897390000,899390000,901390000,903390000,905390000,907390000,909390000,911390000,913390000,915390000,917390000,919390000,921390000,923390000,925390000,927390000,929390000,931390000,933390000,935390000,937390000,939390000,941390000,943390000,945390000,947390000,949390000,951390000,953390000,955390000,957390000,959390000,961390000,963390000,965390000,967390000,969390000,971390000,973390000,975390000,977390000,979390000,981390000,983390000,985390000,987390000,989390000,991390000,993390000,995390000,997390000,999390000,1001390000,1003390000,1005390000,1007390000,1009390000,1011390000,1013390000,1015390000,1017390000,1019390000,1021390000,1023390000,1025390000,1027390000,1029390000,1031390000,1033390000,1035390000,1037390000,1039390000,1041390000,1043390000,1045390000,1047390000,1049390000,1051390000,1053390000,1055390000,1057390000,1059390000,1061390000,1063390000,1065390000,1067390000,1069390000,1071390000,1073390000,1075390000,1077390000,1079390000,1081390000,1083390000,1085390000,1087390000,1089390000,1091390000,1093390000,1095390000,1097390000,1099390000,1101390000,1103390000,1105390000,1107390000,1109390000,1111390000,1113390000,1115390000,1117390000,1119390000,1121390000,1123390000,1125390000,1127390000,1129390000,1131390000,1133390000,1135390000,1137390000,1139390000,1141390000,1143390000,1145390000,1147390000,1149390000,1151390000,1153390000,1155390000,1157390000,1159390000,1161390000,1163390000,1165390000,1167390000,1169390000,1171390000,1173390000,1175390000,1177390000,1179390000,1181390000,1183390000,1185390000,1187390000,1189390000,1191390000,1193390000,1195390000,1197390000,1199390000,1201390000,1203390000,1205390000,1207390000,1209390000,1211390000,1213390000,1215390000,1217390000,1219390000,1221390000,1223390000,1225390000,1227390000,1229390000,1231390000,1233390000,1235390000,1237390000,1239390000,1241390000,1243390000,1245390000,1247390000,1249390000,1251390000,1253390000,1255390000,1257390000,1259390000,1261390000,1263390000,1265390000,1267390000,1269390000,1271390000,1273390000,1275390000,1277390000,1279390000,1281390000,1283390000,1285390000,1287390000,1289390000,1291390000,1293390000,1295390000,1297390000,1299390000,1301390000,1303390000,1305390000,1307390000,1309390000,1311390000,1313390000,1315390000,1317390000,1319390000,1321390000,1323390000,1325390000,1327390000,1329390000,1331390000,1333390000,1335390000,1337390000,1339390000,1341390000,1343390000,1345390000,1347390000,1349390000,1351390000,1353390000,1355390000,1357390000,1359390000,1361390000,1363390000,1365390000,1367390000,1369390000,1371390000,1373390000,1375390000,1377390000,1379390000,1381390000,1383390000,1385390000,1387390000,1389390000,1391390000,1393390000,1395390000,1397390000,1399390000,1401390000,1403390000,1405390000,1407390000,1409390000,1411390000,1413390000,1415390000,1417390000,1419390000,1421390000,1423390000,1425390000,1427390000,1429390000,1431390000,1433390000,1435390000,1437390000,1439390000,1441390000,1443390000,1445390000,1447390000,1449390000,1451390000,1453390000,1455390000,1457390000,1459390000,1461390000,1463390000,1465390000,1467390000,1469390000,1471390000,1473390000,1475390000,1477390000,1479390000,1481390000,1483390000,1485390000,1487390000,1489390000,1491390000,1493390000,1495390000,1497390000,1499390000,1501390000,1503390000,1505390000,1507390000,1509390000,1511390000,1513390000,1515390000,1517390000,1519390000,1521390000,1523390000,1525390000,1527390000,1529390000,1531390000,1533390000,1535390000,1537390000,1539390000,1541390000,1543390000,1545390000,1547390000,1549390000,1551390000,1553390000,1555390000,1557390000,1559390000,1561390000,1563390000,1565390000,1567390000,1569390000,1571390000,1573390000,1575390000,1577390000,1579390000,1581390000,1583390000,1585390000,1587390000,1589390000,1591390000,1593390000,1595390000,1597390000,1599390000,1601390000,1603390000,1605390000,1607390000,1609390000,1611390000,1613390000,1615390000,1617390000,1619390000,1621390000,1623390000,1625390000,1627390000,1629390000,1631390000,1633390000,1635390000,1637390000,1639390000,1641390000,1643390000,1645390000,1647390000,1649390000,1651390000,1653390000,1655390000,1657390000,1659390000,1661390000,1663390000,1665390000,1667390000,1669390000,1671390000,1673390000,1675390000,1677390000,1679390000,1681390000,1683390000,1685390000,1687390000,1689390000,1691390000,1693390000,1695390000,1697390000,1699390000,1701390000,1703390000,1705390000,1707390000,1709390000,1711390000,1713390000,1715390000,1717390000,1719390000,1721390000,1723390000,1725390000,1727390000,1729390000,1731390000,1733390000,1735390000,1737390000,1739390000,1741390000,1743390000,1745390000,1747390000,1749390000,1751390000,1753390000,1755390000,1757390000,1759390000,1761390000,1763390000,1765390000,1767390000,1769390000,1771390000,1773390000,1775390000,1777390000,1779390000,1781390000,1783390000,1785390000,1787390000,1789390000,1791390000,1793390000,1795390000,1797390000,1799390000,1801390000,1803390000,1805390000,1807390000,1809390000,1811390000,1813390000,1815390000,1817390000,1819390000,1821390000,1823390000,1825390000,1827390000,1829390000,1831390000,1833390000,1835390000,1837390000,1839390000,1841390000,1843390000,1845390000,1847390000,1849390000,1851390000,1853390000,1855390000,1857390000,1859390000,1861390000,1863390000,1865390000,1867390000,1869390000,1871390000,1873390000,1875390000,1877390000,1879390000,1881390000,1883390000,1885390000,1887390000,1889390000,1891390000,1893390000,1895390000,1897390000,1899390000,1901390000,1903390000,1905390000,1907390000,1909390000,1911390000,1913390000,1915390000,1917390000,1919390000,1921390000,1923390000,1925390000,1927390000,1929390000,1931390000,1933390000,1935390000,1937390000,1939390000,1941390000,1943390000,1945390000,1947390000,1949390000,1951390000,1953390000,1955390000,1957390000,1959390000,1961390000,1963390000,1965390000,1967390000,1969390000,1971390000,1973390000,1975390000,1977390000,1979390000,1981390000,1983390000,1985390000,1987390000,1989390000,1991390000,1993390000,1995390000,1997390000,1999390000,2001390000,2003390000,2005390000,2007390000,2009390000,2011390000,2013390000,2015390000,2017390000,2019390000,2021390000,2023390000,2025390000,2027390000,2029390000,2031390000,2033390000,2035390000,2037390000,2039390000,2041390000,2043390000,2045390000,2047390000,2049390000,2051390000,2053390000,2055390000,2057390000,2059390000,2061390000,2063390000,2065390000,2067390000,2069390000,2071390000,2073390000,2075390000,2077390000,2079390000,2081390000,2083390000,2085390000,2087390000,2089390000,2091390000,2093390000 Im using client 2018-06-21aRagexeRE Just wondering that is it not possible to have 255 as max level with aura? Thanks in advance
-
Try This Mayb //===== EinherjarRO Scripts ================================== //= Requested //===== By: ================================================== //= Stolao //===== Current Version: ===================================== //= 2.1C //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= //= A reward system for players who play more frequently //===== Todo ================================================= //= Make Logging out then it continue count //===== Additional Comments: ================================= //= 2.00 Origional Make //= 2.01 Fixed Logic Bug //= 2.02 Fixed Year Multiplier //= 2.03 Added an IP check //= 2.04 Split Rewards up //= 2.05 Move ip check to Daily reward collection //= 2.06 Added ability to see next day via commands/relogging //= 2.07 Added Delay //= 2.08 Moved Delay to none VIP only //= 2.09 Removed some useless lines //= 2.0A Removed Menus due to bugs //= 2.0B Fixed VIP Cutin //= 2.0C Added it showing previos day cutin //= 2.0D Added a for loop //= 2.0E Fixed Ramined logged in time calculation (visual bug) //= 2.0F Added a F_InsertPlural to "more minute" //= 2.10 Added a Mac Check //= 2.11 Changed the IP check to [Sader1992] version //= 2.12 Enable Bound Type //= 2.13 Added 'collectreward', 'dailyreward', 'collectdaily' Commands //= 2.14 Added 'nextreward' Command //= 2.15 Added Daily Buffs //= 2.16 Added Exp Rewards //= 2.17 Removed Reards for Autotraders //= 2.18 Move Buffs to Daily so VIP wont trigger twice //= 2.19 Optimized Slightly //= 2.1A Fixed a bug with VIP getting bonus rewards in normal rewards //= 2.1B Fixed some documentaion //= 2.1C Fixed extra '[' //===== Contact Info: ======================================== //= [Stolao] //= Email: [email protected] //============================================================ prontera,5,5,5 script LOGIN 111,{ OnPCLoginEvent: if(!@logintime) @logintime = gettime(DT_YEAR) * 60 * 24 * 365 + gettime(DT_DAYOFYEAR) * 60 * 24 + gettime(DT_HOUR) * 60 + gettime(DT_MINUTE); OnLoginCmnd: .@i = gettime(DT_YEAR) * 12 * 31 + gettime(DT_MONTH) * 31 + gettime(DT_DAYOFMONTH); if(.Reset && .@i > #LastDailyReward + 1) #DRewardCon = 0; .@Size = getarraysize(.Rewards$); if(#DRewardCon >= .@Size){ #LastDailyReward = .@i; end; } sleep2 1000; if(#DRewardCon >= .@Size){ message strcharinfo(0),"[Login especial]: Não há mais recompensas restantes este mês."; continue; } else if(.@i <= #LastDailyReward){ message strcharinfo(0),"[Login especial]: Recompensas já coletadas hoje."; continue; } if(.IPCheck){ query_sql("SELECT account_id FROM `login` WHERE last_ip = '"+getcharip()+"'", .@AccountId); .@Size = getarraysize(.@AccountId); for(.@i=0; .@i < .@Size; .@i++){ query_sql("SELECT `value` FROM `acc_reg_num` WHERE `account_id` = '"+.@AccountId[.@i]+"' AND `key` = '#LastDailyReward'",.@LastIp2); if(.@i <= .@LastIp2){ message strcharinfo(0),"[Login especial]: Recompensas são limitadas a 1 por IP."; continue; } } } if(.MacCheck){ query_sql("SELECT last_unique_id FROM `login` WHERE account_id = "+getcharid(3)+"", .@last_unique_id$); query_sql("SELECT account_id FROM `login` WHERE last_unique_id = '"+.@last_unique_id$+"'", .@AccountId2); .@Size = getarraysize(.@AccountId2); for(.@i=0; .@i < .@Size; .@i++){ query_sql("SELECT `value` FROM `acc_reg_num` WHERE `account_id` = '"+.@AccountId2[.@i]+"' AND `key` = '#LastDailyReward'",.@MacCheck2); if(.@i <= .@MacCheck2){ message strcharinfo(0),"[Login especial]: Recompensas são limitadas a 1 por computador."; continue; } } } if(.Rest){ .@time = gettime(DT_YEAR) * 60 * 24 * 365 + gettime(DT_DAYOFYEAR) * 60 * 24 + gettime(DT_HOUR) * 60 + gettime(DT_MINUTE); if(.@time < @logintime + .Rest){ .@delay = @logintime + .Rest - .@time; message strcharinfo(0),"[Login especial]: para coletar recompensas, você deve permanecer logado por "+callfunc("F_InsertPlural",.@delay,"more minute")+"."; continue; } } deletearray .@XT$[0],getarraysize(.@XT$); .@NextDay = #DRewardCon + 1; explode(.@XT$,.Rewards$[.@NextDay],","); if(checkvending() & 2 && .Mode & 256){ message strcharinfo(0),"[Login especial]: Vendedores não podem receber recompensas."; end; } .@Size = getarraysize(.@XT$); deletearray .@TT[0],getarraysize(.@TT); deletearray .@itms[0],getarraysize(.@itms); deletearray .@qnts[0],getarraysize(.@qnts); for(.@x = y = 0; .@x < .@Size; .@x++) .@TT[.@x] = atoi(.@XT$[.@x]); if(.Mode & 1 && (.@TT[4] > 0 || .@vip[4] > 0)){ .@Size = getarraysize(.@TT); for(.@x = 4; .@x <= .@Size - 1 ; .@x += 2){ .@itms[.@y] = .@TT[.@x]; .@qnts[.@y] = .@TT[.@x + 1]; .@y++; } if(checkweight2(.@itms,.@qnts)){ for(.@x = 0; .@x < .@y; .@x++){ if(.Mode & 128) getitembound .@itms[.@x], .@qnts[.@x], .Bound_Mode; else getitem .@itms[.@x], .@qnts[.@x]; } } else { message strcharinfo(0),"[Login especial]: Você não pode carregar os prêmios, use o storage e relogue."; continue; } } if(.Mode & 2 && (.@TT[1])){ #Loyalty += .@TT[1]; message strcharinfo(0),"[Login especial]: Recebido "+ .@TT[1] +" "+.Points$; } if(.Mode & 4 && (.@TT[0])){ zeny += .@TT[0]; message strcharinfo(0),"[Login especial]: Recebido "+ .@TT[0] +"z"; } if(.Mode & 8 && (.@TT[3] || .@TT[4])) getexp .@TT[3], .@TT[4]; if(.Mode & 16){ .@Size = getarraysize(.BuffInfo); for(.@x = 0; .@x < .@Size; .@x += 4){ if(.@NextDay == .BuffInfo[.@x + 1]) sc_start .BuffInfo[.@x], .BuffInfo[.@x + 2] * 60000, .BuffInfo[.@x + 3]; } } if(.Mode & 32){ cutin .Cutins$[#DRewardCon],4; soundeffect "complete.wav", 0; } #DRewardCon++; #LastDailyReward = .@i; sleep2 1000; if(.Mode & 64) { cutin .Cutins$[#DRewardCon],4; } message strcharinfo(0),"[Login especial]: Você coletou sua recompensa diária, por "+callfunc("F_InsertPlural",#DRewardCon,"dia")+" este mês."; if(.Mode & 32 || .Mode & 64){ sleep2 15000; cutin "",255; } end; OnNextCmnd: .@time = gettime(DT_YEAR) * 60 * 24 * 365 + gettime(DT_DAYOFYEAR) * 60 * 24 + gettime(DT_HOUR) * 60 + gettime(DT_MINUTE); if(.@time >= @logintime + .Rest){ message strcharinfo(0),"[Login especial]: sua próxima recompensa está disponível."; } else { .@i = gettime(DT_YEAR) * 12 * 31 + gettime(DT_MONTH) * 31 + gettime(DT_DAYOFMONTH); if(.@i <= #LastDailyReward) message strcharinfo(0),"[Login especial]: Sua próxima recompensa estará disponível amanhã."; else { .@days = (.@time >= @logintime + .Rest) / 60 / 24; .@hours = ((.@time >= @logintime + .Rest) / 60) % 24; .@mins = (.@time >= @logintime + .Rest) % 60; message strcharinfo(0),"[Login especial]: Você tem "+ ((.@days) ? .@days +" Dias " : "") + ((.@hours) ? .@hours +" Horas " : "") + ((.@mins) ? .@mins +" Minutos " : "") +" até sua próxima recompensa."; } if(.Mode & 32 || .Mode & 64){ if(.@NextDay >= getarraysize(.Rewards$)) .@g = 0; else .@g = #DRewardCon + 1; cutin .Cutins$[.@g],4; soundeffect "complete.wav", 0; } } end; OnHour00: if(gettime(DT_DAYOFMONTH) == 1){ query_sql("DELETE FROM `acc_reg_num` WHERE `key` = '#DRewardCon' OR `key` = '#LastDailyReward'"); addrid(0); #DRewardCon = #LastDailyReward = 0; } end; OnInit: // Basic Settings // 1: Item | 2: Points | 4: Zeny | 8: Exp // 16: Gain Buffs // 32: Show Cutins | 64: Show Next Day Cutin // 128: Item Rewards Bound // 256: No Rewards for Autotraders // (a bit value, e.g. 3 = Items & Points from Multi) .Mode = 1|2|4|16|32|64|128|256; // Item Binding Mode // Bound_Account : Account Bound item // Bound_Guild : Guild Bound item // Bound_Party : Party Bound item // Bound_Char : Character Bound item .Bound_Mode = Bound_Account; // To disable the command '@loginreward' comment the next lines // * Needs extra commands for typos bindatcmd("relog","LOGIN::OnLoginCmnd",0,99); bindatcmd("collectreward",strnpcinfo(3)+"::OnLoginCmnd",0,99); bindatcmd("dailyreward",strnpcinfo(3)+"::OnLoginCmnd",0,99); bindatcmd("collectdaily",strnpcinfo(3)+"::OnLoginCmnd",0,99); bindatcmd("nextreward",strnpcinfo(3)+"::OnNextCmnd",0,99); // Reset days back to 0 on a skipped day. // Toggle // [0] = Off // [1] = On .Reset = 0; // .Rest // Delay after login to collect rewards // In Minutes .Rest = 0; // Point Name .Points$ = "Loyalty Points"; // Ip check to prevent multi accounts // Toggle // [0] = Off // [1] = On .IPCheck = 0; // Consecutive Days Buff // Each buff contains 4 variables // <Type>,<Days>,<Duration>,<Rate>, // Buff 1 // <Type>,<Days>,<Duration>,<Rate>, // Buff 2 // ...; // // Example: 188,7,45,3 // -On the 7th day logged in Player gains +3 Str for 45 mins // // Type is 188, which references which SC_ to use, SC_INCSTR in this example // -For a full list of SC_ visit the db/const.txt // Days is days buff is applied, in this example 7, so every 7th day, 14,21,28.... // Duration is buff duration is Minuits, in this example 45 mins // Rate is buff val1, in this example player gains 3 Str setarray .BuffInfo ,260,2,360,1 // Life Insurance for 360 on 2nd Day ,198,3,120,10 // +10% Hp for 120 Mins on 3rd Day ,260,4,360,1 // Life Insurance for 360 on 4th Day ,196,5,120,25 // +25 Flee for 120 Mins on 5th Day ,198,6,120,10 // +10% Hp for 120 Mins on 6th Day ,257,7,240,50 // +50% Exp for 240 Mins on 7th Day ,260,8,360,1 // Life Insurance for 360 on 8th Day ,198,9,120,10 // +10% Hp for 120 Mins on 9th Day ,196,10,120,25 // +25 Flee for 120 Mins on 10th Day ,9,12,120,10 // +10% Hp for 120 Mins on 12th Day ,9,14,240,50 // +50% Exp for 240 Mins on 14th Day ,9,15,120,50 // +25 Flee for 120 Mins on 15th Day ,198,16,360,10 // Life Insurance for 360 on 16th Day ,9,18,120,10 // +10% Hp for 120 Mins on 18th Day ,9,20,120,25 // +25 Flee for 120 Mins on 20th Day ,9,21,240,50 // +50% Exp for 240 Mins on 21st Day ,9,22,360,1 // Life Insurance for 360 on 22nd Day ,9,24,120,10 // +10% Hp for 120 Mins on 24th Day ,9,25,120,25 // +25 Flee for 120 Mins on 25th Day ,9,26,360,1 // Life Insurance for 360 on 26th Day ,9,27,120,10 // +10% Hp for 120 Mins on 27th Day ,9,28,240,50 // +50% Exp for 240 Mins on 28th Day ,9,30,120,25; // +25 Flee for 120 Mins on 30th Day // Daily Prize items: // "<Zeny>,<Points>,<BaseExp>,<JobExp>,<itemID-1>,<amount-1>,<itemID-2>,<amount-2>...etc", // Day 1 // "<Zeny>,<Points>,<BaseExp>,<JobExp>,<itemID-1>,<amount-1>,<itemID-2>,<amount-2>...etc" // Day 2 // ...; // Total length of any days string must be 255 or shorter setarray .Rewards$[1], "0,0,0,0,12016,100", // Day 1 "0,0,0,0,28995,1", // Day 2 "0,0,0,0,7539,2", // Day 3 "0,0,0,0,14601,200", // Day 4 "0,0,0,0,12299,100", // Day 5 "0,0,0,0,12684,200", // Day 6 "0,0,0,0,28996,1", // Day 7 "0,0,0,0,14614,300", // Day 8 "0,0,0,0,28995,1", // Day 9 "0,0,0,0,12786,10", // Day 10 "0,0,0,0,12424,150", // Day 11 "0,0,0,0,12427,200", // Day 12 "0,0,0,0,7539,2", // Day 13 "0,0,0,0,28997,1", // Day 14 "0,0,0,0,28995,1", // Day 15 "0,0,0,0,12418,300", // Day 16 "0,0,0,0,12419,300", // Day 17 "0,0,0,0,12404,150", // Day 18 "0,0,0,0,7539,2", // Day 19 "0,0,0,0,12786,10", // Day 20 "0,0,0,0,28998,1", // Day 21 "0,0,0,0,14591,3", // Day 22 "0,0,0,0,12221,50", // Day 23 "0,0,0,0,7539,2", // Day 24 "0,0,0,0,28995,1", // Day 25 "0,0,0,0,14614,300", // Day 26 "0,0,0,0,12786,15", // Day 27 "0,0,0,0,28999,1"; // Day 28 // Cutin Array // Shows a cutin before collecting for each date // Start at 0 if showing next day setarray .Cutins$, "Daily_00", "Daily_01", "Daily_02", "Daily_03", "Daily_04", "Daily_05", "Daily_06", "Daily_07", "Daily_08", "Daily_09", "Daily_10", "Daily_11", "Daily_12", "Daily_13", "Daily_14", "Daily_15", "Daily_16", "Daily_17", "Daily_18", "Daily_19", "Daily_20", "Daily_21", "Daily_22", "Daily_23", "Daily_24", "Daily_25", "Daily_26", "Daily_27", "Daily_28", "kafra_08", "kafra_09", "kafra_01", "kafra_02", "kafra_03"; end; }
-
-
Hi, I try to enable the custom headgear npc which is default in rathena, but i get this error on certain headgear. Is there anything i can do with it?