Jump to content

KidoSang

Members
  • Posts

    24
  • Joined

  • Last visited

Recent Profile Visitors

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

KidoSang's Achievements

Poring

Poring (1/15)

3

Reputation

2

Community Answers

  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; }
×
×
  • Create New...