Ind 945 Posted May 18, 2013 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 3 WireShark, nanakiwurtz and Michi reacted to this Quote Share this post Link to post Share on other sites
mkbu95 34 Posted May 18, 2013 From the scripts, there is a time limit. And again from the scripts, when the score is the same it declares a draw. Quote Share this post Link to post Share on other sites
Ind 945 Posted May 18, 2013 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) */ } )}) 7 Phoenix, Michi, rafoka and 4 others reacted to this Quote Share this post Link to post Share on other sites
icabit 4 Posted May 18, 2013 AWESOME +9999999 love ya Ind Quote Share this post Link to post Share on other sites
ossi0110 200 Posted May 19, 2013 cant wait to test this feature Quote Share this post Link to post Share on other sites
Michi 101 Posted May 19, 2013 can't wait =x love you Yommy and Ind Quote Share this post Link to post Share on other sites
Dastgir 1246 Posted May 19, 2013 Waiting for the release..... Quote Share this post Link to post Share on other sites
Ind 945 Posted May 22, 2013 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/ Quote Share this post Link to post Share on other sites
SlashGeeGee 2 Posted May 22, 2013 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. SlashGeeGee Quote Share this post Link to post Share on other sites
Ind 945 Posted May 25, 2013 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); 1 jaBote reacted to this Quote Share this post Link to post Share on other sites
Relzz 32 Posted May 25, 2013 Oh god *--* That looks great! Quote Share this post Link to post Share on other sites
jaBote 438 Posted May 25, 2013 I do see great potential in this. Quote Share this post Link to post Share on other sites
Ind 945 Posted May 25, 2013 Absolutely, besides making battlegrounds' customisation easier, this also will make life easier for anyone wanting to make a custom team game/event/quest/etc. 3 jaBote, WireShark and REKT reacted to this Quote Share this post Link to post Share on other sites
WireShark 0 Posted May 28, 2013 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.. Quote Share this post Link to post Share on other sites