Hello there, I'm kinda new in scripting. So I would like to ask help for my script
This is a Last Man Standing script, the thing is some player like to bug it.
They click the npc, but not join/register. So when the npc is gone and another player that inside the game thinned out, they enter and ruin the game.
I would like to know how to add timer, so when you click the npc, you can only click it as long as 5 second and the npc talk box will be gone.
Or if you postpone registering, you will be teleported somewhere so the npc box will be gone too.
My english kinda bad, sorry for that.
Here is my script
Spoiler
prontera,153,232,5 script LMS Manager 483,{
mes "[LMS Manager]";
mes "Hello What can I do for you?";
next;
menu "Register",-,"What is LMS?",what,"Leave",leave;
next;
mes "[LMS Manager]";
mes "Thank you for registering Mr. " + strcharinfo(0) + ", Have fun!";
close2;
npctalk ""+strcharinfo(0)+" has registered for the Last Man Standing.";
warp "pvp_n_7-5",103,99;
end;
what:
mes "[LMS Manager]";
mes "LMS is also known as Last Man Standing Event";
next;
mes "[LMS Manager]";
mes "LMS is also like a PvP.";
mes "The only difference is at LMS you will get 10 TCG if you are the Last Man Standing at the arena.";
next;
mes "[LMS Manager]";
mes "That's all";
close;
leave:
mes "[LMS Manager]";
mes "I hope you will register next time";
close;
OnClock0145:
OnClock0245:
OnClock0345:
OnClock0445:
OnClock0545:
OnClock0645:
OnClock0745:
OnClock0845:
OnClock0945:
OnClock1045:
OnClock1145:
OnClock1245:
OnClock1345:
OnClock1445:
OnClock1545:
OnClock1645:
OnClock1745:
OnClock1845:
OnClock1945:
OnClock2045:
OnClock2145:
OnClock2245:
OnClock2345:
OnMinute45:
enablenpc "LMS Manager";
delwaitingroom;
waitingroom "L.M.S. Registration",0;
pvpoff "pvp_n_7-5";
announce "LMS Manager: The Last Man Standing event will be starting shortly.",0;
sleep2 1000;
announce "LMS Manager: Those who want to play, please proceed to Prontera and Register.",0;
sleep2 1000;
announce "LMS Manager: After 1 Minute the Registration will close.",0;
sleep2 60000;
announce "LMS Manager: Please go to prontera and Register now if you want to join.",0;
disablenpc "Mr. Banker";
sleep2 1500;
announce "LMS Manager: Last 30 seconds.",0;
sleep2 30000;
announce "LMS Manager: If you want to join please Register in Prontera.",0;
sleep2 5000;
for( set .@s,10; .@s > 0 ; set .@s,.@s - 1 ){
announce "LMS Manager: "+.@s+" Seconds to go ~ Hurry Up !!",0;
sleep2 1000;
}
announce "LMS Manager: Time's up.",0;
delwaitingroom;
disablenpc "LMS Manager";
stopnpctimer;
pvpoff "pvp_n_7-5";
mapannounce "pvp_n_7-5","LMS Manager: The Last Man Standing Event will start shortly",0;
sleep2 1000;
if(getmapusers("pvp_n_7-5") == 1){
mapannounce "pvp_n_7-5","LMS Manager: Event Ended 1 Participant Only..",0;
pvpoff "pvp_n_7-5";
mapwarp "pvp_n_7-5","prontera",156,191;
stopnpctimer;
}
mapannounce "pvp_n_7-5","LMS Manager:But before we start this is just a few reminders..",0;
sleep2 1000;
mapannounce "pvp_n_7-5","LMS Manager: Only the Last Man Standing will win this event!!",0;
sleep2 1000;
mapannounce "pvp_n_7-5","LMS Manager: What are we waiting for?..Let's Get Ready to Rumble!!...",0;
sleep2 1000;
mapannounce "pvp_n_7-5","LMS Manager: Get ready at the count of 5 we will start!....",0;
sleep2 1000;
for( set .@s,5; .@s > 0; set .@s,.@s - 1 ){
mapannounce "pvp_n_7-5","LMS Manager: "+.@s+" Seconds to go ~ !!",0;
sleep2 1000;
}
pvpon "pvp_n_7-5";
enablenpc "Mr. Banker";
initnpctimer;
end;
OnTimer5000:
if(getmapusers("pvp_n_7-5") == 0){
Announce "Event Cancelled due to lack of participants.",0;
stopnpctimer;
}else if(getmapusers("pvp_n_7-5") == 1){
mapannounce "pvp_n_7-5","Mr. Banker: Please talk to me to get your prize..",0;
pvpoff "pvp_n_7-5";
stopnpctimer;
}else if(getmapusers("pvp_n_7-5") == 2){
mapannounce "pvp_n_7-5","Mr. Banker: Last 2 Brave warriors are still alive!",0;
initnpctimer;
}else if(getmapusers("pvp_n_7-5") > 2){
initnpctimer;
}
end;
//mes "[Checker]";
//mes "Hi " + strcharinfo(0) + ", Want to check how many are you here?";
//next;
//mes "There are currently ["+getmapusers("pvp_n_7-5")+"]players on map";
//close;
//
//OnInit:
//waitingroom "Map Checker",0;
//end;
//}
//--------------------------
//--------------------------
pvp_n_7-5,99,100,3 script Mr. Banker 56,{
if(getmapusers("pvp_n_7-5") > 1){
enablenpc "Mr. Banker";
npctalk "Only the last Survivor can talk with me.";
end;
}
mes "[banker]";
mes "Congrats. You've won.";
next;
announce "Mr. Banker: We have a winner! well done "+strcharinfo(0)+".",0;
getitem 6417, 3;
mes "You will return now";
close2;
warp "prontera",156,228;
disablenpc "Mr. Banker";
end;
OnPCDieEvent:
if( strcharinfo(3) != "pvp_n_7-5")end;
announce ""+strcharinfo(0)+" died, and out of the game!.",bc_all;
sleep2 100;
warp "prontera",156,191;
end;
Question
bdgro
Hello there, I'm kinda new in scripting. So I would like to ask help for my script
This is a Last Man Standing script, the thing is some player like to bug it.
They click the npc, but not join/register. So when the npc is gone and another player that inside the game thinned out, they enter and ruin the game.
I would like to know how to add timer, so when you click the npc, you can only click it as long as 5 second and the npc talk box will be gone.
Or if you postpone registering, you will be teleported somewhere so the npc box will be gone too.
My english kinda bad, sorry for that.
Here is my script
prontera,153,232,5 script LMS Manager 483,{
mes "[LMS Manager]";
mes "Hello What can I do for you?";
next;
menu "Register",-,"What is LMS?",what,"Leave",leave;
next;
mes "[LMS Manager]";
mes "Thank you for registering Mr. " + strcharinfo(0) + ", Have fun!";
close2;
npctalk ""+strcharinfo(0)+" has registered for the Last Man Standing.";
warp "pvp_n_7-5",103,99;
end;
what:
mes "[LMS Manager]";
mes "LMS is also known as Last Man Standing Event";
next;
mes "[LMS Manager]";
mes "LMS is also like a PvP.";
mes "The only difference is at LMS you will get 10 TCG if you are the Last Man Standing at the arena.";
next;
mes "[LMS Manager]";
mes "That's all";
close;
leave:
mes "[LMS Manager]";
mes "I hope you will register next time";
close;
OnClock0145:
OnClock0245:
OnClock0345:
OnClock0445:
OnClock0545:
OnClock0645:
OnClock0745:
OnClock0845:
OnClock0945:
OnClock1045:
OnClock1145:
OnClock1245:
OnClock1345:
OnClock1445:
OnClock1545:
OnClock1645:
OnClock1745:
OnClock1845:
OnClock1945:
OnClock2045:
OnClock2145:
OnClock2245:
OnClock2345:
OnMinute45:
enablenpc "LMS Manager";
delwaitingroom;
waitingroom "L.M.S. Registration",0;
pvpoff "pvp_n_7-5";
announce "LMS Manager: The Last Man Standing event will be starting shortly.",0;
sleep2 1000;
announce "LMS Manager: Those who want to play, please proceed to Prontera and Register.",0;
sleep2 1000;
announce "LMS Manager: After 1 Minute the Registration will close.",0;
sleep2 60000;
announce "LMS Manager: Please go to prontera and Register now if you want to join.",0;
disablenpc "Mr. Banker";
sleep2 1500;
announce "LMS Manager: Last 30 seconds.",0;
sleep2 30000;
announce "LMS Manager: If you want to join please Register in Prontera.",0;
sleep2 5000;
for( set .@s,10; .@s > 0 ; set .@s,.@s - 1 ){
announce "LMS Manager: "+.@s+" Seconds to go ~ Hurry Up !!",0;
sleep2 1000;
}
announce "LMS Manager: Time's up.",0;
delwaitingroom;
disablenpc "LMS Manager";
stopnpctimer;
pvpoff "pvp_n_7-5";
mapannounce "pvp_n_7-5","LMS Manager: The Last Man Standing Event will start shortly",0;
sleep2 1000;
if(getmapusers("pvp_n_7-5") == 1){
mapannounce "pvp_n_7-5","LMS Manager: Event Ended 1 Participant Only..",0;
pvpoff "pvp_n_7-5";
mapwarp "pvp_n_7-5","prontera",156,191;
stopnpctimer;
}
mapannounce "pvp_n_7-5","LMS Manager:But before we start this is just a few reminders..",0;
sleep2 1000;
mapannounce "pvp_n_7-5","LMS Manager: Only the Last Man Standing will win this event!!",0;
sleep2 1000;
mapannounce "pvp_n_7-5","LMS Manager: What are we waiting for?..Let's Get Ready to Rumble!!...",0;
sleep2 1000;
mapannounce "pvp_n_7-5","LMS Manager: Get ready at the count of 5 we will start!....",0;
sleep2 1000;
for( set .@s,5; .@s > 0; set .@s,.@s - 1 ){
mapannounce "pvp_n_7-5","LMS Manager: "+.@s+" Seconds to go ~ !!",0;
sleep2 1000;
}
pvpon "pvp_n_7-5";
enablenpc "Mr. Banker";
initnpctimer;
end;
OnTimer5000:
if(getmapusers("pvp_n_7-5") == 0){
Announce "Event Cancelled due to lack of participants.",0;
stopnpctimer;
}else if(getmapusers("pvp_n_7-5") == 1){
mapannounce "pvp_n_7-5","Mr. Banker: Please talk to me to get your prize..",0;
pvpoff "pvp_n_7-5";
stopnpctimer;
}else if(getmapusers("pvp_n_7-5") == 2){
mapannounce "pvp_n_7-5","Mr. Banker: Last 2 Brave warriors are still alive!",0;
initnpctimer;
}else if(getmapusers("pvp_n_7-5") > 2){
initnpctimer;
}
end;
OnInit:
disablenpc "Mr. Banker";
disablenpc "LMS Manager";
end;
}
//------------------------
//pvp_n_7-5,100,100,3 script Checker 780,{
//mes "[Checker]";
//mes "Hi " + strcharinfo(0) + ", Want to check how many are you here?";
//next;
//mes "There are currently ["+getmapusers("pvp_n_7-5")+"]players on map";
//close;
//
//OnInit:
//waitingroom "Map Checker",0;
//end;
//}
//--------------------------
//--------------------------
pvp_n_7-5,99,100,3 script Mr. Banker 56,{
if(getmapusers("pvp_n_7-5") > 1){
enablenpc "Mr. Banker";
npctalk "Only the last Survivor can talk with me.";
end;
}
mes "[banker]";
mes "Congrats. You've won.";
next;
announce "Mr. Banker: We have a winner! well done "+strcharinfo(0)+".",0;
getitem 6417, 3;
mes "You will return now";
close2;
warp "prontera",156,228;
disablenpc "Mr. Banker";
end;
OnInit:
while(1){
delwaitingroom;
waitingroom "["+getmapusers("pvp_n_7-5")+"] Participants ",0;
sleep 1000;
}
end;
OnPCDieEvent:
if( strcharinfo(3) != "pvp_n_7-5")end;
announce ""+strcharinfo(0)+" died, and out of the game!.",bc_all;
sleep2 100;
warp "prontera",156,191;
end;
}
// == Mapflags
pvp_n_7-5 mapflag pvp
pvp_n_7-5 mapflag nowarp
pvp_n_7-5 mapflag nowarpto
pvp_n_7-5 mapflag noteleport
pvp_n_7-5 mapflag nosave
pvp_n_7-5 mapflag nomemo
pvp_n_7-5 mapflag nobranch
pvp_n_7-5 mapflag pvp_noparty
pvp_n_7-5 mapflag pvp_noguild
////////////////
- script dualclientkicker -1,{
OnPCLoadMapEvent:
set .@charmap$, strcharinfo(3);
query_sql("SELECT FIND_IN_SET('"+.@charmap$+"', '"+.maps$+"');",.@q);
if(.@charmap$!=.tmp$[(.@q-1)]) end;
set .@len, query_sql("SELECT DISTINCT `account_id` FROM `char` WHERE `account_id` IN (SELECT `account_id` FROM `login` WHERE `last_ip` = (SELECT `last_ip` FROM `login` WHERE `account_id`="+getcharid(3)+")) AND `online` <> 0;",.@a);
if(.@len-1) {
for(set(.@d,0);.@d<.@len;set(.@d,.@d+1)) {
getmapxy(.@map$,.@x,.@y,0,rid2name(.@a[.@d]));
if(.tmp$[(.@q-1)]==.@map$&&rid2name(.@a[.@d])!=strcharinfo(0)) {
dispbottom "Duel accounts not allowed in LMS.";
warp "geffen",0,0;
}
}
}
end;
OnInit:
set .maps$ , "pvp_n_7-5";
explode( .tmp$ , .maps$, ",") ;
set .lens , getarraysize(.tmp$) ;
for(set .a,0;.a<.lens;set .a,.a+1)
setmapflag .tmp$[.a], mf_loadevent ;
}
lms.txt
Link to comment
Share on other sites
4 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.