-
Posts
2044 -
Joined
-
Last visited
-
Days Won
51
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by AnnieRuru
-
OnPCStatCalcEvent_17043.patch - script kjdhfkdjfhksh -1,{ OnPCStatCalcEvent: if ( strcharinfo(3) == "pvp_y_2-2" ) { // trigger in the map if ( @back_sliding_tmp ) // if already save the variable skill 150, 1, 0; // gives skills else { // or if just warp in the map if ( getskilllv(150) ) end; // check is it a thief class already learned the skill ? @back_sliding_tmp = 1; // if it is not then save the variables ... skill 150, 1, 0; // and gives the skills } } else if ( @back_sliding_tmp ) { // otherwise if the player warp to other map and the variable is still there @back_sliding_tmp = 0; // reset the variable skill 150, 0, 0; // and reset back the skill level } end; }
-
prontera,154,174,4 script kdfksdjfs 100,{ monster "this", -1,-1, "--ja--", 1002, 3, strnpcinfo(0)+"::OnPCEvent"; end; OnPCEvent: if ( mobcount( "this", strnpcinfo(0)+"::OnPCEvent" ) ) end; dispbottom "will happen next"; end; } though I usually using a variable to save the mobcount instead of using this script command though, more resource friendly prontera,154,174,4 script kdfksdjfs 100,{ monster "this", -1,-1, "--ja--", 1002, 3, strnpcinfo(0)+"::OnPCEvent"; .count += 3; end; OnPCEvent: .count--; if ( .count ) end; dispbottom "will happen next"; end; }
-
this kind of script can eats up quite some variable space as we only have 256 permanent player variable limitations if I'm doing this, I'll use this as a bit-masking to save more variable space prontera,157,173,5 script Login Settings 100,{ .@npcname$ = "["+ strnpcinfo(1) +"]"; // dispbottom atcommand_login +""; // debugging mes .@npcname$; mes "Hello, "+strcharinfo(0); mes "What setting do you want to change?"; next; for ( .@i = 0; .@i < .total; .@i++ ) .@menu$ = .@menu$ + .atname$[.@i] +"["+( ( atcommand_login & 1 << .@i )? "^00BB22On^000000" : "^FF2200Off^000000" )+"]:"; .@s = select( .@menu$ ) -1; mes .@npcname$; mes "Status: "+( ( atcommand_login & 1 << .@s )? "^00BB22On^000000" : "^FF2200Off^000000"); next; mes .@npcname$; if ( select( "I want to "+( ( atcommand_login & 1 << .@s )? "^FF2200disable^000000": "^00BB22enable^000000" )+" it", "Nothing" ) == 2 ) { mes "See ya."; close; } if ( atcommand_login & 1 << .@s ) { mes .atname$[.@s] +" is now ^FF2200Off^000000."; atcommand "@"+ .atcommand$[.@s] +" off"; } else { mes .atname$[.@s] +" is now ^00BB22On^000000."; atcommand "@"+ .atcommand$[.@s] +( ( .@s == 1 )? " on": "" ); } atcommand_login = atcommand_login ^ 1 << .@s; close; OnPCLoginEvent: if ( !atcommand_login ) end; for ( .@i = 0; .@i < .total; .@i++ ) { if ( atcommand_login & 1 << .@i ) { atcommand "@"+ .atcommand$[.@i] +( ( .@i == 1 )? " on": "" ); dispbottom .atname$[.@i] +" is now On"; } } end; OnInit: setarray .atname$, "Autoloot", "Main Chat", "@NoAsk"; setarray .atcommand$, "autoloot", "main", "noask"; .total = 3; end; } also your script has a bug the main chat can only enable by @main on | off using just @main will ask for the user to input some strings in order to announce something
-
this script is very screw up =/ prontera,155,173,5 script kjdfhksjf 100,{ mes "you currently have "+ #cashpoints +" Cash points"; mes "and "+( .@skulls = countitem(7420) )+" skulls"; if ( .@skulls ) next; else close; if ( input ( .@amount, 1, .@skulls ) ) { mes "invalid amount"; close; } delitem 7420, .@amount; #cashpoints = #cashpoints + .@amount *2; close; }
-
I can actually solve this topic however the method to solve this topic actually takes some time goddameit script is not an optimized script ... if I want to solve this topic, it also means I need to rewrite/replicate the script in my own scripting style however this time around, I'm currently training @Emistry to be able to write a party-vs-party/gvg script so ... try bump this topic again in 7 days time, and let Emistry able to challenge this kind of script ( I have been teaching him how to do this in PMs ) if he couldn't able to make it by then, then I'll try to solve this one personally btw, please be a little bit more patience, Olrox doesn't make a map for you in 1 day, there are certain stuffs takes days/weeks to write =/
-
want to say the exact same thing like he did our current SVN has already gone over 17000, but that one is only 14xxx are you using eathena .. ? or rathena ? if using eathena, perhaps it might be still compatible with your server but if using rathena, somebody here needs to update it to make it compatible with latest rathena revision
-
http://www.eathena.w...dpost&p=1043964 really brings back memories ... prontera,151,180,6 script +100 Refiner 100,{ for ( .@i = 1; .@i <= 10; .@i++ ) { if ( getequipisequiped(.@i) ) { .@id = getequipid(.@i); .@ref = getequiprefinerycnt(.@i); .@card1 = getequipcardid( .@i, 0 ); .@card2 = getequipcardid( .@i, 1 ); .@card3 = getequipcardid( .@i, 2 ); .@card4 = getequipcardid( .@i, 3 ); delitem2 .@id, 1, 1, .@ref, 0, .@card1, .@card2, .@card3, .@card4; getitem2 .@id, 1, 1, 101, 0, .@card1, .@card2, .@card3, .@card4; equip .@id; } } end; }
-
ahhh .... of course I remember .... http://www.eathena.w...howtopic=271054 so ... I'm also wondering we should continue this ... ? bring back the memories lol EDIT: after you try that script, reply/quote again what are the things ... kinda don't feel like ... looking at that topic better we start all over again =/
-
nope, that script should be able to spawn monsters as many as possible as long as someone clicking on it btw, can you share out your mob controller patch ? I'm busying supporting more script related topics, not enough time to do source modifications =/
-
I also made pvp ladder script before by common theory, if the kill is 5, death is 1 kill ratio = 5/1 = 5 if the kill is 5, death is 0 kill ratio = 5/0 = error ... I think that line can just change into 1 change callfunc("KDR_Calc", Kill, Death) into callfunc("KDR_Calc", Kill, ( Death )? Death : 1 ) I see there's 2 part of this
-
dunno why but if you couldn't understand Brian script ... makes me feels like you need a little bit spoon feed already /* // creating table create table event ( id int(11) primary key auto_increment, name varchar(23), key (name) ) engine = myisam; // debugging script in test server insert into event select null, name from `char`; // show the table select * from event; */ prontera,152,179,4 script Event Names 814,{ query_sql "select count(1) from event", .@total; while (1) { mes "Congratulations to these players !"; mes "Total "+ .@total +" players, Page no. "+( .@current_page +1 )+" ="; .@nb = query_sql( "select name from event order by name limit "+ .page +" offset "+ .page * .@current_page, .@name$ ); for ( .@i = 0; .@i < .@nb; .@i++ ) mes .@name$[.@i]; next; if ( select ( "Next Page", "Previous Page" ) == 1 ) { if ( .page * ( .@current_page +1 ) < .@total ) .@current_page++; else { mes "the end of the page"; close; } } else { if ( .@current_page ) .@current_page--; else { mes "this is the 1st page"; close; } } } close; OnInit: .page = 2; // display 2 players per page end; } edit: forgot to index the `name` field if you don't understand what are the commands that I've used in this script, always feel free to ask and criticize my methods
-
http://rathena.org/board/topic/73366-walking-monster/#entry151732 btw ... I'm also writing a dota script ... LOL !! wanna join together ? xD oh and no paid service ...
-
三千七百五十七 PS: please use google translator
-
I believe your request means your server needs to equip Harmony ... rathena doesn't have this feature http://rathena.org/board/topic/74823-limit-chars-per-ip-or-mac-but-no-limit-on-autotrade-merchants/#entry159618
-
// callfunc( "instance__", "<instance name>", <alive timeout>, <idle timeout>, "<instance map 1>" {, <instance map 2>, <instance map 3> ... } ) function script instance__ { if ( ( .@ins = instance_create( getarg(0), getcharid(1) ) ) < 0 ) return .@ins; .@i = 3; while ( getarg( .@i, "" ) != "" ) { if ( instance_attachmap( getarg(.@i), .@ins ) == "" ) { instance_destroy .@ins; return -5; } .@i++; } if ( getarg(1) || getarg(2) ) instance_set_timeout getarg(1), getarg(2), .@ins; instance_init .@ins; instance_attach .@ins; return .@ins; } prontera,156,185,5 script Devil Square 100,{ if ( !getcharid(1) ) { mes "you need a party to get in"; close; } if ( instance_id(1) && getstrlen( has_instance("1@cash") ) ) { warp has_instance("1@cash"), 310,215; end; } if ( instance_id(1) ) { mes "your party is currently running an instance"; close; } if ( callfunc( "instance__", "test", 0, 0, "1@cash" ) < 0 ) { mes "failed to create instance"; close; } warp "1@cash", 310,215; donpcevent instance_npcname("test_instance")+"::Onstart"; close; } 1@cash,0,0,0 script test_instance -1,{ Onstart: monster "1@cash", 310,215, "--ja--", 1002, 1, instance_npcname("test_instance")+"::Onstart"; end; }
-
Need help in NPC that detect nearby skill use
AnnieRuru replied to leechy's question in Script Requests
kinda feel lazy to write a working script atm but this is only possible to be done using OnPCUseSkillEvent means need source modification OnPCUseSkillEvent: if ( @useskillid == <1st aid> ) { getmapxy .@map$, .@x, .@y, 0; if ( .@map$ == ... .@x > ... .@x < .. .@y > ... .@y < ... ) npctalk "hey there"; end; -
Farming PvP points by killing in pvp problem.
AnnieRuru replied to Currently's question in Script Requests
You can farm kills logging in and out, then. ahh ... that's because its from my experiences from working on a live server ...because every pvp maps has nosave mapflag to prevent them from ambushing other players by logging-out-and-in ... it has become an instinct to me that every event script has nowarp/nowarpto/noteleport/nosave mapflags =/ PS: and ... I usually never use permanent player variable in an event script ... I guess this one is an exception ... -
prontera,155,175,5 script Item Maker 123,{ mes "[item Maker]"; mes "Hi, i'll create items for you..."; next; mes "Input item number:"; next; input .@item_id; if ( getitemname(.@item_id) == "null" ) { mes "invalid item ID"; close; } if ( .@item_id == 1599 || .@item_id == 2199 ) { mes "you cannot ask for this item"; close; } mes "Item -> "+ getitemname(.@item_id); mes "Amount?"; next; if ( input( .@amount, 1, 30000 ) ) { mes "invalid amount"; close; } if ( !checkweight( .@item_id, .@amount ) ) { // I always forgot about checkweight .... mes "you can carry this much items"; close; } mes "Here you go"; getitem .@item_id, .@amount; close; }
-
Farming PvP points by killing in pvp problem.
AnnieRuru replied to Currently's question in Script Requests
I think the last_kill variable can be change into a temporary player variable ... this killedrid is not a permanent player variable, its a constant http://www.eathena.ws/board/index.php?autocom=bugtracker&showbug=3249 -
there's a bug in this script where if the player has leave, and come in back, the timer will execute twice if( select("Enter for 15 minutes.:Cancel") == 1 ){ deltimer strnpcinfo(0)+"::OnKick"; // <---- add this addtimer ( 15 * 60000 ),strnpcinfo(0)+"::OnKick"; warp .map$,0,0; }
-
this is one of the best script request I've seen a detailed description, concrete winning conditions, map provided, plus a screenshot I give you a rep up for doing a good example of how to properly making a request hmm .. but need more clarification on certain parts you mean ALL enemies around the emperium will get damage ?will it affected by VIT/DEF ? seems like need to use OnTouch or while(!getmapxy) trick to solve this tricky part no such thing like this in ROthe view area of monster/player is decided by "view_area" setting and this is global the range of monster attack is decided from the "range" field in mob_db table 5x5 ... it means it gives some advantage to those range attackers like gunslinger, archers because their range is 15also, usually emperium is a plant type monster to prevent some imba player own it ( it creates a certain strategy to those players, 1 assassin cross sneak behind and equip imba equipments + edp own emperium in short amount of time ) this one kinda interested ... like to know how much the rate this monster going to heal around
-
wait a moment, I'm using rathena and this script works in rathena can you try add this getmapxy .@map$, .@x, .@y, 1; debugmes "#"+ .@map$ +"#"; // <--- this and tells me whats' the result ? [Debug]: script debug : 0 110000180 : ## [Debug]: script debug : 0 110000184 : #06guild_03# [Debug]: script debug : 0 110000187 : #06guild_06# [Debug]: script debug : 0 110000185 : #06guild_04# [Debug]: script debug : 0 110000186 : #06guild_05# [Debug]: script debug : 0 110000182 : #06guild_01# [Debug]: script debug : 0 110000183 : #06guild_02# [Debug]: script debug : 0 110000188 : #06guild_07# [Debug]: script debug : 0 110000189 : #06guild_08#
-
antonio has been used by Joseph at post#62 Alice
-
@AnnieRuru
-
yeah lol you are right - script jfksdhfkjs -1,{ OnNPCKillEvent: if ( getmonsterinfo( killedrid, MOB_MVPEXP ) && rand(100) < 40 ) { if ( getcharid(1) ) { getpartymember getcharid(1), 1; getpartymember getcharid(1), 2; for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { // what happens if someone in the party member is offline =/ .@partymemberaid[.@c] = $@partymemberaid[.@i]; .@c++; } } getitem 607, 3, .@partymemberaid[ rand( .@c ) ]; announce "Party ["+ strcharinfo(1) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), 0; } else { getitem 607, 3; announce "Player ["+ strcharinfo(0) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), 0; } } end; }