KidoSang

Members
  • Content Count

    24
  • Avg. Content Per Day

    0
  • Joined

  • Last visited

Community Reputation

3 Neutral

About KidoSang

  • Rank
    Poring

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  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 ( [email protected] = 0; [email protected] < getarraysize(.reward); [email protected]++ ) for ( [email protected] = 0; [email protected] < getarraysize(.amount); [email protected]++ ) getitem .reward[[email protected]],.amount[[email protected]]; 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 [email protected][1],4140,4062; setarray [email protected][1],4402,4359; setarray [email protected][1],4252,4344; setarray [email protected][1],4409,4401; if(#end == 1){ goto cardend; }else{ goto card1; } end; card1: for( [email protected] = 1; [email protected] < getarraysize([email protected]); [email protected]++ ){ [email protected]$ = [email protected]$ + getitemname([email protected][[email protected]]) + ":"; } #selectedcard[1] = [email protected][select([email protected]$)]; if(#end == 1){ goto cardend; } goto card2; end; card2: for( [email protected] = 1; [email protected] < getarraysize([email protected]); [email protected]++ ){ [email protected]$ = [email protected]$ + getitemname([email protected][[email protected]]) + ":"; } #selectedcard[2] = [email protected][select([email protected]$)]; if(#end == 1){ goto cardend; } goto card3; end; card3: for( [email protected] = 1; [email protected] < getarraysize([email protected]); [email protected]++ ){ [email protected]$ = [email protected]$ + getitemname([email protected][[email protected]]) + ":"; } #selectedcard[3] = [email protected][select([email protected]$)]; if(#end == 1){ goto cardend; } goto card4; end; card4: for( [email protected] = 1; [email protected] < getarraysize([email protected]); [email protected]++ ){ [email protected]$ = [email protected]$ + getitemname([email protected][[email protected]]) + ":"; } #selectedcard[4] = [email protected][select([email protected]$)]; goto cardend; end; cardend: #end = 1; [email protected]$ = ""; mes "You had selected the card as below."; mes "Do you wish to change or continue?"; for( [email protected] = 1; [email protected] < getarraysize(#selectedcard); [email protected]++ ){ [email protected]$ = [email protected]$ + "Change " +getitemname(#selectedcard[[email protected]]) + ":"; } [email protected]$ = [email protected]$ + "Proceed"; [email protected] = select([email protected]$); switch([email protected]){ case 1: goto card1; break; case 2: goto card2; break; case 3: goto card3; break; case 4: goto card4; break; default: for( [email protected] = 1; [email protected] <= getarraysize(#selectedcard); [email protected]++ ){ getitem #selectedcard[[email protected]],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 [email protected],60; // GM level required to access NPC. set [email protected]$,"[^0000FFDisguise NPC^000000]"; if (getgmlevel()>[email protected]) { mes [email protected]$; mes "Select an option."; next; switch(select("Turn ON/OFF Event:Event Settings")) { case 1: mes [email protected]$; 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 [email protected]$; mes "Pick a setting to modify."; next; switch(select("Monster Display:Number of Rounds:Prize Settings")) { case 1: setarray [email protected]$[0],"Disguise as all monsters.","Disguise as MVPs only."; mes [email protected]$; mes "Choose a disguise rule."; next; set .Rule, select(implode([email protected]$,":")); mes [email protected]$; mes "The Disguise Rule has been set:"; mes " > ^0055FF"[email protected]$[.Rule-1]+"^000000"; close; case 2: mes [email protected]$; mes "Input the number of rounds you want the event to last."; mes "Current number: [^0000FF"+.Rounds+"^000000]"; next; input [email protected]; set .Rounds,[email protected]; mes [email protected]$; mes "The number of rounds has been changed to "+.Rounds+"."; close; case 3: mes [email protected]$; mes "Input the Item ID of the prize given each round."; mes "Current item: [^0000FF"+getitemname(.Prize)+"^000000] (ID #"+.Prize+")"; next; input [email protected]; mes [email protected]$; if (getitemname([email protected])=="" || getitemname([email protected])=="null") { mes "That item does not exist. Please try again."; close; } set .Prize,[email protected]; mes "Input the amount to be given."; next; input [email protected]; mes [email protected]$; if ([email protected]<=0 || [email protected]>=10000) { mes "That amount is invalid. Using default amount of 1."; set [email protected],1; next; mes [email protected]$; } set .PrizeAmt,[email protected]; mes "The Prize has been changed successfully."; mes "Prize: "+.PrizeAmt+"x [^0000FF"+getitemname(.Prize)+"^000000]"; close; } } } if (.EventON) end; mes [email protected]$; mes "Welcome."; mes "How may I be of assistance?"; if(select("Information:Nothing, just passing through.")==2) close; next; mes [email protected]$; 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 [email protected]$, "Você pode ganhar: "; for(set([email protected],0);[email protected]<.len_i;set([email protected],[email protected]+2)) { set [email protected]$, getitemname(.itm_l[([email protected])]); mes [email protected]$; } 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 [email protected],1; [email protected]<=.len_i; set [email protected],[email protected]+2) { if(.chance < .itm_l[[email protected]]){ set [email protected], .itm_l[[email protected]]; break; } } if(compare(.itm_a$,""[email protected])) announce strnpcinfo(0)+": "+strcharinfo(0)+" Obteve ["+getitemname([email protected])+"] da Máquina de Promoções!",bc_all|bc_yellow; getitem [email protected],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"; [email protected] = 0; if (!countitem2(.RefineItem,1,7,0,0,0,0,0)) { [email protected] = 1; } mes "+"+.RefineLevel+" "+getitemname(.RefineItem)+" "+countitem2(.RefineItem,1,7,0,0,0,0,0)+"/1"; for([email protected]=0; [email protected] < getarraysize(.OtherItem); set [email protected],[email protected]+2){ if(countitem(.OtherItem[[email protected]]) < .OtherItem[[email protected]+1]){ [email protected] = 1; } mes "~ "+.OtherItem[[email protected]+1]+" "+getitemname(.OtherItem[[email protected]])+" "+countitem(.OtherItem[[email protected]])+"/"+.OtherItem[[email protected]+1]; } mes "to exchange "+getitemname(.Reward); [email protected] = select("Exchange Please!","No"); if([email protected]){ if([email protected]){ next; mes "Sorry you are missing some items"; }else{ next; mes "Done!"; delitem2(.RefineItem,1,1,7,0,0,0,0,0); for([email protected]=0; [email protected] < getarraysize(.OtherItem); set [email protected],[email protected]+2) delitem .OtherItem[[email protected]],.OtherItem[[email protected]+1]; getitem .Reward,1; } } end; }