-
Posts
2407 -
Joined
-
Last visited
-
Days Won
52
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Capuche
-
settle this in your conf/battle/drops.conf
-
http://pastebin.com/raw.php?i=3vh31dg0 You should update/change your emulator, implode/explode commands and others are very useful. Just think about it
-
You can try Toasty's WoE Controller / Euphy's WOE Controller / WoE setter 3
-
Try this one http://pastebin.com/raw.php?i=9Sh9WGbr
-
itemmall,170,80,2 script Jukebox#nw 858,{ set .@item_req, 7227 ;// item ID set .@item_num, 10; // number required mes .@item_num +" "+ getitemname( .@item_req ) +" the sound"; if( countitem( .@item_req ) < .@item_num ) { mes "you don't have enough "+ getitemname( .@item_req ); close; } mes "select the sound"; switch( select("Into the Abyss","Assassin Cross of Sunset","Eternal Chaos","Ring of Nibelungen","Cancel") ) { case 1: soundeffectall "in_to_the_abyss.wav",0; break; case 2: soundeffectall "assassin_of_sunset.wav",0; break; case 3: soundeffectall "chaos_of_eternity.wav",0; break; case 4: soundeffectall "ring_of_nibelungen.wav",0; break; case 5: close; } delitem .@item_req, .@item_num; close; } This one should work on eA too
-
getitem and getitem2 are almost the same, just replace getitem and complete getitem2
-
If your emulator is rA, you can try Bindatcmd (I suggest to learn how to use it, very useful) and check if the player attached is on a pvp map with getmapflag - script stop_die -1,{ OnInit: bindatcmd "die",strnpcinfo(0) +"::OnPCDie"; end; OnPCDie: if( getmapflag( strcharinfo(3),mf_pvp ) && getgmlevel() < 10 ) message strcharinfo(0),"You can't use @die on pvp maps."; else atcommand "@die"; end; }
- 1 reply
-
- 1
-
-
Post your current script Did you make some modification compare to the original ?
-
Replace x2 set $top3_pvprank$, implode( .@name$, "?" ); to for( set .@tmp, 0; .@tmp < getarraysize( .@name$ ); set .@tmp, .@tmp + 1 ) set $top3_pvprank$, $top3_pvprank$ + .@name$[ .@tmp ] + ( .@tmp == getarraysize( .@name$ ) -1 ? "" : "?" );
-
prt_in,63,60,4 script Refiner 85,{ function nZeny; function CHose; function nItem; function nRate; function sRater; //when use 'Protection Scroll' //-1,-2,-3... -->back to level 1,2,3...(MAX:10) if refine fail //1,2,3... --> reduce level 1,2,3.... if refine fail set @use2,0; set @rate,0; set @typr,0; set @menu2,0; set @use3,0; if(select("Refine","Close")==2) close; set @typr,select(""+getequipname(1),""+getequipname(2),""+getequipname(3),""+getequipname(4),""+getequipname(5),""+getequipname(6)); callsub OnCon; sRater(); if(select("^000088Refine now^000000","^FF3355Don't refine^000000")==2) close; callsub OnCon2; OnCon: if(!getequipisenableref(@typr)) { mes "I can't refine this !..."; close; } if(getequiprefinerycnt(@typr)>=10) { mes "It's not possible to refine this better than +10."; close; } if(Zeny<nZeny(@typr)) { mes "You don't have enough Zeny. Your Zeny is lower than "+nZeny(@typr)+"."; close; } if( @use3 ) { if( !countitem(@use3) ) { mes "You don't have any "+getitemname(@use3)+"."; close; } } else{ if( !countitem(set(@use2,nItem(@typr,select("^FF3355Use normal Ore!^000000","^000088Use purified Ore!^000000"))))) { mes "You don't have any "+getitemname(@use2)+"."; close; } set @use3,@use2; } return; OnCon2: if(.Scroll) { if( @menu2==2 ) { if(!countitem(.Scroll)) { mes "You don't have a Protection Scroll."; close; } }else{ if( select("^FF3355Go ahead without protection Scroll!^000000.","^000088Use Protection Scroll!^000000.")==2) { if(!countitem(.Scroll)) { mes "your don't have Protection Scroll."; close; } }else mes " "; } } set Zeny,Zeny-nZeny(@typr); if(.Scroll) { if( @menu==2 || @menu2==2 ) if( @rate >= 100 ) mes "100% of success, so automatically cancel using the protection scroll"; else delitem .Scroll,1; } delitem @use2,1; if(.Scroll) { if( @menu==2 || @menu2==2 ) { if(@rate<rand(1,100)) { if(.back<0) { getitem2 getequipid(@typr),1,1,-(.back<-10?-10:.back),0,getequipcardid(@typr,0),getequipcardid(@typr,1),getequipcardid(@typr,2),getequipcardid(@typr,3); failedrefitem @typr; if( getequiprefinerycnt(@typr)+1 >= 7 ) announce strcharinfo(0)+" tried to refine a +"+getequiprefinerycnt(@typr)+" "+getequipname(@typr)+" to +"+(getequiprefinerycnt(@typr)+1)+" and FAILED!",0; close; } else { set .@D,set(.@D,getequiprefinerycnt(@typr)-.back)<0?0:.@D; if(getequiprefinerycnt(@typr)<=10) { getitem2 getequipid(@typr),1,1,.@D,0,getequipcardid(@typr,0),getequipcardid(@typr,1),getequipcardid(@typr,2),getequipcardid(@typr,3); failedrefitem @typr; if( getequiprefinerycnt(@typr)+1 >= 7 ) announce strcharinfo(0)+" tried to refine a +"+getequiprefinerycnt(@typr)+" "+getequipname(@typr)+" to +"+(getequiprefinerycnt(@typr)+1)+" and FAILED!",0; close; } else { while(getequiprefinerycnt(@typr)!=.@D) { successrefitem @typr; if( getequiprefinerycnt(@typr) >= 7 ) announce strcharinfo(0)+" tried to refine a +"+( getequiprefinerycnt(@typr) -1 )+" "+getequipname(@typr)+" to +"+getequiprefinerycnt(@typr)+" and SUCCEED!",0; } } } } else { successrefitem @typr; if( getequiprefinerycnt(@typr) >= 7 ) announce strcharinfo(0)+" tried to refine a +"+( getequiprefinerycnt(@typr) -1 )+" "+getequipname(@typr)+" to +"+getequiprefinerycnt(@typr)+" and SUCCEED!",0; } CHose(@use2,@menu); } } if(@rate<rand(1,100)) { if( getequiprefinerycnt(@typr) >= 7 ) announce strcharinfo(0)+" tried to refine a +"+getequiprefinerycnt(@typr)+" "+getequipname(@typr)+" to +"+(getequiprefinerycnt(@typr)+1)+" and FAILED!",0; failedrefitem @typr; close; } else { successrefitem @typr; if( getequiprefinerycnt(@typr) >= 7 ) announce strcharinfo(0)+" tried to refine a +"+( getequiprefinerycnt(@typr) -1 )+" "+getequipname(@typr)+" to +"+getequiprefinerycnt(@typr)+" and SUCCEED!",0; } CHose(@use2,@menu); // functions // --------- function nZeny { switch(getequipweaponlv(getarg(0))) { case 1: return 500; case 2: return 2000; case 0: case 3: case 4: return 5000; default: return 0; } } function nItem { if(getarg(1)==1){ switch(getequipweaponlv(getarg(0))) { case 0: return 985; case 1: return 1010; case 2: return 1011; case 3: case 4: return 984; default: return 0; } } else { switch(getequipweaponlv(getarg(0))) { case 0: return 6241; case 1: case 2: case 3: case 4: return 6240; default: return 0; } } } function nRate { function aRate { return getarg(getarg(0,0)+1,0); } switch(getequipweaponlv(getarg(0))) { case 0: return aRate(getarg(1), 100,100,100,100,60, 40,40,20,20,10, 50,30,20,10,10, 10,10,10,10,10); case 1: return aRate(getarg(1), 100,100,100,100,100, 100,100,60,40,20, 70,70,50,50,30, 30,20,20,10,10); case 2: return aRate(getarg(1), 100,100,100,100,100, 100,60,40,20,20, 70,50,50,30,30, 20,20,10,10,10); case 3: return aRate(getarg(1), 100,100,100,100,100, 60,50,20,20,20, 50,50,30,30,20, 20,10,10,10,10); case 4: return aRate(getarg(1), 100,100,100,100,60, 40,40,20,20,10, 50,30,30,20,20, 10,10,10,10,10); } } function sRater { mes "[Successful rate]["+set(@rate,(nRate(@typr,getequiprefinerycnt(@typr))+(@use2>6000?10:0)))+"%]"; return; } function CHose { set @menu2,@menu2?@menu2:@menu; set @use3,@use3?@use3:@use2; next; sRater; if( select("[^000088continue^000000]","[^FF3355End^000000]") == 2 ) close; else callsub OnCon,1; callsub OnCon2; } OnInit: set .Scroll,7199;//'Protection Scroll' item id set .back,0; end; } nanakiwurtz made some error. It works also with eA
-
Maybe because of this if you try with your gm set .gmnotop, 20; // GM not suppose to beat player's record ... For the error you can try with the latest integer's function find in this topic // ~~~~~ Please use this latest int__ function that support negative numbers ~~~~~ function script int__ { .@i = getstrlen( .@str$ = getarg(0) ) -3; .@is_negative = charat( .@str$, 0 ) == "-"; while ( .@i > .@is_negative ) { .@str$ = insertchar( .@str$, ",", .@i ); .@i -= 3; } return .@str$; }
-
Another solution should be diff your client adding "ignore missing file" option and to use changebase.
-
- script hjkl -1,{ OnPCLoadMapEvent: if( strcharinfo(3) == "<Your Event Map Name>" ) if( getmercinfo(0) ){ dispbottom "Mercenary are not allowed"; warp "prontera",155,181; } end; } <Your Event Map Name> mapflag loadevent You can try OnPCLoadMapEvent label
-
conf/mapflag/nowarpto.txt Delete or comment the lines to enable use of @warp to the map
-
OnNPCKillEvent: if( getmonsterinfo( killedrid,MOB_MVPEXP ) > 0 ) { announce strcharinfo(0)+" killed "+getmonsterinfo( killedrid,MOB_NAME ),bc_self,0xFF0000; getitem 7711,2; } end; Bahmut forgot the brackets. Theses lines don't work with eAthena servers.
-
Search VIP system in this forum I'm sure you will find something like your request
-
thanks to inform before I post
-
There was an error http://pastebin.com/raw.php?i=83UpTvTf
-
?
-
script:set: not a variable [Debug]: Data: label pos=353
Capuche replied to dikapramantya's question in Scripting Support
Can you post your npc on pastebin *then post the link here http://pastebin.com/ I can't deal with your NPC in spoil -
/* CREATE TABLE IF NOT EXISTS `vip_silver` ( `account_id` int(11) unsigned NOT NULL default '0', `account_name` varchar(255) NOT NULL default 'NULL', `start_date` datetime NOT NULL default '0000-00-00 00:00:00', `end_date` datetime NOT NULL default '0000-00-00 00:00:00', `status` varchar(255) NOT NULL DEFAULT 'NULL', PRIMARY KEY (`account_id`) ) ENGINE=MyISAM; ALTER table `login` add column account_type varchar(255) NOT NULL default 'NULL' after `birthdate`, add index (account_type); */ - script vipsystem8806azwan -1,{ set $VIPs_SilverAccLevel,1; // Account Level assigned for VIP Silver * set $VIPs_SilverExpRate,50; // VIP Silver Exp Boost in % ( 1 = 1% ) * set $VIPs_SilverItemRate,10; // VIP Silver Item Drop Boost in % ( 1 = 1% ) * set $VIPs_AdminGmLevel,99; // Define GM Level enabled to add, list and * // remove VIP entries. Any GM with access le- * // vel equal or higher than this will be able * // to manage VIP Accounts. * // ******************************************************************** // // Actions and checks when player logs in about his/her account type status. OnPCLoginEvent: // Obtain account data query_sql "SELECT `account_type` FROM login WHERE `account_id` = '"+ getcharid(3) +"'",.@accountType$; // First of all deACTIVEte all VIP benefits sc_end sc_expboost; sc_end sc_itemboost; // If account type is PLATINUM if( .@accountType$ != "SILVER" ) end; query_sql "SELECT DATE_FORMAT(`end_date`, '%Y %m %d') FROM vip_silver WHERE `account_id` = '"+ getcharid(3) +"'", .@expirationDate$; // Get expiration date* if ( gettimestr("%Y %m %d",21) >= .@expirationDate$ ) callsub terminateVip, "vip_silver", getcharid(3); else { sc_start sc_expboost,1000*60*60*24,$VIPs_PlatinumExpRate; sc_start sc_itemboost,1000*60*60*24,$VIPs_PlatinumItemRate; sc_start SC_CP_WEAPON,1000*60*60*24,$VIPs_PlatinumItemRate; sc_start SC_CP_SHIELD,1000*60*60*24,$VIPs_PlatinumItemRate; sc_start SC_CP_ARMOR,1000*60*60*24,$VIPs_PlatinumItemRate; sc_start SC_CP_HELM,1000*60*60*24,$VIPs_PlatinumItemRate; } message strcharinfo(0), "Expiration date: "+ .@expirationDate$ ; end; OnWhisperGlobal: if ( getgmlevel() < $VIPs_AdminGmLevel ) end; On_gm: set .@npcName$,"[VIP System v3.0]"; mes .@npcName$; mes "Welcome, "+ strcharinfo(0) +"!"; mes "What can I do for you today?"; next; if( select( "VIP Silver Menu", "Quit") -1 ) close; mes .@npcName$; mes "[VIP SILVER]"; switch( select( "Add/Extend Account", "Delete Account", "List Accounts", "Back" ) ) { case 1: // Add/Extend mes "Type the Account Name"; mes "you wish to add."; input .@accountName$; next; mes .@npcName$; mes "[VIP SILVER]"; mes "Type the number of days you"; mes "wish to add to the account's VIP"; mes "status."; next; mes .@npcName$; mes "[VIP SILVER]"; input .@silverDays; // Fetch account's ID using the name of the account previously typed. query_sql "SELECT `account_id`FROM login WHERE `userid` = '"+.@accountName$+"'", .@accountId; mes "Identifying account: "+ .@accountName$ +"."; sleep2 rand( 100,2000 ); // Looks like it's working on something if ( !.@accountId ) // Let's verify if the entered account exists or GM is just high... { mes "ERROR: Couldn't find account."; mes "Verify if you dind't make a typo."; close; } else { // Now lets check if the account is already 'vip_silver' query_sql "SELECT `account_id` FROM vip_silver WHERE `account_id` = '"+.@accountId+"'", .@silverAccountId; if ( .@silverAccountId == .@accountId ) // If the account is already VIP we will update instead of inserting a new entry. { mes "Account ID: "+ .@silverAccountId +"."; sleep2 rand( 100,850 ); query_sql "UPDATE vip_silver SET end_date = DATE_ADD(end_date, INTERVAL '"+ .@silverDays +"' DAY) WHERE account_id = '"+ .@silverAccountId +"'"; query_sql "UPDATE vip_silver SET `status` = 'ACTIVE' WHERE account_id = '"+ .@silverAccountId +"'"; query_sql "UPDATE login SET `account_type` = 'SILVER' WHERE account_id = '"+ .@silverAccountId +"'"; mes "Account "+ .@silverAccountId +" updated"; mes "successfuly!"; close; } else // If the account is not already a VIP Silver one, add a new entry. { mes "Account ID: "+ .@accountId +"."; sleep2 rand( 100,850 ); query_sql "INSERT INTO vip_silver (`account_id`,`account_name`,`start_date`,`end_date`,`status`) VALUES ("+ .@accountId +",'"+ .@accountName$ +"','"+ gettimestr("%Y-%m-%d",21) +"','"+ gettimestr("%Y-%m-%d",21) +"','ACTIVE')"; sleep2 100; query_sql "UPDATE vip_silver SET end_date = DATE_ADD(start_date, INTERVAL "+ .@silverDays +" DAY) WHERE account_id = '"+.@accountId+"'"; query_sql "UPDATE `login` SET `group_id` = "+ $VIPs_SilverAccLevel +" WHERE `account_id` = '"+ .@accountId +"'"; query_sql "UPDATE login SET `account_type` = 'SILVER' WHERE account_id = '"+ .@accountId +"'"; mes "Account "+ .@accountId +" added"; mes "successfuly!"; close; } } close; case 2: // Delete query_sql "SELECT account_name FROM vip_silver LIMIT 127", .@silverList_1$; // query_sql can only display the first 128 lines of a table. This is so sad if ( !getarraysize( .@silverList_1$ ) ) { mes "There are currently no VIP"; mes "Silver accounts."; close; } else { mes "Select the account you wish "; mes "to remove from VIP system."; set .@j$, "1. "+ .@silverList_1$; for (set .@i,1; .@i < getarraysize(.@silverList_1$); set .@i, .@i + 1 ) set .@j$, .@j$ +":"+ ( .@i+1 ) +". "+ .@silverList_1$[.@i]; set .@j$, .@j$ +":Cancel"; next; mes .@npcName$; mes "[VIP SILVER]"; set .@menu, select(.@j$) -1; if ( .@menu == getarraysize(.@silverList_1$) ) { next; goto On_gm; } mes "Are you sure you want to remove the account "; mes .@silverList_1$[.@menu] +" ?"; if ( select( "Yes:No" ) == 2 ) { next; goto On_gm; } query_sql "UPDATE `login` SET `group_id` = 0 WHERE `userid` = '"+.@silverList_1$[.@menu]+"'"; query_sql "DELETE FROM vip_silver WHERE account_name = '"+.@silverList_1$[.@menu]+"'"; query_sql "ALTER TABLE vip_silver AUTO_INCREMENT = 1"; query_sql "UPDATE `login` SET `account_type` = 'NORMAL' WHERE `userid` = '"+.@silverList_1$[.@menu]+"'"; mes "VIP Silver account successfuly deleted!."; close; } close; case 3: // List mes "VIP Silver accounts list:"; // List up to 127 vip accounts query_sql "SELECT `account_name` FROM vip_silver LIMIT 127", .@silverList_1$; for (set .@i,0; .@i < getarraysize(.@silverList_1$); set .@i, .@i + 1) mes (.@i+1)+". "+.@silverList_1$[.@i]; // You may want to add a next; command and a new LIMIT 128,255 sentence, in case you need to store and display more than 128 VIP accounts. close; case 4: // Back goto On_gm; } terminateVip: // This function removes any VIP status from the specified account set .@dbTableName$, getarg(0); // Table name set .@accountId, getarg(1); // Account ID query_sql "UPDATE `login` SET `group_id` = 0 WHERE account_id = "+.@accountId+"'"; // Set account level to 0 query_sql "DELETE FROM "+ .@dbTableName$ +" WHERE account_id = '"+.@accountId+"'"; // Delete VIP table entry query_sql "ALTER TABLE "+ .@dbTableName$ +" AUTO_INCREMENT = 1"; // Tries to reset id count query_sql "UPDATE `login` SET `account_type` = 'NORMAL' WHERE `account_id` = '"+ .@accountId +"'"; // Set account type to "NORMAL" in 'login' table message strcharinfo(0), "Account return to normal."; end; } function script VIP_upgrade { if( select( "^777777~ Upgrade my account", "~ Not today^000000" ) -1 ) close; set .@acc_id, getcharid(3) ; query_sql "SELECT `userid`, `account_type` FROM `login` WHERE `account_id` = '"+ .@acc_id +"'", .@user_id$, .@acc_type$; // dispbottom .@user_id$+" "+.@acc_id; if ( .@acc_type$ == "SILVER" ) query_sql "UPDATE vip_silver SET end_date = DATE_ADD(end_date, INTERVAL "+ getarg(0) +" DAY), `status` = 'ACTIVE' WHERE account_id = '"+ .@acc_id +"'"; else { query_sql "INSERT INTO vip_silver (`account_id`,`account_name`,`start_date`,`end_date`,`status`) VALUES ("+ .@acc_id +",'"+ escape_sql( .@user_id$ ) +"','"+gettimestr("%Y-%m-%d",21)+"', ( DATE_ADD('"+ gettimestr("%Y-%m-%d",21) +"', INTERVAL "+ getarg(0) +" DAY) ), 'ACTIVE') "; query_sql "UPDATE `login` SET `group_id` = "+ $VIPs_SilverAccLevel +" WHERE `account_id` = '"+ .@acc_id +"'"; } query_sql "SELECT DATE_FORMAT(`end_date`, '%Y %M %d') FROM vip_silver WHERE `account_id` = '"+ .@acc_id +"'", .@exp_Date$; query_sql "UPDATE login SET `account_type` = 'SILVER' WHERE account_id = '"+ .@acc_id +"'"; message strcharinfo(0), "Account updated. Expiration : "+ .@exp_Date$; delitem getarg(1), 1; if( .@acc_type$ != "SILVER" ) { message strcharinfo(0), "You must relog."; sleep2 2000; if( playerattached() ) atcommand "@kick "+ strcharinfo(0); } close; } Just one account (Silver account)But I don't get what you want in this part If he use the item, the item would be delete ? 12703,Holy_Egg_2,Holy Egg,11,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc( "VIP_upgrade", 7, 12703 ); /* 7 days, item ID to delete */ },{},{} EDIT : Fix a typo
-
script:set: not a variable [Debug]: Data: label pos=353
Capuche replied to dikapramantya's question in Scripting Support
mes "Begini beli, saya disuruh ama tante valkyrie menemui anda, agar bisa mendapatkan suatu barang untuk menambah kekuatan novice saya"; 2-3 errors like that, search them It must be one 1 line mes "Begini beli, saya disuruh ama tante valkyrie menemui anda, agar bisa mendapatkan suatu barang untuk menambah kekuatan novice saya"; -
AnnieRuru made too many battleground (ahah) Which one ? Show the script
-
if ( titu01 ) announce "xxxxxxxxxxxxxxxxxxxxxxxx",0; else if ( titu02 ) announce "yyyyyyyyyyyyyyyyyyyyyyyyyyyy",0; end;
-
Intel® Core i3 CPU @2.53GHz (4 CPUs) 4096MB RAM