Jump to content
  • 0

WOE - Last 2 Minutes Countdown Timer (Hot Request)


buda

Question


  • Group:  Members
  • Topic Count:  12
  • Topics Per Day:  0.00
  • Content Count:  36
  • Reputation:   0
  • Joined:  06/21/12
  • Last Seen:  

Is it possible to have a big numbers count down timer for WOE?

lets sat everyday from 8:58 to 9:00 countdown..

thanks master scripters!!!!

Link to comment
Share on other sites

7 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  3
  • Topics Per Day:  0.00
  • Content Count:  24
  • Reputation:   1
  • Joined:  05/27/12
  • Last Seen:  

You can use this

//PHiLiP
//For 1 hour WoE Only

- script WoECountdown -1,{
OnAgitStart:
initnpctimer;
OnTimer1800000:
announce "[WoE]: Last 30 minutes",0;
end;
OnTimer2400000:
announce "[WoE]: Last 20 minutes",0;
end;
OnTimer3000000:
announce "[WoE]: Last 10 minutes",0;
end;
OnTimer3300000:
announce "[WoE]: Last 5 minutes",0;
end;
OnTimer3360000:
announce "[WoE]: Last 4 minutes",0;
end;
OnTimer3420000:
announce "[WoE]: Last 3 minutes",0;
end;
OnTimer3480000:
announce "[WoE]: Last 2 minutes",0;
end;
OnTimer3540000:
announce "[WoE]: Last 1 minute",0;
end;
OnTimer3570000:
announce "[WoE]: Last 30 Seconds",0;
end;
OnTimer3571000:
announce "[WoE]: Last 29 Seconds",0;
end;
OnTimer3572000:
announce "[WoE]: Last 28 Seconds",0;
end;
OnTimer3573000:
announce "[WoE]: Last 27 Seconds",0;
end;
OnTimer3574000:
announce "[WoE]: Last 26 Seconds",0;
end;
OnTimer3575000:
announce "[WoE]: Last 25 Seconds",0;
end;
OnTimer3576000:
announce "[WoE]: Last 24 Seconds",0;
end;
OnTimer3577000:
announce "[WoE]: Last 23 Seconds",0;
end;
OnTimer3578000:
announce "[WoE]: Last 22 Seconds",0;
end;
OnTimer3579000:
announce "[WoE]: Last 21 Seconds",0;
end;
OnTimer3580000:
announce "[WoE]: Last 20 Seconds",0;
end;
OnTimer3581000:
announce "[WoE]: Last 19 Seconds",0;
end;
OnTimer3582000:
announce "[WoE]: Last 18 Seconds",0;
end;
OnTimer3583000:
announce "[WoE]: Last 17 Seconds",0;
end;
OnTimer3584000:
announce "[WoE]: Last 16 Seconds",0;
end;
OnTimer3585000:
announce "[WoE]: Last 15 Seconds",0;
end;
OnTimer3586000:
announce "[WoE]: Last 14 Seconds",0;
end;
OnTimer3587000:
announce "[WoE]: Last 13 Seconds",0;
end;
OnTimer3588000:
announce "[WoE]: Last 12 Seconds",0;
end;
OnTimer3589000:
announce "[WoE]: Last 11 Seconds",0;
end;
OnTimer3590000:
announce "[WoE]: Last 10 Seconds",0;
end;
OnTimer3591000:
announce "[WoE]: Last 9 Seconds",0;
end;
OnTimer3592000:
announce "[WoE]: Last 8 Seconds",0;
end;
OnTimer3593000:
announce "[WoE]: Last 7 Seconds",0;
end;
OnTimer3594000:
announce "[WoE]: Last 6 Seconds",0;
end;
OnTimer3595000:
announce "[WoE]: Last 5 Seconds",0;
end;
OnTimer3596000:
announce "[WoE]: Last 4 Seconds",0;
end;
OnTimer3597000:
announce "[WoE]: Last 3 Seconds",0;
end;
OnTimer3598000:
announce "[WoE]: Last 2 Seconds",0;
end;
OnTimer3599000:
announce "[WoE]: Last 1 Second",0;
stopnpctimer;
end;
}

Edited by Emistry
Please use [CODEBOX] or Attachments for long contents.
Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10015
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  2044
  • Reputation:   682
  • Joined:  10/09/12
  • Last Seen:  

hmm...

showdigit only shown to the attached player

it mean your script doesn't work on the player who is already inside the castle ...

it only shown to the players who are on last 120 seconds and step in (your script only trigger by OnPCLoadMapEvent )

need some kind of attachrid on all accounts stuffs to make it show on players already in the castle

which I really don't recommend it

but hey ... this command really gives me a new idea on my battleground scripts

EDIT:

though I say not recommend but my hand too itchy to try it out XD

-	script	jhfksjf	-1,{
OnInit:
setarray .map$,
	"prtg_cas03","prtg_cas01";
.map_size = getarraysize( .map$ );
for ( .@i = 0; .@i < .map_size; .@i++ )
	setmapflag .map$[.@i], mf_loadevent;
end;
OnSat2058:
//OnSat1142:
.countdown = gettimetick(2) + 60;
while ( getusers(1) > .@count ) {
	.@nb = query_sql("select account_id from `char` where online = 1 limit 128 offset "+ .@count, .@aid );
	.@i = 0;
	while ( .@i < .@nb ) {
		attachrid .@aid[.@i];
		addtimer 1, strnpcinfo(0)+"::OnPCLoadMapEvent";
		.@i++;
	}
	.@count += 128;
}
end;
OnPCLoadMapEvent:
while ( strcharinfo(3) != .map$[.@i] && .@i < .map_size ) .@i++; // somehow I feel that technique has over-abuse ... though usable though
if ( .@i == .map_size || gettimetick(2) >= .countdown ) end;
.@time = .countdown - gettimetick(2);
showdigit ~.@time, 2;
sleep2 .@time * 1000;
showdigit 0, 3;
end;
}

