Jump to content
  • 0

King Of Emperium need help


Question

5 answers to this question

Recommended Posts

  • 0
Posted

You should really consider to research before you ask such questions. YAML isn't really hard to understand, the rAthena databases are well documented and the data you want to convert isn't really complex.
Here is a good guide for YAML: https://learnxinyminutes.com/docs/yaml/
And an example how the conversion in your specific case looks:

  - Id: 100
    Map: guild_vs1
    Name: King of Emperium Hill
    Npc: koe
  • 0
Posted
12 hours ago, Winterfox said:

Is Emp Room Breaker another script, or what do you mean by that?

Another script


 

//===== rAthena Script =======================================
//= Emperium Break Room
//===== By: ==================================================
//= Masao
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= An little Emperium Break Room NPC in which you can test your
//= strength and speed against Emperiums.
//===== Additional Comments: =================================
//= 1.0 First Version. [Masao]
//============================================================
prontera,141,179,0    script    Emperium Breaker    1288,{

    set .@emp_time,$empbrk_record;
    set .@emp_m,.@emp_time / 60000;
    set .@emp_s,.@emp_time / 1000;
    set .@emp_ms,.@emp_time / 10000;
    mes "[Emperium Breaker]";
    mes "Current record holder is the Player ^5050A0"+$empbrk_master$+"^000000 .";
    mes "With an time of ^000080"+.@emp_m+"^000000Minutes ^000080"+.@emp_s+"^000000Seconds ^000080"+.@emp_ms+"^000000Milliseconds until the Emperium got broke.";
    next;
    set .@time,empbrk_record;
    set .@m,.@time / 60000;
    set .@s,.@time / 1000;
    set .@ms,.@time / 10000;
    mes "[Emperium Breaker]";
    mes "Your Own Record:";
    mes "^000080"+.@m+"^000000m ^000080"+.@s+"^000000s ^000080"+.@ms+"^000000ms";

    mes "[Emperium Breaker]";
    mes "Would you like to try to set a new record?";
    next;
    if (getgmlevel() >= 20) {
        menu "Standard Menu",-,"Reset",L_RO,"Reset Rooms",L_RR,"Cancel",L_C;

        menu "Yes",-,"No",L_C,"Reset",L_R;
    } else {
        menu "Yes",-,"No",L_C,"Reset",L_R;
    }
    cleararray .arena$[0],"",4;
    mes "[Emperium Breaker]";
    if (getareausers("pvp_n_4-5",94,128,105,139)){
        mes "Emp n° ^0000DF1 ^FF0000 Busy^000000";
    }else{
        mes "Emp n° ^0000DF1 ^00A000 Free^000000";
        set .arena$[0],"^0000DFEmperium^000000";
    }
    if (getareausers("pvp_n_4-5",60,94,71,105)){
        mes "Emp n° ^B05D002 ^FF0000 Busy^000000";
    }else{
        mes "Emp n° ^B05D002 ^00A000 Free^000000";
        set .arena$[1],"^B05D00Emperium^000000";
    }
    if (getareausers("pvp_n_4-5",94,60,105,71)){
        mes "Emp n° ^B00FB03 ^FF0000 Busy^000000";
    }else{
        mes "Emp n° ^90AF003 ^00A000 Free^000000";
        set .arena$[2],"^90AF00Emperium^000000";
    }
    if (getareausers("pvp_n_4-5",128,94,139,105)){
        mes "Emp n° ^50AF004 ^FF0000 Busy^000000";
    }else{
        mes "Emp n° ^500F004 ^00A000 Free^000000";
        set .arena$[3],"^500F00Emperium^000000";
    }
    next;
    switch (select(.arena$[0],.arena$[1],.arena$[2],.arena$[3],"Exit")){
    case 1:
        if (getareausers("pvp_n_4-5",60,94,71,105) == 0){
            if($@empr_occupied[0] > 0){
                mes "[Emperium Breaker]";
                mes "This room is currently occupied, please try again later.";
                close;
            }
            close2;
            set $@empr_occupied[0],1;
            set $@empbrk_charid[0],getcharid(0);
            warp "pvp_n_4-5",99,128;
            initnpctimer "EmpBrk#1";
            sc_end SC_ALL;
            end;
        }
        mes "[Emperium Breaker]";
        mes "This room is currently occupied, please try again later.";
        close;
    case 2:
        if (getareausers("pvp_n_4-5",60,94,71,105) == 0){    
            if($@empr_occupied[1] > 0){
                mes "[Emperium Breaker]";
                mes "This room is currently occupied, please try again later.";
                close;
            }
            close2;
            set $@empr_occupied[1],1;
            set $@empbrk_charid[1],getcharid(0);
            warp "pvp_n_4-5",68,99;
            initnpctimer "EmpBrk#2";
            sc_end SC_ALL;
            end;
        }
        mes "[Emperium Breaker]";
        mes "This room is currently occupied, please try again later.";
        close;
    case 3:
        if (getareausers("pvp_n_4-5",94,60,105,71) == 0){   
            if($@empr_occupied[2] > 0){
                mes "[Emperium Breaker]";
                mes "This room is currently occupied, please try again later.";
                close;
            }
            close2;
            set $@empr_occupied[2],1;
            set $@empbrk_charid[2],getcharid(0);
            warp "pvp_n_4-5",100,68;
            initnpctimer "EmpBrk#3";
            sc_end SC_ALL;
            end;
        }
        mes "[Emperium Breaker]";
        mes "This room is currently occupied, please try again later.";
        close;
    case 4:
        if (getareausers("pvp_n_4-5",128,94,139,105) == 0){  
            if($@empr_occupied[3] > 0){
                mes "[Emperium Breaker]";
                mes "This room is currently occupied, please try again later.";
                close;
            }
            close2;
            set $@empr_occupied[3],1;
            set $@empbrk_charid[3],getcharid(0);
            warp "pvp_n_4-5",130,99;
            initnpctimer "EmpBrk#4";
            sc_end SC_ALL;
            end;
        }
        mes "[Emperium Breaker]";
        mes "This room is currently occupied, please try again later.";
        close;
    case 5:
        close;
    }

L_RO:
    mes "[Emperium Breaker]";
    mes "Are you sure you want to reset the official record?";
    next;
    menu "Yes",-,"No",L_C;

    set $empbrk_record,0;
    set $empbrk_master$,"";
    close;

L_R:
    mes "[Emperium Breaker]";
    mes "Are you sure you want to reset your record?";
    next;
    menu "Yes",-,"No",L_C;

    set empbrk_record,0;
    close;

L_RR:
    mes "[Emperium Breaker]";
    mes "Rooms have been reset.";
    cleararray $@empr_occupied[0],0,4;
    close;

L_C:
    close;
}

