Jump to content
  • 0

[Instance] what i'm doing wrong ?


Question

Posted

When i talk to the npc the mobs dont respawn :(

Sorry noob scripter here

 

 

//===== rAthena Script =======================================


//= Sample: Instancing
//===== By: ==================================================
//= Euphy
//===== Last Updated: ========================================
//= 20170303
//===== Description: ========================================= 
//= Contains elements of a basic Single Char instance script.
//============================================================

// Before running this script, add the entry below to
// 'db/(pre-)re/instance_db.txt':
// 20,Abyss Lake Instance,3600,300,abyss_03,160,155

// Instance Creation
//============================================================
prontera,157,182,6    script    Sample Instance    101,{
    .@instance$ = "Raid lvl30";
        
    if (instance_id()) {  // ignore the console debug message (harmless)
        mes "[Sample Instance]";
        mes "You are already part of an instance.";
        next;
        switch(select("Enter Instance.:Cancel.")) {
        case 1:
            break;
        case 2:
            mes "[Sample Instance]";
            mes "You don't want to try again?";
            emotion e_sob;
            close;
        }
    } else {
        mes "[Sample Instance]";
        mes "Would you like to try the sample instance in Abyss Lake 3?";
        next;
        switch(select("Create Instance.:Cancel.")) {
        case 1:
            .@create = instance_create(.@instance$, IM_PARTY);
            if (.@create < 0) {
                mes "[Sample Instance]";
                switch (.@create) {
                    case -1: mes "ERROR: Invalid type."; debugmes "Invalid instance type for ID " + instance_id(); break;
                    case -2: mes "ERROR: Char not found."; debugmes "Char/Party/Guild not found for ID " + instance_id(); break;
                    case -3: mes "ERROR: Instance already exists."; break;
                    case -4: mes "ERROR: No free instances."; debugmes "No free instances. Check MAX_INSTANCE"; break;
                }
                mes " ";
                mes "Instance creation ^FF0000failed^000000.";
                emotion e_omg;
                close;
            }
            mes "[Sample Instance]";
            mes "Instance created.";
            mes " ";
            mes "Now entering the instance...";
            next;
            break;
        case 2:
            mes "[Sample Instance]";
            mes "Okay. Maybe next time!";
            close;
        }
    }
    .@enter = instance_enter(.@instance$);
    if (.@enter != 0) {
        mes "[Sample Instance]";
        switch (.@enter) {
            case 1: mes "ERROR: Looking for party on single char only instance."; break;
            case 2: mes "ERROR: Instance has been destroyed by Party Leader or because of the time limit."; break;
            case 3: mes "ERROR: Unknown error."; break;
        }
        mes " ";
        mes "Instance entry ^FF0000failed^000000.";
        emotion e_omg;
        close;
    }
    close;
}

// Instance Scripts
//============================================================
new_zone01,42,81,6    script    Instance NPC#start    101,{
    mes "[Instance NPC]";
    mes "Are you ready to begin?";
    next;
    switch(select("Yes.:No.")) {
    case 1:
        mes "[Instance NPC]";
        mes "Good luck.";
        close2;
        donpcevent instance_npcname("#ins_abyss03_mobs")+"::OnEnable";
        delwaitingroom;
        disablenpc instance_npcname(strnpcinfo(0));
        end;
    case 2:
        mes "[Instance NPC]";
        mes "Take your time.";
        close;
    }
    end;

OnInit:  // hide the NPC on the normal map
    disablenpc strnpcinfo(0);
    end;
OnInstanceInit:  // initialize the NPC when the instance is created
    disablenpc instance_npcname("abysslakedunwarp004");  // disable original warp portal (currently buggy)
    waitingroom "Click here to start!",0;
    end;
}

new_zone0,0,0,0    script    #ins_abyss03_mobs    -1,{
    end;
OnEnable:
    initnpctimer;
    end;
