BG Queue: Draw Scenario Info

Ind

Development Administrator
Staff member
Messages
1,655
Points
113
As you may have heard I've been working on this http://herc.ws/board/topic/262-implement-new-battleground-queue-system/ and I expect to roll it out today, within a couple hours, Yommy has provided me with a hell lot of data and code on it (Thanks again <3), I'm just missing one piece of information, how are draws supposed to take place? there is a time limit on matches? (and then when it ends if score is equal, calls it a draw?)

Thank you
default_biggrin.png


 
Last edited by a moderator:
From the scripts, there is a time limit. And again from the scripts, when the score is the same it declares a draw.

 
oh i see o-o I added a maxDuration setting for each arena we can later modify when we find out the values.

sneak peek:

Code:
//====================================================//=       _   _                     _           //=      | | | |                   | |          //=      | |_| | ___ _ __ ___ _   _| | ___  ___ //=      |  _  |/ _  '__/ __| | | | |/ _ / __|//=      | | | |  __/ | | (__| |_| | |  __/__ //=      _| |_/___|_|  ___|__,_|_|___||___///=                                                  //=            [URL="http://herc.ws/board/"]http://herc.ws/board/[/URL]                        //====================================================//= Link~u! <description> <link to wiki/topic>battlegrounds: ({	/* character variable for global bg delay */	global_delay_var: "BG_Delay_Tick"	/* how many seconds to consider a player "afk" and kick him out? */	maximum_afk_seconds: 30		/* str used by the feature */	queue_invalid_name: "(Invalid Name)"	queue_individual_name: "Individual"	queue_party_name: "Party"	queue_guild_name: "Guild"		/* one can add as many as he wishes */	/* for custom ones, need to edit "lua files/entryqueue/entryqueuelist.lua" [Ind/Hercules] */	arenas: ({		name: "Tierra Gorge" //must match the name in client files		event: "Tierra_BG2::OnPlayerListReady"		minLevel: 80		maxLevel: 150		reward: {/* amount of badges awarded on each case */			win: 3			loss: 1			draw: 1		}		minPlayers: 6 /* minimum amount of players to start */		maxPlayers: 60 /* maximum amount of players */		minTeamPlayers: 6 /* minimum amount of team members required for a team (party or guild) to join */		delay_var: "Tierra_BG_Tick" /* npc variable name that will store the delay for this match */		maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */	},{		name: "Flavius" //must match the name in client files		event: "Flavius_BG1::OnPlayerListReady"		minLevel: 80		maxLevel: 150		reward: {/* amount of badges awarded on each case */			win: 9			loss: 3			draw: 3		}		minPlayers: 6 /* minimum amount of players to start */		maxPlayers: 60 /* maximum amount of players */		minTeamPlayers: 6 /* minimum amount of team members required for a team (party or guild) to join */		delay_var: "Flavius_BG_Tick" /* npc variable name that will store the delay for this match */		maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */	},{		name: "KVM (Level 80 and up)" //must match the name in client files		event: "KvM03_BG::OnPlayerListReady"		minLevel: 80		maxLevel: 150		reward: {/* amount of badges awarded on each case */			win: 5			loss: 1			draw: 1		}		minPlayers: 4 /* minimum amount of players to start */		maxPlayers: 60 /* maximum amount of players */		minTeamPlayers: 5 /* minimum amount of team members required for a team (party or guild) to join */		delay_var: "KVM_BG_Tick" /* npc variable name that will store the delay for this match */		maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */	},{		name: "KVM (Level 60~79)" //must match the name in client files		event: "KvM03_BG::OnPlayerListReady"		minLevel: 60		maxLevel: 79		reward: {/* amount of badges awarded on each case */			win: 2			loss: 0			draw: 1		}		minPlayers: 4 /* minimum amount of players to start */		maxPlayers: 60 /* maximum amount of players */		minTeamPlayers: 5 /* minimum amount of team members required for a team (party or guild) to join */		delay_var: "KVM_BG_Tick" /* npc variable name that will store the delay for this match */		maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */	},{		name: "KVM (Level 59 and below)" //must match the name in client files		event: "KvM03_BG::OnPlayerListReady"		minLevel: 1		maxLevel: 59		reward: {/* amount of badges awarded on each case */			win: 1			loss: 0			draw: 0		}		minPlayers: 4 /* minimum amount of players to start */		maxPlayers: 60 /* maximum amount of players */		minTeamPlayers: 5 /* minimum amount of team members required for a team (party or guild) to join */		delay_var: "KVM_BG_Tick" /* npc variable name that will store the delay for this match */		maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */	}	)})
 