-    script    EmpBrk#1    -1,{

OnTimer5000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"Get ready to break the Emperium!",bc_area;
    end;

OnTimer8000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"5",bc_area;
    end;

OnTimer9000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"4",bc_area;
    end;

OnTimer10000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"3",bc_area;
    end;

OnTimer11000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"2",bc_area;
    end;

OnTimer12000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"1",bc_area;
    end;

OnTimer13000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"GO!!!",bc_area;
    monster "pvp_n_4-5",.xe,.ye,"Emperium",1288,1,"EmpBrk#1::OnEmpBreak";
    end;

OnTimer600000:
    warpchar "prontera",155,180,$@empbrk_charid[0];
    killmonster "pvp_n_4-5","EmpBrk#1::OnEmpBreak";
    set $@empr_occupied[0],0;
    stopnpctimer;
    end;

OnEmpBreak:
    stopnpctimer;
    set .current_time,getnpctimer(0,"EmpBrk#1");
    set .new_time,.current_time - 13000;
    if (.new_time < empbrk_record || empbrk_record == 0)
    {
        areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"New Own Record!!!",bc_area;
        set empbrk_record,.new_time;
    }
    if (.new_time < $empbrk_record || $empbrk_record == 0)
    {
        announce strcharinfo(0)+" is now the new No. 1 Emperium Breaker!!",bc_all;
        set $empbrk_record,.new_time;
        set $empbrk_master$,strcharinfo(0); 
    }
    set .m,.new_time / 60000;
    set .s,.new_time / 1000;
    set .ms,.new_time / 10000;
    if(.m < 0){
        set .m,0;
    }
    if(.s < 0){
        set .s,0;
    }
    set $@empr_occupied[0],0;
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"Your time is "+.m+"m "+.s+"s "+.ms+"ms",bc_area;
    warpchar "prontera",155,180,$@empbrk_charid[0];
    end;

