-
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
-
Maybe this ? case 16: callsub OnBuyItem,7445,700,7447,300,2,674,2,7227,10,10000000,"Zeny",27103,1; There is an error in this line
-
Can I request Script every 5min log in BC online status
Capuche replied to Famous's question in Script Requests
OnMinute05: He want every 5 min not at 5 min (I think) set .@h, query_sql("SELECT `online` FROM `char` WHERE `online` = '1';"); Use the command Getusers - script sample -1,{ OnInit: while(1) { sleep 1000 * 60 * 5; // delay = 5 mins .@count = getusers(1); announce "There "+ ( .@count > 1 ? "are" : "is" ) +" currently "+ .@count +" "+ ( .@count > 1 ? "people" : "person" ) +" online!",0; } } -
The patch OnPCStatCalcEvent run the items scripts in the npc. These items scripts will be permanents. 1/ patch the file http://rathena.org/board/index.php?app=core&module=attach§ion=attach&attach_id=5315 in the src files and recompile 2/ add the script npc in npc folder 3/ add your items scripts in the npc
-
- script ghjklkjh -1,{ OnPCStatCalcEvent: if( BaseClass == Job_Mage || BaseClass == Job_Gunslinger ) { bonus bMaxHPrate,20; bonus bFlee,50; } else if( Class == 4008 || Class == 4014 || BaseClass == Job_Merchant ) { bonus3 bAutoSpellWhenHit,LK_PARRYING,1,100; } // etc.. add as your content end; } Patch OnPCStatCalcEvent http://rathena.org/board/index.php?app=core&module=attach§ion=attach&attach_id=5315 from this topic
-
- script rtyuiol -1,{ OnPCKillEvent: if( strcharinfo(3) == "prontera" ) percentheal 100,100; end; } If you can't wait an answer learn how to do it, this script is easy
-
Can I request Script every 5min log in BC online status
Capuche replied to Famous's question in Script Requests
Can I request more informations about your request ? BC = ? -
//===== rAthena Script ======================================= //= Stylist //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.1 //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= //= Changes your hair style, hair color, and cloth color. //===== Additional Comments: ================================= //= 1.1 Switched to 'getbattleflag', credits to Saithis. [Euphy] //============================================================ prontera,170,180,1 script Stylist#custom_stylist 122,{ setarray .@Styles[1],getbattleflag("max_cloth_color"),getbattleflag("max_hair_style"),getbattleflag("max_hair_color"); setarray .@Look[1],7,1,6; set .@s, select(" ~ Cloth color: ~ Hairstyle: ~ Hair color"); set .@Revert, getlook(.@Look[.@s]); set .@Style,1; while(1) { setlook .@Look[.@s], .@Style; message strcharinfo(0),"This is style #"+.@Style+"."; if( .@s_menu == 2 ) { set .@menu$, " ~ Previous (^0055FF"+((.@Style!=1)?.@Style-1:.@Styles[.@s])+"^000000): ~ Next (^0055FF"+((.@Style!=.@Styles[.@s])?.@Style+1:1)+"^000000): ~ Jump to...: ~ Revert to original (^0055FF"+.@Revert+"^000000)"; set .@s_menu, select(.@menu$); if( .@s_menu == 2 ) set .@s_menu, 1; else if( .@s_menu == 1 ) set .@s_menu, 2; } else { set .@menu$, " ~ Next (^0055FF"+((.@Style!=.@Styles[.@s])?.@Style+1:1)+"^000000): ~ Previous (^0055FF"+((.@Style!=1)?.@Style-1:.@Styles[.@s])+"^000000): ~ Jump to...: ~ Revert to original (^0055FF"+.@Revert+"^000000)"; set .@s_menu, select(.@menu$); } switch(.@s_menu) { case 1: set .@Style, ((.@Style!=.@Styles[.@s])?.@Style+1:1); break; case 2: set .@Style, ((.@Style!=1)?.@Style-1:.@Styles[.@s]); break; case 3: message strcharinfo(0),"Choose a style between 1 - "+.@Styles[.@s]+"."; input .@Style,0,.@Styles[.@s]; if (!.@Style) set .@Style, rand(1,.@Styles[.@s]); break; case 4: set .@Style, .@Revert; setlook .@Look[.@s], .@Revert; break; } } }
-
bonus bStr, 30; You can use an item script with the patch OnPCStatCalcEvent Read this topic
-
how to call a script once the character jump from the same map
Capuche replied to Jayzy's question in Scripting Support
Teleporting around on the same map will trigger OnPCLoadMapEvent again (I test it ) You can also use trunk/doc/whisper_sys.txt -
prontera,150,148,5 script ghjklmkjh 58,{ getmapxy .@map$, .@x, .@y, 0; if( !getcharid(1) ) {// must be in a party mes "you aren't in a party. GOood bye."; close; } else if( distance( .@x, .@y, .x_npc, .y_npc ) > .minimal_distance ) {// the player must be near to the npc mes "come near to me."; close; } getpartymember getcharid(1), 0;// get party member's name if( 2 > $@partymembercount ) { mes "you are alone in the party !"; close; } while( .@i < $@partymembercount ) { if( getcharid( 0,$@partymembername$[.@i] ) && $@partymembername$[.@i] != strcharinfo(0) ) {// is online ? getmapxy .@map$, .@x, .@y, 0, $@partymembername$[.@i];// = x, y, map name if( distance( .@x, .@y, .x_npc, .y_npc ) <= .minimal_distance && .@map$ == .map_npc$ ) break; } set .@i, .@i + 1; } if( .@i == $@partymembercount )// none of them were close mes "another party member must be very close to me."; else mes "2 players of the same party are close to me. it's working !"; close; OnInit: getmapxy .map_npc$, .x_npc, .y_npc, 1; set .minimal_distance, 5; end; } You're right, take this one
-
There was a mistake in killmonsterall, sorry //======================================== // Auto Cleaner ========================== //======================================== - script DBArenaCleaner -1,{ OnPCLoadMapEvent: if( !compare( .map_checker$, strcharinfo(3) ) ) end; // check if a player is on a map in the setting .@m$ = strcharinfo(3); if( getd( "."+ .@m$ ) ) end; // check if already a loop for the map setd "."+ .@m$, 1; while( .timer_clean ) { sleep 5000; if( getmapusers( .@m$ ) ) .@count = 0; else { .@count++; if( .@count == .timer_clean * 12 ) goto L_clean; } } L_clean: setd "."+ .@m$, 0; killmonsterall .@m$; end; OnInit: // setarray .map_mvp$, "prontera","geffen","payon"; setarray .map_mvp$, "dbarena1","dbarena2","dbarena3","dbarena4","dbarena5"; .map_checker$ = implode( .map_mvp$, "|" ); for( ; .@i < getarraysize( .map_mvp$ ); .@i++ ) setmapflag .map_mvp$[.@i], mf_loadevent; .timer_clean = 5; // Hier stellt man den Timer ein. end; }
-
if (Class == 4019 || Class == 18) {
-
//Author-Script PHiLiP prontera,156,180,6 script DeathMatch 733,{ mes "[DeathMatch Warper]"; mes "Do you really wanna go to the Arena?"; switch(select("Yeah:Nope")) { case 1: announce "["+strcharinfo(0)+"] Has Enter DeathMatch Arena",bc_all,"0xFF0066",FW_BOLD,10; warp "pvp_n_1-5",0,0; end; case 2: mes "Ok,see you later."; close; } OnPCKillEvent: if( killedrid == getcharid(3) || strcharinfo(3) != "pvp_n_1-5" ) end; announce strcharinfo(0)+" has killed "+ rid2name( killedrid ), 0; set .@killed, killedrid; if( getd( "@timer_pvp"+ .@killed ) < gettimetick(2) ) { setd "@points_pvp"+ .@killed, 0; setd "@timer_pvp"+ .@killed, 0; } if( getd( "@points_pvp"+ .@killed ) > 2 ) { dispbottom "[Battle Points] : You already kill "+ rid2name( .@killed ) +" more than 3 times in the last 5 min."; if( attachrid( .@killed ) ) { sleep2 100; atcommand "@Alive"; warp strcharinfo(3),0,0; } end; } else if( getd( "@points_pvp"+ .@killed ) == 0 ) setd "@timer_pvp"+ .@killed, gettimetick(2) + .delay * 60; setd "@points_pvp"+ .@killed, getd( "@points_pvp"+ .@killed ) + 1; set #dmpoint, #dmpoint + 2; dispbottom "[Battle Points] : +2 Deathmatch Points, Current Points = "+#dmpoint; if( attachrid( .@killed ) ) { sleep2 100; atcommand "@Alive"; warp strcharinfo(3),0,0; set #dmpoint, #dmpoint - 1; dispbottom "[Battle Points] :-1 Deathmatch Points, Current Points = "+#dmpoint; } end; OnInit: set .delay, 5; // 5 mins end; } // ----------- Heal Buff Repair ----------- pvp_n_1-5,96,69,5 script Healer 936,{ if(TimeHealed > gettimetick(2)) { mes "[Healer]"; mes "I am sorry, but I am not a robot."; mes "I am still exhausted from the last time I healed you."; close; } sleep2 100; skilleffect 34,0; sc_start SC_BLESSING,300000,10; skilleffect 29,0; sc_start SC_INCREASEAGI,300000,10; percentheal 100,100; emotion e_no1; set TimeHealed, gettimetick(2) + 10; while (getbrokenid(1)) { repair(1); set .@a, .@a +1; } if (.@a) dispbottom .@a + " items repaired."; end; } // --------------- Exit --------------------- pvp_n_1-5,103,69,5 script Exit 902,{ warp "prontera.gat" ,155,176; } // --------------Enter/exit from heaker---------- pvp_n_1-5,99,83,2 script Enter 964,{ warp "pvp_n_1-5" ,99,66; } pvp_n_1-5,99,73,5 script Back To Arena 964,{ warp "pvp_n_1-5" ,0,0; } // --------------- Wall --------------------- pvp_n_1-5,103,60,5 script wall -1,{ OnInit: setcell "pvp_n_1-5",101,62,98,82,cell_walkable,0; end; } //mapflags pvp_n_1-5 mapflag pvp pvp_n_1-5 mapflag nosave pvp_n_1-5 mapflag noteleport pvp_n_1-5 mapflag nowarpto pvp_n_1-5 mapflag nowarp pvp_n_1-5 mapflag nogo pvp_n_1-5 mapflag nobranch = for eA
-
@williamII My apologies I misread the script.
-
hmm that must be coz you don't change it in the VIP_upgrade function too set .@bronze_AccLvl, 0; // VIP bronze Account Level set .@silver_AccLvl, 0; // silver set .@gold_AccLvl, 1; // gold Sorry I sound just a little bit of a skinflint about permanents variables hmm some questions 3 items, one item to upgrade each vip type : do you want to restrict the upgrade ? Example : An account's player is normal, he owns an item to upgrade his account to silver. - The upgrade is restricted : he can't upgrade his account to silver, he must upgrade his account to bronze with an item upgrade bronze before. - Not restricted : his account up to silver type
-
You don't use rA.. try this prontera,150,148,5 script ghjklmkjh 58,{ getmapxy .@map$, .@x, .@y, 0; if( !getcharid(1) ) {// must be in a party mes "you aren't in a party. GOood bye."; close; } else if( distance( .@x, .@y, .x_npc, .y_npc ) > .minimal_distance ) {// the player must be near to the npc mes "come near to me."; close; } getpartymember getcharid(1), 0;// get party member's name if( 2 > $@partymembercount ) { mes "you are alone in the party !"; close; } while( .@i < $@partymembercount ) { if( getcharid( 0,$@partymembername$[.@i] ) ) {// is online ? getmapxy .@map$, .@x, .@y, 0, $@partymembername$[.@i];// = x, y, map name if( distance( .@x, .@y, .x_npc, .y_npc ) <= .minimal_distance && .@map$ == .map_npc$ ) break; } set .@i, .@i + 1; } if( .@i == $@partymembercount )// none of them were close mes "another party member must be very close to me."; else mes "2 players of the same party are close to me. it's working !"; close; OnInit: getmapxy .map_npc$, .x_npc, .y_npc, 1; set .minimal_distance, 5; end; }
-
possible. You can test replacing in the script all account_type by account_type_vip then load in mysql ALTER table `login` add column account_type_vip varchar(255) NOT NULL default 'NULL' after `birthdate`, add index (account_type_vip); I don't find the answer of this problem.. it works fine on my local
-
prontera,150,148,5 script ghjklmkjh 58,{ getmapxy .@map$, .@x, .@y, 0; if( !getcharid(1) ) {// must be in a party mes "you aren't in a party. GOood bye."; close; } else if( distance( .@x, .@y, .x_npc, .y_npc ) > .minimal_distance ) {// the player must be near to the npc mes "come near to me."; close; } getpartymember getcharid(1), 0;// get party member's name if( !instance_check_party( getcharid(1),2 ) ) {// check also if other members are online - stop before the loop mes "you are alone in the party !"; close; } while( .@i < $@partymembercount ) { if( getcharid( 0,$@partymembername$[.@i] ) ) {// is online ? getmapxy .@map$, .@x, .@y, 0, $@partymembername$[.@i];// = x, y, map name if( distance( .@x, .@y, .x_npc, .y_npc ) <= .minimal_distance && .@map$ == .map_npc$ ) break; } .@i++; } if( .@i == $@partymembercount )// none of them were close mes "another party member must be very close to me."; else mes "2 players of the same party are close to me. it's working !"; close; OnInit: getmapxy .map_npc$, .x_npc, .y_npc, 1; .minimal_distance = 5; end; }
-
double click announcer name to become the whisper target
Capuche replied to QQfoolsorellina's question in Script Requests
I don't get what you want to do Something like ? you click one time on the npc, it broadcast an announce for all, double click and it broadcast an announce just for the player ? prontera,155,155,5 script dfhnnn 56,{ @ann_type = !@ann_type; announce strcharinfo(0) +": gnagna "+ @ann_type, ( @ann_type ? bc_all : bc_self ), 0xff0000; end; } -
It's an answer for your request : OnInit: set .item_req, 20000;// item ID required set .item_num, 1;
-
It's already in the Bindatcmd btw it seems you didn't understand the way of using this command. Not @bindatcmd <"enter anything here"> - script atcmd_example -1,{ OnInit: bindatcmd "test",strnpcinfo(3)+"::OnAtcommand"; end; OnAtcommand: specialeffect2 338; end; } for @test command
-
I try with eA 15229 but I can reproduce your error - one mistake is fixed about GM level http://pastebin.com/raw.php?i=vGTQPyuX Try to truncate the account_type column and the vip table and re-test UPDATE `login` SET `account_type` = 'NULL'; TRUNCATE `vip_bronze`; TRUNCATE `vip_gold`; TRUNCATE `vip_silver`; I will do it after the fix
-
If you mean 300 Vit = 100% Anti Stun, check conf/battle/status.conf
-
can I request script GUILD online member check
Capuche replied to Famous's question in Script Requests
prontera,155,155,5 script Guild manager 56,{ //- Limit 128 guild names L_list: // Delete variables // ---------------- .@m = 0; .@evil$ = .@good$ = .@cast_owned$ = ""; setarray .@var$, ".@guild_id", ".@name$", ".@master$", ".@guild_lv", ".@connect_member", ".@max_member", ".@name_m$", ".@castle_id", ".@opposition", ".@name_alli$"; for( .@i = 0; .@i < getarraysize( .@var$ ); .@i++ ) deletearray getd( .@var$[ .@i ] ), getarraysize( getd( .@var$[ .@i ] ) ); // Count guild // ----------- .@count = query_sql( "SELECT `guild_id`, `name`, `master`, `guild_lv` FROM `guild` ORDER BY `guild_id` ASC limit 128", .@guild_id, .@name$, .@master$, .@guild_lv ); mes .npc$; mes " "; mes "Total: ^FF0000"+ .@count +"^000000 guild"+ ( .@count -1 ? "s." : "." ); mes "Select a guild for more informations."; next; // Menu display name guild // ----------------------- .@s = select( implode( .@name$, ":" ) ) -1; .@c = query_sql( "SELECT `castle_id` FROM `guild_castle` WHERE `guild_id` = '"+ .@guild_id[ .@s ] +"'", .@castle_id ); for( .@i = 0; .@i < .@c; .@i++ ) .@cast_owned$ = .@cast_owned$ + .castle$[ .@castle_id[ .@i ] ] + ( .@i == .@c -1 ? "" : ", " ); .@size = query_sql( "SELECT `name` FROM `guild_member` WHERE `guild_id`= '"+ .@guild_id[ .@s ] +"' ORDER BY `position` ASC", .@name_m$ ); for( .@i = 0; .@i < .@size; .@i++ ) if( getcharid( 0,.@name_m$[ .@i ] ) ) .@m++; .@size_alli = query_sql( "SELECT `opposition`, `name` FROM `guild_alliance` WHERE `guild_id`= '"+ .@guild_id[ .@s ] +"'", .@opposition, .@name_alli$ ); for( .@i = 0; .@i < .@size_alli; .@i++ ) { if( .@opposition[.@i] ) .@good$ = .@good$ + ( getstrlen( .@good$ ) ? ", " : "" ) + .@name_alli$[.@i]; else .@evil$ = .@evil$ + ( getstrlen( .@evil$ ) ? ", " : "" ) + .@name_alli$[.@i]; } mes .npc$; mes "Guild name: ^FF0000"+ .@name$[ .@s ] +"^000000", "Master name: ^FFCC00"+ .@master$[ .@s ] +"^000000", "Guild lvl: ^FF00CC"+ .@guild_lv[ .@s ] +"^000000", "Members Online: ^0000FF"+ .@m +"^000000", "Castle owned: ^CC00CC"+ ( .@c ? .@cast_owned$ : "None" ) +"^000000", "Ally: ^CC00CC"+ ( getstrlen( .@evil$ ) ? .@evil$ : "None" ) +"^000000", "Antagonist: ^CC00CC"+ ( getstrlen( .@good$ ) ? .@good$ : "None" ) +"^000000"; // Menu members // ------------ switch( select( "~ ^777777Informations members^000000", "~ ^777777Cancel^000000", "~ ^777777Choose another guild^000000" ) ) { case 1: next; break; case 2: next; mes .npc$; mes " "; mes "See you soon ^-^"; close; case 3: next; goto L_list; } deletearray .@name_m$, getarraysize( .@name_m$ ); .@size = query_sql( "SELECT `name` FROM `guild_member` WHERE `guild_id`= '"+ .@guild_id[ .@s ] +"' ORDER BY `position` ASC", .@name_m$ ); mes .npc$; mes "Members of ^0000FF"+ .@name$[ .@s ] +"^000000 guild.", "- Red: currently ^FF0000offline^000000.", "- Green: currently ^00C957online^000000.", " "; for( .@i = 0; .@i < .@size; .@i++ ) mes "-> "+ ( getcharid( 0,.@name_m$[ .@i ] ) ? "^00C957" : "^FF0000" ) + .@name_m$[ .@i ] +"^000000"; next; goto L_list; OnInit: //- NPC name .npc$ = "[ "+ strnpcinfo(1) +" ]"; //-------------------------------------- deletearray .castle$, getarraysize( .castle$ ); //- prevent duplicate setarray .castle$, "Neuschwanstein", "Hohenschwangau", "Nuernberg", "Wuerzburg", "Rothenburg", "Repherion", "Eeyolbriggar", "Yesnelph", "Bergel", "Mersetzdeitz", "Bright Arbor", "Scarlet Palace", "Holy Shadow", "Sacred Altar", "Bamboo Grove Hill", "Kriemhild", "Swanhild", "Fadhgridh", "Skoegul", "Gondul", "Earth", "Air", "Water", "Fire", "Himinn", "Andlangr", "Viblainn", "Hljod", "Skidbladnir", "Mardol", "Cyr", "Horn", "Gefn", "Bandis"; end; } -
You don't need to touch the label