Jump to content

Question

Recommended Posts

Posted

erm, if you dont mind you can try this as well

Monster Wiki Event [ Version 2 ]

Changelog :

  • [ Version 1 ] - A Simple monster Info Question Game.
  • [ Version 2 ] - Enable in-game Customization on script.

Scripts : View Download

Although it is not Completely work like a Disguiser Event...but it still have function for Disguise and ask players to guess for the name of monster.

just a little setting is required to change the gameplay..

To change to only Disguise Mode for Answer Monster Name only.

set .Mode,0;

Posted

is this automatic start the event or need a gm permision to start the event ?

switch( select( ( !.WikiStatus || !.MonsterID )?"":"Write Answer",

"^00FF00Information^000000",

( getgmlevel() < 60 )?"":"^FF0000[GM]^000000 "+(( !.WikiStatus )?"Start Event":"Stop Event"),

( getgmlevel() < 80 )?"":"^FF0000[GM]^000000 Setting" )){

and

OnMinute00:

for( set .@i,3; .@i > 0 ; set .@i,.@i - 1 ){

announce "Monster Wiki Event will take place in Prontera within "+.@i+" Minutes",bc_blue;

sleep 60000;

}

Posted (edited)

@Mysterious

this is my DisguiseEvent.txt

prontera,157,185,4 script Disguise event 990,{
if(.g==2)
{
mes "The game is starting now.";
close;
}
if(.g==1)
{
mes "There is no game now.";
close;
}
if(getarraysize(.n$)==100)
{
mes "Full";
close;
}
set @a6d92a9246c71689,0;
set .n$[set(@f724386d4d0cf34b,getarraysize(.n$)+1)],strcharinfo(0);
end;
OnClock2100:
set .g,0;
deletearray .n$[0],128;
announce "[system]Disguise event will start in 5 mins.",0;
end;
OnClock2105:
set .g,2;
getmapxy(.@m$,.@x,.@y,1,strnpcinfo(0));
areaannounce .@m$,.@x-10,.@y-10,.@x+10,.@y+10,"[Disguise event]Now the game is starting now.",0;
sleep2(1000);
areaannounce .@m$,.@x-10,.@y-10,.@x+10,.@y+10,"[Disguise event]You have to say what monster is disguised by me.",0;
sleep2(2000);
while(.t<=10)
{
for(; 
{
if(set(.i$,getmonsterinfo(set(.i,rand(1022,2000)),0))!="null")
{
break;
}
}
set .h,0;
setnpcdisplay(strnpcinfo(0),strnpcinfo(0),.i);
defpattern 1,".*:s(.*)"+.i$,"OnTalkC";
activatepset 1;
sleep2(9000);
set .t,.t+1;
if(!.h)
areaannounce .@m$,.@x-10,.@y-10,.@x+10,.@y+10,"[Disguise event] the answer is "+.i$+".",0;
sleep2(2000);
}
areaannounce .@m$,.@x-10,.@y-10,.@x+10,.@y+10,"[Disguise event] Game Over "+.i$+".",0;
setnpcdisplay(strnpcinfo(0),strnpcinfo(0),990);
set .h,0;
set .g,1;
set .i$,"";
deletearray .n$[0],128;
end;
OnTalkC:
if(.g==1||.h||.n$[@f724386d4d0cf34b]!=strcharinfo(0))
end;
set .h,1;
dispbottom "================================================";
dispbottom " ";
dispbottom "[Point+1][Now:"+set(@a6d92a9246c71689,@a6d92a9246c71689+1)+"]";
dispbottom " ";
dispbottom "================================================";
getmapxy(.@m$,.@x,.@y,1,strnpcinfo(0));
areaannounce .@m$,.@x-10,.@y-10,.@x+10,.@y+10,"[Disguise event] "+strcharinfo(0)+" say the answer is "+.i$+".",0;
getitem itemid,7179;
end;
OnInit:
set .g,1;
set .i$,"";
end;
}

how can i change it to automatically start every 3hours.. thanks for your help , appreciate it

Edited by Arcenciel
Please use a codebox.
Posted
OnClock2100:

change to

OnClock0300:
OnClock0600:
OnClock0900:
OnClock1200:
OnClock1500:
etc...

and next time please use codebox to wrap your long script or else upload as attachment :(

Posted

if i type the correct monster name. the npc did not says im the winner he continues to countdown til Game Over

error line 42

how i going to fix this ?

Posted (edited)

prontera,155,167,5 script Monster Wiki 439,{
while( 1 ){
mes "Event Status : "+((!.WikiStatus )?"^FF0000OFF":"^0000FFON")+" ^000000";
mes "^00FF00_______________________________^000000";
mes "How may i assist you, ^0000FF"+strcharinfo(0)+"^000000 ?";
next;
switch( select( ( !.WikiStatus || !.MonsterID )?"":"Write Answer",
"^00FF00Information^000000",
( getgmlevel() < 60 )?"":"^FF0000[GM]^000000 "+(( !.WikiStatus )?"Start Event":"Stop Event"),
( getgmlevel() < 80 )?"":"^FF0000[GM]^000000 Setting" )){
Case 1:
if( getgmlevel() >= 80 ) mes "Answer : ^FF0000"+.Answer$+"^000000";
switch( .Mode ){
 Case 0:
  mes "Please Input the ^FF0000NAME^000000 of monster.";
  mes "^0000FFRemind^000000 : It is ^FF0000Case-Sensitive^000000";
  mes "Example : ^0000FFPoring^000000";
  break;
 Case 1:
  mes "Please Input the ^FF0000LEVEL^000000 of monster.";
  mes "Example. ^0000FF10 / 20 / 35 / 75^000000";
  set .Hint,getmonsterinfo( .MonsterID,1 ) - rand(30);
  mes "^FF0000Hint^000000 : Between "+( (( .Hint ) < 1 )?"0":.Hint)+" ~ "+( getmonsterinfo( .MonsterID,1 ) + rand(30) )+" ";
  break;
 Case 2:
  mes "Please Input the ^FF0000SIZE^000000 of monster.";
  mes "^0000FFRemind^000000 : It is ^FF0000Case-Sensitive^000000";
  mes "Example. ^0000FFSmall / Medium / Large^000000";
  break;
 Case 3:
  mes "Please Input the ^FF0000RACE^000000 of monster.";
  mes "^0000FFRemind^000000 : It is ^FF0000Case-Sensitive^000000";
  mes "^FF0000List of Available Answer^000000";
  mes "^00FF00_______________________________^000000";
  for( set .@i,0; .@i < getarraysize( .Race$ ); set .@i,.@i + 1 ){
mes " - ^0000FF"+.Race$[.@i]+"^000000";
}
  break;
 Case 4:
  mes "Please Input the ^FF0000ELEMENT^000000 of monster.";
  mes "^0000FFRemind^000000 : It is ^FF0000Case-Sensitive^000000";
  mes "^FF0000List of Available Answer^000000";
  mes "^00FF00_______________________________^000000";
  for( set .@i,0; .@i < getarraysize( .Element$ ); set .@i,.@i + 1 ){
mes " - ^0000FF"+.Element$[.@i]+"^000000";
}
  break;
 }
input @Guess$;
if( .MonsterID == 0 || @Guess$ != .Answer$ ){
 mes "Sorry, you are ^FF0000WRONG^000000 or ^FF0000Too Late^000000 for the Answer.";
 close;
}else{
 mes "^FF0000Correct^000000 !! I wonder how good are you in this.";
 stopnpctimer;
 getitem $WikiItemID,$WikiAmount;
 close2;
 setnpcdisplay( strnpcinfo(0),rand( 436,439 ) );
 announce "You're Right [ "+strcharinfo(0)+" ] . The Answer is [ "+.Answer$+" ]",bc_npc,0xED1ADC;
 set .MonsterID,0;
 doevent strnpcinfo(0)+"::OnStart";
}
end;

Case 2:
mes "^FF0000PsychoRO^000000 is the ^0000FFFirst Server^000000 who have this Event.";
next;
mes "This is a ^FF0000Monster Wiki^000000";
mes "I will ask you everything about ^FF0000Monster^000000.";
mes "^00FF00_______________________________^000000";
mes "The ^0000FFQuestions^000000 could be either in ^FF0000Name , Race , Element , Level , Size ^000000 of Monster.";
next;
break;
Case 3:
if( !$WikiRound || getitemname( $WikiItemID ) == "null" ){
 mes "Please Configure your ^FF0000NPC Setting^000000 before you start.";
 next;
 break;
 }
set .WikiStatus,( .WikiStatus )?"0":"1";
mes "Event is now "+( .WikiStatus )?"^0000FFStarted":"^FF0000Stopped"+"^000000";
announce "Monster Wiki Event is now "+( .WikiStatus )?"Started":"Stopped"+"^000000",bc_blue;
close2;
if( .WikiStatus ){
 set .Round,0;
 doevent strnpcinfo(0)+"::OnStart";
 }
end;
Case 4:
while( 1 ){
mes "How can i assist you ^FF0000GM^000000?";
next;
switch( select( "Prize [ ^0000FF"+$WikiAmount+" x "+getitemname( $WikiItemID )+"^000000 ]",
 "Round [ ^0000FF"+$WikiRound+"^000000 ]",
 "^0000FFBack^000000" )){
 Case 1:
  mes "Input the ^FF0000Item ID^000000";
  do{
input $WikiItemID,501,32767;
  }while( getitemname( $WikiItemID ) == "null" );
  mes "Input the ^FF0000Amount^000000";
  input $WikiAmount,1,30000;
  next;
  break;
 Case 2:
  mes "Input the ^FF0000Max. Round^000000";
  input $WikiRound,1,50;
  next;
  break;
 Case 3:
  mes "Redirect back to menu...";
  next;
  }
  break;
 }
break;
}
}
OnMinute00:
for( set .@i,3; .@i > 0 ; set .@i,.@i - 1 ){
announce "Monster Wiki Event will take place in Prontera within "+.@i+" Minutes",bc_blue;
sleep 60000;
}
set .Round,0;
set .WikiStatus,1;
OnStart:
sleep2 5000;
set .Round,.Round + 1;
if( .Round > $WikiRound ){
mapannounce .Map$,"Monster Wiki Event has Ended. Thank for Participate in this Event.",bc_map,0x7766EE;
set .WikiStatus,0;
sleep2 5000;
//mapwarp .Map$,"prontera",155,171;
setnpcdisplay( strnpcinfo(0),rand( 436,439 ) );
}else{
npctalk "Round [ "+.Round+" ] within 5 Seconds.";
sleep2 5000;
do{
 set .MonsterID,rand( 1002,1999 );
}while( getmonsterinfo( .MonsterID,0 ) == "null" || getmonsterinfo( .MonsterID,0 ) == "" );
set .Mode,rand(5);
switch( .Mode ){
 Case 0: set .Answer$, getmonsterinfo( .MonsterID,0 ); break; // Name
 Case 1: set .Answer$, getmonsterinfo( .MonsterID,1 ); break; // Level
 Case 2: set .Answer$, .Size$[ getmonsterinfo( .MonsterID,18 ) ]; break; // Size
 Case 3: set .Answer$, .Race$[ getmonsterinfo( .MonsterID,19 ) ]; break; // Race
 Case 4: set .Answer$, .Element$[ getmonsterinfo( .MonsterID,20 ) ]; break; // Element
 }
setnpcdisplay( strnpcinfo(0),.MonsterID );
npctalk "Let Guess the Info Of this Monster..";
initnpctimer;
}
end;
OnTimer10000:
npctalk "20 Left...";
end;
OnTimer20000:
npctalk "10 Left...";
end;
OnTimer30000:
mapannounce .Map$,"Time's Up. All Failed in this Round.",bc_map,0x00FF00;
donpcevent strnpcinfo(0)+"::OnStart";
set .MonsterID,0;
stopnpctimer;
end;
OnInit:
OnWhisperGlobal:
set .Map$,"prontera";
setarray .Size$[0],"Small","Medium","Large";
setarray .Race$[0],"Formless","Undead","Brute","Plant","Insect","Fish","Demon","Demi Human","Angel","Dragon";
setarray .Element$[0],"Neutral","Water","Earth","Fire","Wind","Poison","Holy","Dark","Spirit","Undead";
end;


}

@Emistry: Can u edit your script to Name only of the monster will be guess and ( 10seconds only to be guess the monster or else the npc will back to normal looks ) 15rounds of disguise please.. prize of each round is itemID:7179 (Proof of Donation)

Edited by tycoon
Please use a codebox
Posted

i think the given link of Emistry is not only the name of the monster will be guess.. and so long to wait if you don't know the monster and you want to move on the nxt round.

Posted

in my script...if you want name only...then

find this

set .Mode,rand(5);

change to

set .Mode,0;

the 30 seconds too long.....?

then find this

OnTimer10000: <---------Edit this.

npctalk "20 Left...";

end;

OnTimer20000: <---------Edit this.

npctalk "10 Left...";

end;

OnTimer30000: <---------Edit this.

mapannounce .Map$,"Time's Up. All Failed in this Round.",bc_map,0x00FF00;

donpcevent strnpcinfo(0)+"::onstart";

set .MonsterID,0;

stopnpctimer;

end;

Posted

try using a GM Level 80 or Above to answer....

and answer the Questions using the Answer Provided by the NPC...

after you answered....and it still continue counting... or not working as it should have..

try check is there any error and post here if you cant solve it..

so far, i have tested it several times...i didnt facing this problems.

Posted

@Emistry:

This is your script that i'v used

prontera,155,167,5 script Monster Wiki 439,{
while( 1 ){
mes "Event Status : "+((!.WikiStatus )?"^FF0000OFF":"^0000FFON")+" ^000000";
mes "^00FF00_______________________________^000000";
mes "How may i assist you, ^0000FF"+strcharinfo(0)+"^000000 ?";
next;
switch( select( ( !.WikiStatus || !.MonsterID )?"":"Write Answer",
"^00FF00Information^000000",
( getgmlevel() < 60 )?"":"^FF0000[GM]^000000 "+(( !.WikiStatus )?"Start Event":"Stop Event"),
( getgmlevel() < 80 )?"":"^FF0000[GM]^000000 Setting" )){
Case 1:
if( getgmlevel() >= 80 ) mes "Answer : ^FF0000"+.Answer$+"^000000";
switch( .Mode ){
Case 0:
mes "Please Input the ^FF0000NAME^000000 of monster.";
mes "^0000FFRemind^000000 : It is ^FF0000Case-Sensitive^000000";
mes "Example : ^0000FFPoring^000000";
break;
Case 1: 
mes "Please Input the ^FF0000LEVEL^000000 of monster.";
mes "Example. ^0000FF10 / 20 / 35 / 75^000000";
set .Hint,getmonsterinfo( .MonsterID,1 ) - rand(30);
mes "^FF0000Hint^000000 : Between "+( (( .Hint ) < 1 )?"0":.Hint)+" ~ "+( getmonsterinfo( .MonsterID,1 ) + rand(30) )+" ";
break;
Case 2:
mes "Please Input the ^FF0000SIZE^000000 of monster.";
mes "^0000FFRemind^000000 : It is ^FF0000Case-Sensitive^000000";
mes "Example. ^0000FFSmall / Medium / Large^000000";
break;
Case 3:
mes "Please Input the ^FF0000RACE^000000 of monster.";
mes "^0000FFRemind^000000 : It is ^FF0000Case-Sensitive^000000";
mes "^FF0000List of Available Answer^000000";
mes "^00FF00_______________________________^000000";
for( set .@i,0; .@i < getarraysize( .Race$ ); set .@i,.@i + 1 ){
mes " - ^0000FF"+.Race$[.@i]+"^000000";
}
break;
Case 4: 
mes "Please Input the ^FF0000ELEMENT^000000 of monster.";
mes "^0000FFRemind^000000 : It is ^FF0000Case-Sensitive^000000";
mes "^FF0000List of Available Answer^000000";
mes "^00FF00_______________________________^000000";
for( set .@i,0; .@i < getarraysize( .Element$ ); set .@i,.@i + 1 ){
mes " - ^0000FF"+.Element$[.@i]+"^000000";
}
break;
}
input @Guess$;
if( .MonsterID == 0 || @Guess$ != .Answer$ ){
mes "Sorry, you are ^FF0000WRONG^000000 or ^FF0000Too Late^000000 for the Answer.";
close;
}else{
mes "^FF0000Correct^000000 !! I wonder how good are you in this.";
stopnpctimer;
getitem $WikiItemID,$WikiAmount;
close2;
setnpcdisplay( strnpcinfo(0),rand( 436,439 ) );
announce "You're Right [ "+strcharinfo(0)+" ] . The Answer is [ "+.Answer$+" ]",bc_npc,0xED1ADC;
set .MonsterID,0;
doevent strnpcinfo(0)+"::OnStart";
}
end;

Case 2:
mes "This is a ^FF0000Monster Wiki^000000";
mes "I will ask you everything about ^FF0000Monster^000000.";
mes "^00FF00_______________________________^000000";
mes "The ^0000FFQuestions^000000 could be either in ^FF0000Name , Race , Element , Level , Size ^000000 of Monster.";
next;
break;
Case 3:
if( !$WikiRound || getitemname( $WikiItemID ) == "null" ){
mes "Please Configure your ^FF0000NPC Setting^000000 before you start.";
next;
break;
}
set .WikiStatus,( .WikiStatus )?"0":"1";
mes "Event is now "+( .WikiStatus )?"^0000FFStarted":"^FF0000Stopped"+"^000000";
announce "Monster Wiki Event is now "+( .WikiStatus )?"Started":"Stopped"+"^000000",bc_blue;
close2;
if( .WikiStatus ){
set .Round,0;
doevent strnpcinfo(0)+"::OnStart";
}
end;
Case 4:
while( 1 ){
mes "How can i assist you ^FF0000GM^000000?";
next;
switch( select( "Prize [ ^0000FF"+$WikiAmount+" x "+getitemname( $WikiItemID )+"^000000 ]",
"Round [ ^0000FF"+$WikiRound+"^000000 ]",
"^0000FFBack^000000" )){
Case 1:
mes "Input the ^FF0000Item ID^000000";
do{
input $WikiItemID,501,32767;
}while( getitemname( $WikiItemID ) == "null" );
mes "Input the ^FF0000Amount^000000";
input $WikiAmount,1,30000;
next;
break;
Case 2:
mes "Input the ^FF0000Max. Round^000000";
input $WikiRound,1,50;
next;
break;
Case 3:
mes "Redirect back to menu...";
next;
}
break;
}
break;
}
}

OnMinute00:
for( set .@i,3; .@i > 0 ; set .@i,.@i - 1 ){
announce "Monster Wiki Event will take place in Prontera within "+.@i+" Minutes",bc_blue;
sleep 60000;
}
set .Round,0;
set .WikiStatus,1;

OnStart:
sleep2 5000;
set .Round,.Round + 1;
if( .Round > $WikiRound ){
mapannounce .Map$,"Monster Wiki Event has Ended. Thank for Participate in this Event.",bc_map,0x7766EE;
set .WikiStatus,0;
sleep2 5000;
//mapwarp .Map$,"prontera",155,171;
setnpcdisplay( strnpcinfo(0),rand( 436,439 ) );
}else{
npctalk "Round [ "+.Round+" ] within 5 Seconds.";
sleep2 5000;
do{
set .MonsterID,rand( 1002,1999 );
}while( getmonsterinfo( .MonsterID,0 ) == "null" || getmonsterinfo( .MonsterID,0 ) == "" );
set .Mode,0;
switch( .Mode ){
Case 0: set .Answer$, getmonsterinfo( .MonsterID,0 ); break; // Name
Case 1: set .Answer$, getmonsterinfo( .MonsterID,1 ); break; // Level
Case 2: set .Answer$, .Size$[ getmonsterinfo( .MonsterID,18 ) ]; break; // Size
Case 3: set .Answer$, .Race$[ getmonsterinfo( .MonsterID,19 ) ]; break; // Race
Case 4: set .Answer$, .Element$[ getmonsterinfo( .MonsterID,20 ) ]; break; // Element
}
setnpcdisplay( strnpcinfo(0),.MonsterID );
npctalk "Let Guess the Info Of this Monster..";
initnpctimer;
}
end;

OnTimer10000:
npctalk "20 Left...";
end;

OnTimer20000:
npctalk "10 Left...";
end;

OnTimer30000:
mapannounce .Map$,"Time's Up. All Failed in this Round.",bc_map,0x00FF00;
donpcevent strnpcinfo(0)+"::OnStart";
set .MonsterID,0;
stopnpctimer;
end;

OnInit:
OnWhisperGlobal:
set .Map$,"prontera";
setarray .Size$[0],"Small","Medium","Large";
setarray .Race$[0],"Formless","Undead","Brute","Plant","Insect","Fish","Demon","Demi Human","Angel","Dragon";
setarray .Element$[0],"Neutral","Water","Earth","Fire","Wind","Poison","Holy","Dark","Spirit","Undead";
end;


}

i only changed is

set .Mode,rand(5);
to
set .Mode,0;

the PROBLEM is when i type the name of the monster then Enter the NPC continues to countdown..

npc dont shout the winner..

i think there a problem in the script.

post-990-0-27013200-1324816181_thumb.jpg

Posted

Use Emistry's Script, that one is 100% Working :)

LOL...thank for the support.....anyway...

i think GM Xeon's Disguise Event might be better since he might have added renewal monster and blacklisted some non exist mob id.

why go make a new 1 when there is already have several disguise event do exactly what you want... ==''

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...