-
Posts
1,702 -
Joined
-
Last visited
-
Days Won
14
Community Answers
-
Patskie's post in Ghost PvP and suicide was marked as the answer
Change :
if(getgmlevel() >= .GMLevel){ end; } to :
if ( getgmlevel() >= .GMLevel || killedrid == getcharid(3) ) { end; } -
Patskie's post in need help for commands was marked as the answer
Try :
- shop dynamicshop -1,501:20 - script Sample -1,{ OnConvert: .Coin = 674; // Bronze coin, mithril coin etc. .Card = 7227; // TCG card, PODS etc. .Rate = 10; // n coin = 1 card mes "I can covert your " +.Rate+ "x " +getitemname(.Coin)+ " to 1 " +getitemname(.Card); next; mes "How many " +getitemname(.Coin)+ " would you like to convert?"; next; input [email protected]; if ( [email protected] || countitem( .Coin ) < ( .Rate * [email protected] ) ) { mes "Invalid amount"; close; } mes "Here you go!"; close2; getitem .Card, [email protected]; delitem .Coin, ( [email protected] * .Rate ); end; OnShop: callshop "dynamicshop",1; npcshopattach "dynamicshop"; end; OnBuyItem: for ( set [email protected], 0; [email protected] < getarraysize(.items); set [email protected], [email protected] + 2 ) { for ( set [email protected], 0; [email protected] < getarraysize(@bought_nameid); set [email protected], [email protected] + 1 ) { if ( @bought_nameid[[email protected]] == .items[[email protected]] ) { if ( checkweight( @bought_nameid[[email protected]], @bought_quantity[[email protected]] ) ) { if ( countitem(.currency) < .items[[email protected]+1] || countitem(.currency) < ( .items[[email protected]+1] * @bought_quantity[[email protected]] ) ) dispbottom "You don't have enough " +getitemname(.currency)+ " to purchase this item."; else { delitem .currency, .items[[email protected]+1] * @bought_quantity[[email protected]]; getitem @bought_nameid[[email protected]], @bought_quantity[[email protected]]; } } else dispbottom "You cannot carry out more items with you"; } } } deletearray @bought_quantity, getarraysize(@bought_quantity); deletearray @bought_nameid, getarraysize(@bought_nameid); end; OnInit: set .currency, 7227; // TCG is used to buy items setarray .items, 4001,5,7227,100; // Usage : <item id>,<price> npcshopitem "dynamicshop",0,0; for ( set [email protected], 0; [email protected] < getarraysize(.items); set [email protected], [email protected] + 2 ) npcshopadditem "dynamicshop", .items[[email protected]], .items[[email protected]+1]; bindatcmd "converter", strnpcinfo(3)+ "::OnConvert"; bindatcmd "donation", strnpcinfo(3)+ "::OnShop"; end; } Some configurations for @converter :
.Coin = 674; // Bronze coin, mithril coin etc. .Card = 7227; // TCG card, PODS etc. .Rate = 10; // n coin = 1 card and for @donation :
set .currency, 7227; // TCG is used to buy items setarray .items, 4001,5,7227,100; // Usage : <item id>,<price> -
Patskie's post in Displaying player's Job was marked as the answer
This?
announce "Party: [" +jobname(Class)+ "] " +strcharinfo(0)+ " (" +BaseLevel+ "/" +JobLevel+ ") is looking for a party!",0; -
Patskie's post in getcharip() with variable was marked as the answer
Alternative :
prontera,150,150,3 script Sample 952,{ //input character name input [email protected]$; mes getcharip(getcharid(3, [email protected]$)); close; } -
Patskie's post in About KoE Prize was marked as the answer
// KoE Exit
guild_vs1,49,56,5 script Exit#KoE 51,{
mes "[Exit]";
mes "See ya.";
if ( getcharid(2) == $koegid && getguildmaster(getcharid(2)) == strcharinfo(0) )
getitem 12039, 1; // configure prize here
next;
warp "Save",0,0;
close;
}
-
Patskie's post in NPC Healer For The Killer was marked as the answer
Refer to Basic_Scripting
- <TAB> script <TAB> Sample <TAB> -1,{ OnPCKillEvent: if ( strcharinfo(3) == "your map" ) { if ( attachrid( getcharid( 3, strcharinfo( 0 ) ) ) ) { if ( Hp && ( Hp != MaxHp ) ) percentheal 100,100; } } } -
Patskie's post in free stat 1k like freebies was marked as the answer
This :
- script Sample -1,{ OnPCLoginEvent: if ( !#FreeStats ) { StatusPoint += 1000; set #FreeStats, 1; } end; } -
Patskie's post in own points was marked as the answer
Sample :
prontera,150,150,0 script Sample 100,{ set #OWNPOINTS, #OWNPOINTS + 5; dispbottom "You now have " +#OWNPOINTS+ " own points."; end; } Every time people click on this npc. They will have additional 5 #OWNPOINTS credited on their accounts. The dispbottom command will show how many own points a certain player has. If you want items to be bought by your own custom points then i suggest you use @Emistry multi currency shop ( http://rathena.org/board/files/file/2504-multi-currency-shop/ ). It's easy to configure.
-
Patskie's post in Breaker Points Help ! was marked as the answer
You miss a semi colon here :
set breaker_tcg, breaker_tcg + [email protected] should be :
set breaker_tcg, breaker_tcg + [email protected]; -
Patskie's post in How to modify Skills to make them not to work on woe? was marked as the answer
You can disable skill here :
Renewal :
db/re/skill_nocast_db.txt
Pre-Renewal :
db/pre-re/skill_nocast_db.txt
-
Patskie's post in Map Announcer was marked as the answer
http://rathena.org/board/topic/80235-custom-go/?p=187683
or
http://rathena.org/board/topic/87206-mapname-self-announce/
-
Patskie's post in Hourly Points was marked as the answer
1.
//===== Hourly Points Script ========================================= //===== By: ========================================================== //= GorthexTiger modified by Nibi //===== Current Version: ============================================= //= 1.0 //===== Compatible With: ============================================= //= Any eAthena Version //===== Description: ================================================= //= Get Points every successful hours of gameplay, you cannot get //= the points even if you miss a second or a minute. A player will //= get a very big bonus if they played 3 hours consecutively //= or without logging out of the game. If the player is vending //= the script will then stop. //===== Additional Comments: ========================================= //= You can modify the script to your liking. //= The default points is Kafrapoints change it anyway if you like. //= 1.1 = Check Chatting too //= 1.2 = 5 Minute Idle Check & @at/@autotrade check. //= 1.3 = Corrected the current balance line on 12 Hours Consecutive //==================================================================== - script hourlypoints -1,{ //--Start of the Script OnPCLoginEvent: addtimer .timer,"hourlypoints::OnPointGet"; end; OnPointGet: while(checkvending() >= 1 || checkchatting() == 1 || checkidle()>=.dlimit) { sleep2 .delay; if([email protected]$=="") dispbottom set([email protected]$,"The hourly points event haulted because you were vending, chatting, or idle."); } set #CASHPOINTS, #CASHPOINTS + .point_amt; dispbottom "You received "+.point_amt+" Kafrapoints by staying ingame for 1 hour"; dispbottom "Current Balance = "+#CASHPOINTS+" Kafrapoints"; set @consecutive_hour, @consecutive_hour + 1; //Check for 3 hours consecutive if(@consecutive_hour == 3) { set @consecutive_hour,0; set #CASHPOINTS, #CASHPOINTS + .cpoint_amt; dispbottom "You receive "+.cpoint_amt+" Kafrapoints in playing for 12 consecutive hours"; dispbottom "Current Balance = "+#CASHPOINTS+" Kafrapoints"; } addtimer .timer,"hourlypoints::OnPointGet"; end; OnInit: set .timer, 1000*60*60; //Timer in milliseconds. set .cpoint_amt, 50; //Points gained for consecutive time online. set .point_amt, 10; //Normal points gained. set .delay, 1000; //Delay for idle re-check check. set .dlimit, 60*5; //Stop points if afk greater then in seconds. } 2. Use @check to check cashpoints
- script Sample -1,{ OnInit: bindatcmd "check",strnpcinfo(3)+"::OnCheck"; end; OnCheck: dispbottom "You have " +#CASHPOINTS+ " cash points."; end; } 3. http://rathena.org/board/files/file/2504-multi-currency-shop/
-
Patskie's post in Special Announcer was marked as the answer
Try (spawn time is every 2 hours) :
- script Sample -1,{ OnInit: announce "Dark Lord has been summoned!",0; monster "prontera",0,0,"Dark Lord",1272,1,strnpcinfo(1)+"::OnKill"; end; OnKill: announce "Dark Lord has been killed by " +strcharinfo(0)+ "!",0; end; OnMinute00: if ( ( gettime(3) % 2 ) == 0 ) donpcevent strnpcinfo(1)+"::OnInit"; end; } -
Patskie's post in How to do put EDP in sinx card was marked as the answer
bonus3 bAutoSpell,"ASC_EDP",1,1;
Refer to : doc/item_bonus.txt
-
Patskie's post in monster spawn every 30min was marked as the answer
Try this one :
- script Sample -1,{ OnInit: setarray .mob_id[0],1002,1113,1399,1159; set .size, getarraysize(.mob_id); set .random, rand(.size); set .amount, 1; // amount of monster spawned set .monster, .mob_id[.random]; end; OnMinute00: OnMinute30: monster "prontera",150,150,getmonsterinfo(.monster, 0),.monster,.amount,strnpcinfo(0)+ "::OnKill"; announce getmonsterinfo(.monster, 0)+ " has been spawned in prontera",0; end; OnKill: announce "The monster " +getmonsterinfo(.monster, 0)+ " has been killed",0; end; } Screenshot :
-
Patskie's post in Problem about WOE REWARD was marked as the answer
Search on your script :
// Rewards per castle. // -- when given directly: <itemID>,<amount>{,<itemID>,<amount>,...} // -- via mail (option 2): <itemID>,<amount>,<Zeny> setarray .Reward[0],9524,200,675,50; -
Patskie's post in How to make this script work only during woe and when it ends the scripts ends too? was marked as the answer
Try this one :
function script Sample { if( ( agitcheck() || agitcheck2() ) && isequippedcnt( 4357,4359,4361,4363,4365,4367,4457,4463,4462,4459,4456,4458,4441,4408,4430,4263,4403,4419,4376,4399,4407,4451 ) > 2 ){ message strcharinfo(0),"You can NOT wear more than 2 of this cards, Biolab, Nidhoggur, Naght, Tendrilrion, Mammoth, Rata, Duneyrr,Fallen Bishop, Gloom, Ifrit, Incantation, Kiel, Ktullanux, Tanee, Thanatos, Randgris, Crothen."; nude; } return; } -
Patskie's post in Change Dice Event timer was marked as the answer
Try this one. Trigger time : 2:30 AM, 5:00 AM, 7:30 AM, 10:00 AM, 12:30 PM, 3:00 PM, 5:30 PM, 8:00 PM, 10:30 PM
OnClock0230: OnClock0500: OnClock0730: OnClock1000: OnClock1230: OnClock1500: OnClock1730: OnClock2000: OnClock2230: announce "Dice: Preparense! El Evento Dice esta por dar Inicio",0; sleep2 10000; announce "Dice: Para acceder a el evento vayan a la Ciudad de Prontera y entren en un Portal que aparecera en el jardin.",0; sleep2 10000; announce "Dice: Despues de 1 minuto el portal se cerrara.",0; sleep2 10000; announce "Dice: Recuerden entrar al portal los que quieran participar.",0; enablenpc "prtevent"; initnpctimer; end; -
Patskie's post in Autokick Vender's after time was marked as the answer
Try :
- script Sample -1,{ OnInit: addtimer 5000,strnpcinfo(0)+"::OnCheck"; // 5 seconds end; OnCheck: if ( checkvending() ) atcommand "@kick " +strcharinfo(0); end; } -
Patskie's post in Mob item drop. was marked as the answer
Try :
- script Sample -1,{ OnInit: set .item_id,7227; set .amount,10; monster "prontera",0,0,"Poringer",1002,1,strnpcinfo(0)+"::OnKill"; end; OnKill: for (set [email protected],0; [email protected] < .amount; set [email protected],[email protected]+1) { do { set [email protected], rand(1,500); set [email protected], rand(1,500); } while (!checkcell("prontera",[email protected],[email protected],cell_chkpass)); makeitem .item_id,1,"prontera",[email protected],[email protected]; } end; } -
Patskie's post in PVP Arena script help was marked as the answer
Change the case part by this :
case 1: // PVP Square if (getmapusers(.pvp_square$) > 99) callsub S_full; callsub S_payment; warp .pvp_square$,0,0; announce strcharinfo(0)+ " enter " +.pvp_square$+ "",0; end; case 2: // PVP Nightmare if (getmapusers("guild_vs3") > 99) callsub S_full; callsub S_payment; warp "guild_vs3",0,0; announce strcharinfo(0)+ " enter guild_vs3",0; end; case 3: // PVP LowLevel if (getmapusers("guild_vs1") > 99) callsub S_full; if (BaseLevel > 150) { // Edit 150 to any maximum Lvl of a player can enter this room mes "only Base Level 1 - 150 may enter."; close; } callsub S_payment; warp "guild_vs1",0,0; announce strcharinfo(0)+ " enter guild_vs1",0; end; case 4: // PVP NoPotion if (getmapusers("pvp_y_8-2") > 99) callsub S_full; for( set [email protected],0; [email protected]<getarraysize(.NoPotion_ids); set [email protected],[email protected]+1 ) { if (countitem(.NoPotion_ids[[email protected]])) { mes "You can not bring potions in this pvp."; close; } } callsub S_payment; warp "pvp_y_8-2",0,0; announce strcharinfo(0)+ " enter pvp_y_8-2",0; end; case 5: // Non Donator PVP if (getmapusers("[email protected]") > 99) callsub S_full; for( set [email protected],0; [email protected]<getarraysize(.NoDonator_ids); set [email protected],[email protected]+1 ) { if (countitem(.NoDonator_ids[[email protected]])) { mes "You can not bring God items in this pvp."; close; } } callsub S_payment; warp "[email protected]",0,0; announce strcharinfo(0)+ " enter [email protected]",0; end; Case 6: // Baby PvP Room if (getmapusers("pvp_y_1-2") > 99) callsub S_full; if (class < 4023 || class > 4045) goto L_NotBaby; callsub S_payment; warp "pvp_y_1-2",0,0; announce strcharinfo(0)+ " enter pvp_y_1-2",0; end; Put this :
OnPCKillEvent: if ( strcharinfo(3) == "your_pvp_map" ) announce strcharinfo(0)+ " killed " +rid2name(killedrid); end; -
Patskie's post in Hourly Points Problem was marked as the answer
Use this http://rathena.org/board/files/file/2504-multi-currency-shop/ and set currency depending on your hourly point prize
-
Patskie's post in zeny on mob was marked as the answer
Add before npc/guild/agit_main.txt#L142 :
set Zeny, Zeny + 1000000; announce "" +strcharinfo(0)+ " gained 1M for breaking the Emperium",0; -
Patskie's post in Requesting Askydun Warper npc was marked as the answer
Something like this :
prontera,150,150,0 script Warp NPC 100,{ set .npc$, "[" +strnpcinfo(1)+ "]"; mes .npc$; mes "Where would you like to be warped to?"; next; switch(select("Askydun:Poring Market:Vending Area:PvP Room")) { case 1: if ( #done ) warp "your map",0,0; else mes "You have not completed the Askydun Quest"; break; case 2: warp "poring_map",0,0; break; case 3: warp "vending_map",0,0; break; case 4: warp "pvp_map",0,0; break; } close; } On your quest script, after completing it, add this :
set #done, 1; -
Patskie's post in Gold Room Party Style. was marked as the answer
Change "your map" to your gold room map
- script Kill -1,{ OnInit: monster "your map",0,0,"Gold Digger",1110,100,strnpcinfo(1)+ "::OnKill"; end; OnKill: if ( !getcharid(1) ) { getitem 969,1; end; } else { getpartymember getcharid(1),1; .count = [email protected]; if ( .count >= 5 || getpartyleader(getcharid(1), 2) != getcharid(0) ) end; if ( .count >= 2 ) { getitem 969, .count; end; } else { getitem 969,1; end; } } }