Jump to content

Jellopy

Members
  • Posts

    8
  • Joined

  • Last visited

Posts posted by Jellopy

  1. try full code (i tested with 5 round and it work /hmm )

    //===== Athena Script ========================================
    //= Disguise Event NPC
    //===== By: ==================================================
    //= Masao
    //===== Current Version: =====================================
    //= 2.0
    //===== Compatible With: =====================================
    //= eAthena SVN
    //===== Description: =========================================
    //= Disguise Event
    //===== Additional Comments: =================================
    //= Version 1.0 if there are any Bugs please let me know.
    //= Version 1.2 Added Check if someone already guessed the Monster Name.
    //= Version 1.5 Fixed so the NPC will display it's originial View ID when the Event ends.
    //= Version 2.0 Changed some Global / Temporary Variables into NPC Variables.
    //============================================================
    - script DisguiseAnnouncer -1,{
    OnClock0300:
    OnClock0700:
    OnClock1100:
    OnClock1500:
    OnClock1900:
    OnClock2300:
    donpcevent "Disguise Event::OnStart";
    announce "The [Disguise Event] starts now!",0;
    end;
    }
    quiz_02,305,245,4 script Disguise Event 795,{
    set .@n$,"[^0000FFDisguise NPC^000000]";
    if (getgmlevel() >= 60) goto L_DisguiseAdmin;
    if ($startdisguise==1) goto L_Disguise;
    mes .@n$;
    mes "Hi, how can i help you?";
    next;
    menu "How does it work?",-,"Cancel.",L_Cancel;
    mes .@n$;
    mes "This is an very easy Event.";
    mes "At the beginning of the Event i will disguise myself into a randomly chosen Monster.";
    mes "After i've done that, you've to put the correct Name into the Box.";
    next;
    mes "If the name was correct, you win a Prize! if it was wrong, just try again ";
    mes "And that's it! Good luck.";
    close;
    L_DisguiseAdmin:
    mes .@n$;
    mes "^FF0000~Hi "+strcharinfo(0)+", what can i do for you?~^000000";
    switch(select("Start Event:End Event:Check Prize:Set Prizes:Rounds:Nothing:Player Menu")) {
    case 1:
    next;
    mes .@n$;
    mes "Would you like to start the Event now?";
    switch(select("Yes:No")) {
     case 1:
      next;
    set .Monster,1000+rand(1,323);
    set .MonsterName$,getmonsterinfo(.Monster,0);
    set .Round,0;
    set .disguisewin,0;
    set $startdisguise,1;
    setnpcdisplay "Disguise Event",.Monster;
    announce "The [Disguise Event] starts now!",0;
    close;
     case 2:
      next;
      mes .@n$;
      mes "Ok, bye.";
      close;
    }
    case 2:
    next;
    mes .@n$;
    mes "Would you like to End the Event now?";
    switch(select("Yes:No")) {
     case 1:
      next;
    set .Monster,0;
    set .MonsterName$,"";
    set .Round,0;
    set .disguisewin,0;
    set $startdisguise,0;
    setnpcdisplay "Disguise Event",795;
    announce "The [Disguise Event] has been ended by an GM! There will be no prizes!",0;
    close;  
     case 2:
      next;
      mes .@n$;
      mes "Ok, bye.";
      close;
    }
    case 3:
    next;
    mes .@n$;
    mes "^FF0000~The current winning Prize is ^000000 ^008000"+$prize_item_amount+" "+getitemname($prize_item_id)+".^000000";
    next;
    goto L_DisguiseAdmin;
    case 4:
    next;
    mes .@n$;
    mes "^FF0000~What should the Prize be? Please insert the Item ID.~^000000";
    input $prize_item_id;
    next;
    mes .@n$;
    mes "^FF0000~Now the amount?~^000000";
    input $prize_item_amount;
    next;
    mes .@n$;
    mes "^FF0000~So, the Prize is^000000 ^008000"+$prize_item_amount+" "+getitemname($prize_item_id)+"^000000? ^FF0000Great.~^000000";
    emotion 33;
    next;
    goto L_DisguiseAdmin;
    case 5:
    next;
    mes .@n$;
    mes "Here you can set how many Rounds will be played each time the Event Starts";
    input $Rounds;
    next;
    mes "^FF0000~So, there will be ^FF0000"+$Rounds+" Rounds played.^000000";
    next;
    goto L_DisguiseAdmin;
    
    case 6:
    next;
    mes .@n$;
    mes "Ok, bye.";
    close;
    case 7:
    next;
    goto L_Disguise;
    }
    OnStart:
    set .Monster,1000+rand(1,323);
    set .MonsterName$,getmonsterinfo(.Monster,0);
    set .Round,0;
    set .disguisewin,0;
    set $startdisguise,1;
    setnpcdisplay "Disguise Event",.Monster;
    end;
    L_Disguise:
    if(gettimetick(2) < .Disguise_Delay)
    {
     mes .@n$;
     mes "Please wait for next round";
     close;
    }
    mes .@n$;
    mes "Insert the correct Monstername!";
    input .@MonsterInput$;
    if (.disguisewin == 1) {
    mes "Someone already won this Round!!";
    close;
    }
    if(.@MonsterInput$==.MonsterName$) goto L_Correct;
    if(.@MonsterInput$!=.MonsterName$) goto L_Cancel;
    L_Correct:
    set .disguisewin,1;
    mapannounce "quiz_02",""+strcharinfo(0)+" won! I was disguised as: "+.MonsterName$+"",0;
    getitem $prize_item_id,$prize_item_amount;
    set .Round,.Round+1;
    if (.Round<$Rounds) goto L_Round;
    set $startdisguise,0;
    setnpcdisplay "Disguise Event",795;
    npctalk "Thank you all for playing. That was the last round of the Disguise Event. See you next time.";
    close;
    L_Round:
    close2;
    set .Disguise_Delay,gettimetick(2)+5;
    sleep2 5000;
    set .Monster,1000+rand(1,323);
    set .MonsterName$,getmonsterinfo(.Monster,0);
    set .disguisewin,0;
    setnpcdisplay "Disguise Event",.Monster;
    close;
    L_Cancel:
    close;
    }
    

  2. try this

    Find:

    L_Disguise:
    

    Add after:

    if(gettimetick(2) < .Disguise_Delay)
    {
     mes .@n$;
     mes "Please wait for next round";
     close;
    }
    

    Find:

    L_Round:
    

    Replace with:

    close2;
    set .Disguise_Delay,gettimetick(2)+5;
    sleep2 5000;
    set .Monster,1000+rand(1,323);
    set .MonsterName$,getmonsterinfo(.Monster,0);
    set .disguisewin,0;
    setnpcdisplay "Disguise Event",.Monster;
    close;
    

  3. Should be

    L_Round:
    sleep2 30000;
    set .Monster,1000+rand(1,323);
    set .MonsterName$,getmonsterinfo(.Monster,0);
    set .disguisewin,0;
    setnpcdisplay "Disguise Event",.Monster;
    close;
    

    and i suggest remove this line because it's useless. (nothing to do with .Disguise_Delay variable)

    set .Disguise_Delay,gettimetick(2)+5;
    

  4. 1. Go to NPC Disguise Event then find label OnStart

    2.

    sleep2 {<milliseconds>};

    3.

    defpattern <set number>,"<regular expression pattern>","<event label>";
    activatepset <set number>;
    deactivatepset <set number>;
    deletepset <set number>;
    

  5. go to npc/guild/agit_main.txt

    Find:

    if (!mobcount(strnpcinfo(2),"Agit#"+strnpcinfo(2)+"::OnAgitBreak")) {
    monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Emperium",1288,1,"Agit#"+strnpcinfo(2)+"::OnAgitBreak";
    }

    Replace:

    if (!mobcount(strnpcinfo(2),"Agit#"+strnpcinfo(2)+"::OnAgitBreak") && agitcheck()) {
    monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Emperium",1288,1,"Agit#"+strnpcinfo(2)+"::OnAgitBreak";
    }

    then the emperium will not spawn while woe is off.

×
×
  • Create New...