Jump to content

KidoSang

Members
  • Posts

    24
  • Joined

  • Last visited

Everything posted by KidoSang

  1. 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; } }
  2. 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; }
  3. 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?
  4. 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.
  5. //===== 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; }
  6. Actually what i mean is in source.Anyways thanks for your help. I had found the way to do in source.
  7. Hi, In src, how to create a loop to get each party member id? Thanks
  8. 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
  9. Hi, Is there any way to fix destroy instances button for client 2018-06-21aRagexeRE ? Try to click on it but nothing happen. Thanks
  10. 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
  11. Hi, Thanks for the reply but after i change to this,i cant change to soul reaper from soul linker
  12. 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
  13. 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.
  14. 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; }
  15. 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
  16. 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
  17. 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
  18. 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; }
  19. 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
  20. 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; }
  21. Sorry does this means i had the latest kRO data?
  22. 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?
×
×
  • Create New...