Edited by AnnieRuru
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  344
  • Topics Per Day:  0.08
  • Content Count:  1060
  • Reputation:   1
  • Joined:  02/13/12
  • Last Seen:  

You can use this

//PHiLiP
//For 1 hour WoE Only

- script WoECountdown -1,{
OnAgitStart:
initnpctimer;
OnTimer1800000:
announce "[WoE]: Last 30 minutes",0;
end;
OnTimer2400000:
announce "[WoE]: Last 20 minutes",0;
end;
OnTimer3000000:
announce "[WoE]: Last 10 minutes",0;
end;
OnTimer3300000:
announce "[WoE]: Last 5 minutes",0;
end;
OnTimer3360000:
announce "[WoE]: Last 4 minutes",0;
end;
OnTimer3420000:
announce "[WoE]: Last 3 minutes",0;
end;
OnTimer3480000:
announce "[WoE]: Last 2 minutes",0;
end;
OnTimer3540000:
announce "[WoE]: Last 1 minute",0;
end;
OnTimer3570000:
announce "[WoE]: Last 30 Seconds",0;
end;
OnTimer3571000:
announce "[WoE]: Last 29 Seconds",0;
end;
OnTimer3572000:
announce "[WoE]: Last 28 Seconds",0;
end;
OnTimer3573000:
announce "[WoE]: Last 27 Seconds",0;
end;
OnTimer3574000:
announce "[WoE]: Last 26 Seconds",0;
end;
OnTimer3575000:
announce "[WoE]: Last 25 Seconds",0;
end;
OnTimer3576000:
announce "[WoE]: Last 24 Seconds",0;
end;
OnTimer3577000:
announce "[WoE]: Last 23 Seconds",0;
end;
OnTimer3578000:
announce "[WoE]: Last 22 Seconds",0;
end;
OnTimer3579000:
announce "[WoE]: Last 21 Seconds",0;
end;
OnTimer3580000:
announce "[WoE]: Last 20 Seconds",0;
end;
OnTimer3581000:
announce "[WoE]: Last 19 Seconds",0;
end;
OnTimer3582000:
announce "[WoE]: Last 18 Seconds",0;
end;
OnTimer3583000:
announce "[WoE]: Last 17 Seconds",0;
end;
OnTimer3584000:
announce "[WoE]: Last 16 Seconds",0;
end;
OnTimer3585000:
announce "[WoE]: Last 15 Seconds",0;
end;
OnTimer3586000:
announce "[WoE]: Last 14 Seconds",0;
end;
OnTimer3587000:
announce "[WoE]: Last 13 Seconds",0;
end;
OnTimer3588000:
announce "[WoE]: Last 12 Seconds",0;
end;
OnTimer3589000:
announce "[WoE]: Last 11 Seconds",0;
end;
OnTimer3590000:
announce "[WoE]: Last 10 Seconds",0;
end;
OnTimer3591000:
announce "[WoE]: Last 9 Seconds",0;
end;
OnTimer3592000:
announce "[WoE]: Last 8 Seconds",0;
end;
OnTimer3593000:
announce "[WoE]: Last 7 Seconds",0;
end;
OnTimer3594000:
announce "[WoE]: Last 6 Seconds",0;
end;
OnTimer3595000:
announce "[WoE]: Last 5 Seconds",0;
end;
OnTimer3596000:
announce "[WoE]: Last 4 Seconds",0;
end;
OnTimer3597000:
announce "[WoE]: Last 3 Seconds",0;
end;
OnTimer3598000:
announce "[WoE]: Last 2 Seconds",0;
end;
OnTimer3599000:
announce "[WoE]: Last 1 Second",0;
stopnpctimer;
end;
}

is this script working?

Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10015
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

@Annie

instead of loop all users....how about only loop for the users who stayed in the maps during the "event" started ?

because the rest of the player who are not in these map...they will have the OnPCLoadMapEvent get triggered when they enter the map..

so i think if we only loop through all the player that inside these guild castle map in enough..

query_sql("SELECT `account_id` FROM`char` WHERE `online` = 1 AND `last_map` IN ( 'prtg_cas01','prtg_cas03' ) LIMIT 128 OFFSET "+ .@count, .@aid );

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  2044
  • Reputation:   682
  • Joined:  10/09/12
  • Last Seen:  

last_map field shouldn't be used

http://www.eathena.ws/board/index.php?s=&showtopic=177952&view=findpost&p=979067

actually ... Ryokem sometimes say something good, it just about his attitude ...

http://rathena.org/board/topic/75469-qselect-random-player-in-map/#entry162586

his method is actually right

I just using SQL way, and is more efficient than his method

@donkeyg

I think should be working ... ( by looking at it, I didn't test though )

PS: ...

somehow I have a feeling that from now on, I should bring up using addrid script command method ?

I against using this script command before because I thought ...

user might use it wrongly to create abundant data ... or waste server resources ...

but if I constantly teaching the correct method, perhaps 1 day might add into SVN

Edited by AnnieRuru
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  75
  • Topics Per Day:  0.02
  • Content Count:  2223
  • Reputation:   593
  • Joined:  10/26/11
  • Last Seen:  

also, if the map has mapflag#nosave then last_map in SQL will be set to their SaveMap or whatever map the 'nosave' mapflag is setup to.

Link to comment
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
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  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.

×
×
  • Create New...