OnTimer1000:  //strnpcinfo(4) will retrieve the instanced map name
    mapannounce strnpcinfo(4),"Instance NPC: The Abyss Lake instance has begun.",bc_all;
    end;
OnTimer4000:
    mapannounce strnpcinfo(4),"Instance NPC: Smash the Treasure Chest in the center of the map for a prize.",bc_all;
    end;
OnTimer5000:
    stopnpctimer;

    // spawn mobs
    .@map$        = instance_mapname("new_zone");
    .@label$      = instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
    .@label_boss$ = instance_npcname(strnpcinfo(0))+"::OnMyBossDead";
    monster .@map$,0,0,"Huge Poring",1002,20,.@label$,2;
    monster .@map$,0,0,"Huge Drops",1113,15,.@label$,2;
    monster .@map$,0,0,"Huge Poporing",1031,10,.@label$,2;
    monster .@map$,0,0,"Huge Marin",1242,10,.@label$,2;
    monster .@map$,0,0,"Tiny Zombie",1015,30,.@label$,1;
    monster .@map$,0,0,"Huge Mime Monkey",1585,2,.@label$,2;
    monster .@map$,145,111,"Treasure Chest",1732,1,.@label_boss$,2;
    end;
OnMyMobDead:  // normal mobs
    dispbottom "What am I doing? I should be attacking the Treasure Chest!";
    viewpoint 0,97,102,0,0xFF0000;
    switch (rand(6)) {  // for fun (:
        case 0: sc_start SC_STONE,5000,0; break;
        case 1: sc_start SC_FREEZE,5000,0; break;
        case 2: sc_start SC_STUN,5000,0; break;
        case 3: sc_start SC_SLEEP,5000,0; break;
        case 4: sc_start SC_CONFUSION,5000,0; break;
        case 5: sc_start SC_BLIND,5000,0; break;
    }
    end;
OnMyBossDead:  // treasure chest
    specialeffect2 EF_MVP;
    getitem 512,1; //Apple

    // trigger other events
    .@map$   = instance_mapname("new_zone");
    .@label$ = instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
    killmonster .@map$,.@label$;
    mapannounce .@map$,"Instance NPC: Good work! Please speak to me as soon as possible.",bc_all;
    donpcevent instance_npcname("Instance NPC#finish")+"::OnEnable";
    end;
}

new_zone,139,116,4    script    Instance NPC#finish    101,{
    mes "[Instance NPC]";
    mes "Congratulations! You've finished the instance.";
    mes "I'll send you back to town now.";
    emotion e_no1;
    close2;
    warp "prontera",156,191;
    instance_destroy();
    end;

OnInit:
    disablenpc strnpcinfo(0);
    end;
OnInstanceInit:
    disablenpc instance_npcname(strnpcinfo(0));
    end;
OnEnable:
    enablenpc instance_npcname(strnpcinfo(0));
    specialeffect EF_HIDING;
    end;
}

abyss_03,115,26,0    script    #ins_abyss03_warp    45,5,5,{
    end;
OnTouch:
    mes "Are you sure you want to leave?";
    next;
    switch(select("Leave.:Stay.")) {
    case 1:
        warp "prontera",156,191;
        break;
    case 2:
        warp strnpcinfo(4),160,155;
        break;
    }
    close;
OnInit:
    disablenpc strnpcinfo(0);
    end;
}

4 answers to this question

Recommended Posts

  • 0
Posted

#.... is an unique Identifier of an NPC, even if you have an 'floating' NPC without DisplayName.

Also you aren't duplicating #ins_abyss03_mobs so you don't need to use # in that place

  • 0
Posted
33 minutes ago, shaitobu said:

#.... is an unique Identifier of an NPC, even if you have an 'floating' NPC without DisplayName.

Also you aren't duplicating #ins_abyss03_mobs so you don't need to use # in that place

Nice, but the mobs are not spawning, do u know why ? =X

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...