// return account_id of all online players within the specific coordinatesprontera,153,185,5 script AREA_coordinate 100,{ getmapxy .@map$, .@x, .@y, 0; detachrid; getmemberaid AREA, .@map$, .@x-1, .@y-1, .@x+1, .@y+1; for ( .@i = 0; .@i < $@onlinecount; .@i++ ) announce rid2name( $@onlineaid[.@i] ), bc_all; end;}..
why you need char_id instead of account_id ?
because of *warpchar ?
better just use *areawarp
I'm having a very tricky error here, sometimes (not always) the variable: $@arenamembersnum returns 0, but I'm sure it was to return a value greater than 0, as it is not a frequent mistake is playing hard to get, but it happens randomly, is there any way to fix this?
This plugin has outdated
Haru has already fixed queue iterator script command
this plugin is no longer needed
sample battleground script using queue iterator
http://upaste.me/ab3022385d0127b7f
outdated topics from eathena or rathena
this one is more update
Download: 1.5
plugin
-----------------------------------------
*createbgid , , , , ;
create a specific battleground ID, for the rest .... refer to doc
.red = createbgid( "guild_vs3", 13,50, strnpcinfo(0)+"::Onredout", strnpcinfo(0)+"::Onreddead" );.blue = createbgid( "guild_vs3", 86,50, strnpcinfo(0)+"::Onblueout", strnpcinfo(0)+"::Onbluedead" );.-----------------------------------------
*setbgid {, };
*setbgid {, };
player attached to the script will join the battleground team,
but if a player name ( or account ID ) is specify, will let that player join the battleground team
for debugging purposes
this command can return positive number ( > 0 ) if the function is successful
if it return negative :-
-1: the battleground team haven't create yet ... has to be create with createbgid
-2: the team already full, it reached MAX_BG_MEMBERS = 30 which can increase at srcmapbattleground.h
-3: player not found ... happens when the input is not online or not found
-5: the player already join the battleground ID that you specify
if the player has joined battleground ID 3, and you use setbgid 5;
this will force the player to leave battleground ID 3 and join battleground ID 5 without any notification
( player who same group will receive a message mention that "player xxx leaving battlefield" )
only when the player joined bg ID 9, and use setbgid 9; then only the command return -5
but the script will still continue running without posting any error, so don't worry
setbgid 0; is equal to *bg_leave;
and setbgid 0, "annie"; or setbgid 0, 2000000;
will make the player "annie" ( or account id 2000000 ) leave the battleground team without using *attachrid + *bg_leave
warpwaitingpc "guild_vs3", 0,0;for ( .@i = 0; .@i < $@warpwaitingpcnum; .@i++ )setbgid ( .@i % 2 )? .red : .blue, $@warpwaitingpc[.@i];.-----------------------------------------
*getbgusers ;
similar to getpartymember , 2; // <-- return account ID
this will create an array "$@arenamembers" holding all the player's account ID from the battleground team
and $@arenamembersnum is equal to bg_get_data(, 0), just like $@partymembercount
getbgusers .red;for ( .@i = 0; .@i < $@arenamembersnum; .@i++ )getitem 501, 1, $@arenamembers[.@i];.-----------------------------------------
sample script
http://upaste.me/7de710709dbb6fa17
example script for reference material
default battleground system using waitingroom, works in clean rathena/hercules
http://upaste.me/497010755d3295805
this script using this custom script commands
http://upaste.me/b2781075699b0f8d9
you can tell it really does make the script shorter