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

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

I apologise for the delay, I've hooked this feature to a mega long update which is why its taking a while to release it, should be out in the coming days along some pretty cool stuff http://herc.ws/board/blog/1/entry-31-upcoming-update/

 

 

good to hear that Ind. Keep up the excellent work. :D

 

SlashGeeGee

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

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