OnInit:
    set .x1,94;
    set .y1,128;
    set .x2,105;
    set .y2,139;
    set .xe,100;
    set .ye,134;
    end;
}

pvp_n_4-5,99,125,0    script    EmpBrk#1_touch    -1,3,1,{

OnTouch:
    mes "[Emperium Breaker]";
    mes "You cannot exit your square!";
    close2;
    warp "pvp_n_4-5",99,128;
    end;
}

-    script    EmpBrk#2    -1,{

OnTimer5000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"Get ready to break the Emperium!",bc_area;
    end;

OnTimer8000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"5",bc_area;
    end;

OnTimer9000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"4",bc_area;
    end;

OnTimer10000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"3",bc_area;
    end;

OnTimer11000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"2",bc_area;
    end;

OnTimer12000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"1",bc_area;
    end;

OnTimer13000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"GO!!!",bc_area;
    monster "pvp_n_4-5",.xe,.ye,"Emperium",1288,1,"EmpBrk#2::OnEmpBreak";
    end;

OnTimer600000:
    warpchar "prontera",155,180,$@empbrk_charid[1];
    killmonster "pvp_n_4-5","EmpBrk#2::OnEmpBreak";
    set $@empr_occupied[1],0;
    stopnpctimer;
    end;

OnEmpBreak:
    stopnpctimer;
    set .current_time,getnpctimer(0,"EmpBrk#2");
    set .new_time,.current_time - 13000;
    if (.new_time < empbrk_record || empbrk_record == 0)
    {
        areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"New Own Record!!!",bc_area;
        set empbrk_record,.new_time;
    }
    if (.new_time < $empbrk_record || $empbrk_record == 0)
    {
        announce strcharinfo(0)+" is now the new No. 1 Emperium Breaker!!",bc_all;
        set $empbrk_record,.new_time;
        set $empbrk_master$,strcharinfo(0); 
    }
    set .m,.new_time / 60000;
    set .s,.new_time / 1000;
    set .ms,.new_time / 10000;
    if(.m < 0){
        set .m,0;
    }
    if(.s < 0){
        set .s,0;
    }
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"Your time is "+.m+"m "+.s+"s "+.ms+"ms",bc_area;
    warpchar "prontera",155,180,$@empbrk_charid[1];
    set $@empr_occupied[1],0;
    end;

OnInit:
    set .x1,60;
    set .y1,94;
    set .x2,71;
    set .y2,105;
    set .xe,65;
    set .ye,99;
    end;
}

pvp_n_4-5,74,99,0    script    EmpBrk#2_touch    -1,1,3,{

OnTouch:
    mes "[Emperium Breaker]";
    mes "You cannot exit your square!";
    close2;
    warp "pvp_n_4-5",68,99;
    end;
}

-    script    EmpBrk#3    -1,{

OnTimer5000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"Get ready to break the Emperium!",bc_area;
    end;

OnTimer8000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"5",bc_area;
    end;

OnTimer9000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"4",bc_area;
    end;

OnTimer10000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"3",bc_area;
    end;

OnTimer11000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"2",bc_area;
    end;

OnTimer12000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"1",bc_area;
    end;

OnTimer13000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"GO!!!",bc_area;
    monster "pvp_n_4-5",.xe,.ye,"Emperium",1288,1,"EmpBrk#3::OnEmpBreak";
    end;

OnTimer600000:
    warpchar "prontera",155,180,$@empbrk_charid[2];
    killmonster "pvp_n_4-5","EmpBrk#3::OnEmpBreak";
    set $@empr_occupied[2],0;
    stopnpctimer;
    end;