Waiting for the release.....

 
this is quite taking longer than I expected, to show some movement/give you guys another sneak peek:

the upcoming universal queue script commands that the new battleground scripts will be using (can be used for anything else as well, e.g. custom events)

10 new script commands

  • queue()
  • creates a new queue instance, returns created queue id

set .@id,queue();


[*]queuesize(<queue_id>)

  • returns the amount of entries in queue instance of <queue_id>.
set .@length,queuesize(.@queue_id);


[*]queueadd(<queue_id>,<var_id>)

  • adds <var_id> to queue of <queue_id>, returns 1 if <var_id> is already present in the queue, 0 otherwise.
queueadd(.@queue_id,.@var_id);


[*]queueremove(<queue_id>,<var_id>)

  • removes <var_id> from queue of <queue_id>, returns 1 if <var_id> is not present in the queue, 0 otherwise.
queueremove(.@queue_id,.@var_id);


[*]queueopt(<queue_id>,<optionType>,{Optional <option val>})

  • modifies <queue_id>'s <optionType>, when <option val> is not present, <optionType> is removed from <queue_id>, when present it modifies <queue_id>'s <optionType> with the new <option val> value.

    Currently 3 options are available, HQO_OnDeath, HQO_OnLogout, HQO_OnMapChange (the constant names are not final).
queueopt(.@queue_id,HQO_OnDeath,"MyNPC::MyOnQueueMemberDeathEventName");It allows you to hook npc events to be triggered by specific actions that may happen to a player in the queue (when the queue in question is used for account ids)

[*]queuedel(<queue_id>)

  • deletes <queue_id> returns 1 when <queue_id> is not found, 0 otherwise.
queuedel(.@queue_id);


[*]queueiterator(<queue_id>)

  • creates a new queue iterator instance, a queue iterator is not a reference to a queue's actual members, it copies the queues members when initialized, this way you can loop through them even if you remove them from the queue
set .@it,queueiterator(.@queue_id);


[*]qicheck(<queue_iterator_id>)

  • checks whether there is a next member in the iterator's queue, 1 when it does, 0 otherwise.
qicheck(.@queue_iterator_id);


[*]qiget(<queue_iterator_id>)

  • obtains the next member in the iterator's queue, returns the next member's id or 0 when it doesnt exist.
for( set .@elem,qiget(.@queue_iterator_id); qicheck(.@queue_iterator_id); set .@elem,qiget(.@queue_iterator_id) )


[*]qiclear(<queue_iterator_id>)

  • deletes a queue iterator from memory, returns 1 when it fails, 0 otherwise.
qiclear(.@queue_iterator_id)



Sample Usage:

Code:
/* say create a queue */set .@id,queue();queueadd(.@id,getcharid(3));/* ... add as many entries ... (no limit) */if( queuesize(.@id) == 999 ) {	/* whatever */}/* anywhere in the code */set .@it,queueiterator(.@id);for( set .@elem,qiget(.@it); qicheck(.@it); set .@elem,qiget(.@it) ) {	//do anything e.g.	/* attachrid .@elem; */	/* mes "ID:"+.@elem; */}qiclear(.@it);
 
Absolutely, besides making battlegrounds' customisation easier, this also will make life easier for anyone wanting to make a custom team game/event/quest/etc.

 
Last edited by a moderator:
Absolutely, besides making battlegrounds' customisation easier, this also will make life easier for anyone wanting to make a custom team game/event/quest/etc.
Happy to hear this..
default_smile.png


 
Back
Top