Jump to content
Ind

BG Queue: Draw Scenario Info

Recommended Posts

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 :D

Share this post


Link to post
Share on other sites

From the scripts, there is a time limit. And again from the scripts, when the score is the same it declares a draw.

Share this post


Link to post
Share on other sites

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:

//====================================================//=       _   _                     _           //=      | | | |                   | |          //=      | |_| | ___ _ __ ___ _   _| | ___  ___ //=      |  _  |/ _  '__/ __| | | | |/ _ / __|//=      | | | |  __/ | | (__| |_| | |  __/__ //=      _| |_/___|_|  ___|__,_|_|___||___///=                                                  //=            http://herc.ws/board/                        //====================================================//= 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) */	}	)})

Share this post


Link to post
Share on other sites

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:

/* 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);

Share this post


Link to post
Share on other sites

Absolutely, besides making battlegrounds' customisation easier, this also will make life easier for anyone wanting to make a custom team game/event/quest/etc.

Share this post


Link to post
Share on other sites

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.. :)

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.