OnEmpBreak:
    stopnpctimer;
    set .current_time,getnpctimer(0,"EmpBrk#3");
    set .new_time,.current_time - 13000;
    if (.new_time < empbrk_record || empbrk_record == 0)
    {
        areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"New Own Record!!!",bc_area;
        set empbrk_record,.new_time;
    }
    if (.new_time < $empbrk_record || $empbrk_record == 0)
    {
        announce strcharinfo(0)+" is now the new No. 1 Emperium Breaker!!",bc_all;
        set $empbrk_record,.new_time;
        set $empbrk_master$,strcharinfo(0); 
    }
    set .m,.new_time / 60000;
    set .s,.new_time / 1000;
    set .ms,.new_time / 10000;
    if(.m < 0){
        set .m,0;
    }
    if(.s < 0){
        set .s,0;
    }
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"Your time is "+.m+"m "+.s+"s "+.ms+"ms",bc_area;
    warpchar "prontera",155,180,$@empbrk_charid[2];
    set $@empr_occupied[2],0;
    end;

OnInit:
    set .x1,94;
    set .y1,60;
    set .x2,105;
    set .y2,71;
    set .xe,99;
    set .ye,65;
    end;
}

pvp_n_4-5,100,74,0    script    EmpBrk#3_touch    -1,3,1,{

OnTouch:
    mes "[Emperium Breaker]";
    mes "You cannot exit your square!";
    close2;
    warp "pvp_n_4-5",100,68;
    end;
}

-    script    EmpBrk#4    -1,{

OnTimer5000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"Get ready to break the Emperium!",bc_area;
    end;

OnTimer8000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"5",bc_area;
    end;

OnTimer9000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"4",bc_area;
    end;

OnTimer10000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"3",bc_area;
    end;

OnTimer11000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"2",bc_area;
    end;

OnTimer12000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"1",bc_area;
    end;

OnTimer13000:
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"GO!!!",bc_area;
    monster "pvp_n_4-5",.xe,.ye,"Emperium",1288,1,"EmpBrk#4::OnEmpBreak";
    end;

OnTimer600000:
    warpchar "prontera",155,180,$@empbrk_charid[3];
    killmonster "pvp_n_4-5","EmpBrk#4::OnEmpBreak";
    set $@empr_occupied[3],0;
    stopnpctimer;
    end;

OnEmpBreak:
    stopnpctimer;
    set .current_time,getnpctimer(0,"EmpBrk#4");
    set .new_time,.current_time - 13000;
    if (.new_time < empbrk_record || empbrk_record == 0)
    {
        areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"New Own Record!!!",bc_area;
        set empbrk_record,.new_time;
    }
    if (.new_time < $empbrk_record || $empbrk_record == 0)
    {
        announce strcharinfo(0)+" is now the new No. 1 Emperium Breaker!!",bc_all;
        set $empbrk_record,.new_time;
        set $empbrk_master$,strcharinfo(0); 
    }
    set .m,.new_time / 60000;
    set .s,.new_time / 1000;
    set .ms,.new_time / 10000;
    if(.m < 0){
        set .m,0;
    }
    if(.s < 0){
        set .s,0;
    }
    areaannounce "pvp_n_4-5",.x1,.y1,.x2,.y2,"Your time is "+.m+"m "+.s+"s "+.ms+"ms",bc_area;
    warpchar "izlude",128,114,$@empbrk_charid[3];
    set $@empr_occupied[3],0;
    end;

OnInit:
    set .x1,128;
    set .y1,94;
    set .x2,139;
    set .y2,105;
    set .xe,134;
    set .ye,99;
    end;
}

pvp_n_4-5,125,100,0    script    EmpBrk#4_touch    -1,1,3,{

OnTouch:
    mes "[Emperium Breaker]";
    mes "You cannot exit your square!";
    close2;
    warp "pvp_n_4-5",130,99;
    end;
}

pvp_n_4-5    mapflag    nowarp
pvp_n_4-5    mapflag    nowarpto
pvp_n_4-5    mapflag    notrade
pvp_n_4-5    mapflag    nochat
pvp_n_4-5    mapflag    nocommand    1
pvp_n_4-5    mapflag    novending
pvp_n_4-5    mapflag    nobranch
pvp_n_4-5    mapflag    noicewall
pvp_n_4-5    mapflag    noloot
pvp_n_4-5    mapflag    nomemo
pvp_n_4-5    mapflag    nosave
pvp_n_4-5    mapflag    noreturn

  • 0
Posted

Did you add the pvp_n4-5 map to the castle_db.yml? I don't think that is necessary for it to work.
But if you want to keep it in the castle_db.yml, you need to add the gvg_castle mapflag to your script.

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