¡Vota por nosotros!

Vota diariamente por XatiyaRO para mejorar nuestra reputación y ayudarnos a crecer.

RagnaTOP - Top Ragnarok Online en Español Ragnarok private server
private server TOP RO Hispano

Autor Tema: [Aporte]Algunos NPC  (Leído 12464 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Alepcis

  • First Job
  • *
  • Mensajes: 307
  • Todo es un sueño, una falsa realidad.
  • Guild: Agua&Jabón[GL]
  • Pj Principal: Alepcis
[Aporte]Algunos NPC
« en: 19 de Enero de 2014, 19:10:17 pm »
Lista de NPCs.
Soul Linker NPC
Citar
Un Npc que nos permitirá poder obtener link(skill de soul linker) según el job por un costo(opcional).
Spoiler Soul Linker:
Sólo agregar la ubicación y el ID del npc.
Código: [Seleccionar]
- script Soul Linker -1,{
waitingroom "Linker",0; //Cartel con mensaje
set .@name$,"^0000FF[ Soul Linker NPC ]^000000"; //Nombre del npc
set .@tiempo, 300000; //Tiempo de la skill
set @costo,1000000; //Costo por uso de npc
mes .@name$;
mes "Hola "+strcharinfo(0)+".";
mes "¿Quieres recibir Link?";
mes "Tendrá un costo de: "+@costo+"zeny.";
next;
switch(select("Sí,dame link:Después")) {
case 1:
if(Zeny < @costo) goto l_nozeny;
set Zeny,Zeny - @costo;
switch ( basejob ) {
case Job_Alchemist: set .@jobspirit, 445; break;
case Job_Monk: set .@jobspirit, 447; break;
case Job_Star_Gladiator: set .@jobspirit, 448; break;
case Job_Sage: set .@jobspirit, 449; break;
case Job_Crusader: set .@jobspirit, 450; break;
case Job_SuperNovice: set .@jobspirit, 451; break;
case Job_Knight: set .@jobspirit, 452; break;
case Job_Wizard: set .@jobspirit, 453; break;
case Job_Priest: set .@jobspirit, 454; break;
case Job_Bard: case Job_Dancer: set .@jobspirit, 455; break;
case Job_Rogue: set .@jobspirit, 456; break;
case Job_Assassin: set .@jobspirit, 457; break;
case Job_Blacksmith: set .@jobspirit, 458; break;
case Job_Hunter: set .@jobspirit, 460; break;
case Job_Soul_Linker: set .@jobspirit, 461; break;
default:
if ( upper == 1 && baselevel < 70 )
set .@jobspirit, 494;
}
if ( .@jobspirit ) {
sc_start4 sc_spirit, .@tiempo, 5, .@jobspirit,0,0;
skilleffect .@spirit, 5;
}
case 2:
mes .@name$;
mes "Bien ¡Nos vemos!";
close;
}
l_nozeny:
mes .@name$;
mes "Necesitas: "+@costo+"z.";
mes "Para poder usar mis servicios.";
close;
}
NPC Broadcast
Citar
NPC sencillo que nos permite envíar mensajes al servidor de tres tipos 'compra,vende y busca'.
Spoiler Broadcaster:
Código: [Seleccionar]
prontera,145,169,4 script Broadcast 790,{
waitingroom "Broadcast",0;
set .@name$, "^c50000[Broadcast]^000000";
set $costo,300000;//Costo del mensaje
mes .@name$;
mes "Hola "+strcharinfo(0)+" soy el broadcaster un servicio especial para envíar mensajes a todo el servidor.";
next;
mes .@name$;
mes "Dime ¿qué puedo hacer por ti?.";
next;
switch(select("Información:Normas:Enviar Mensaje:Nada")){
case 1:
mes .@name$;
mes "Yo podré envíar un mensaje a todo el servidor por un pequeño costo, podrás hacer mensajes especifícos.";
next;
mes .@name$;
mes "Aquí las características: ";
next;
mes "^c50000[CARACTERÍSTICAS]^000000";
mes "1. Podrás envíar mensajes de:";
mes "Compra.";
mes "Búsqueda.";
mes "Venta";
next;
mes "^c50000[CARACTERÍSTICAS]^000000";
mes "2. Tendrá un costo de:";
mes "300,000z";
next;
mes "^c50000[CARACTERÍSTICAS]^000000";
mes "3. Personalización:";
mes "Tendrás la opción de envíar tu mensaje en distintos colores.";
close;
break;
case 2:
mes .@name$;
mes "Como bien sabes tendrás que cumplir una serie de reglas al publicar tu mensaje.";
next;
mes "^c50000[NORMAS]^000000";
mes "1. No podrás usar el Broadcast para peleas.";
mes "2. No deberás usar lenguaje ostil u ofensivo.";
mes "3. El spam será sancionado in game.";
mes "5. El broadcast deberá ser usado sólo para el fin mencionado.";
next;
mes .@name$;
mes "Las reglas pueden ser modificadas sin previo aviso.";
mes "Cualquier anomalía reportarla con el staff.";
close;
break;
case 3:
if(zeny< $costo)goto error;
switch(select("Compra:Búsqueda:Venta:Nada")){
case 1:
mes .@name$;
mes "Ingresa el mensaje de compra:";
input .@compra$;
next;
mes .@name$;
mes "Selecciona el color:";
switch(select("Amarillo:Azul")){
case 1:
announce strcharinfo(0)+" [Compra]: "+.@compra$,bc_yellow|bc_all;
set zeny,zeny- $costo;
close;
break;
case 2:
announce strcharinfo(0)+" [Compra]: "+.@compra$,bc_blue|bc_all;
set zeny,zeny- $costo;
close;
break;
}
case 2:
mes .@name$;
mes "Ingrese el mensaje de Búsqueda:";
input .@buscar$;
next;
mes .@name$;
mes "Selecciona el color";
switch(select("Amarillo:Azul")){
case 1:
announce strcharinfo(0)+" [Busca]: "+.@buscar$,bc_yellow|bc_all;
set zeny,zeny- $costo;
close;
break;
case 2:
announce strcharinfo(0)+" [Busca]: "+.@buscar$,bc_blue|bc_all;
set zeny,zeny- $costo;
close;
break;
}
case 3:
mes .@name$;
mes "Ingresa el mensaje de venta:";
input .@venta$;
next;
mes .@name$;
mes "Selecciona el color:";
switch(select("Amarillo:Azul")){
case 1:
announce strcharinfo(0)+" [Compra]: "+.@venta$,bc_yellow|bc_all;
set zeny,zeny- $costo;
close;
break;
case 2:
announce strcharinfo(0)+" [Compra]: "+.@venta$,bc_blue|bc_all;
set zeny,zeny- $costo;
close;
break;
}

}
case 4:
mes .@name$;
mes "¡Hasta pronto!.";
close;

}
error:
mes .@name$;
mes "Lo siento vuelve cuando tengas "+$costo+"z";
close;
end;

}
Warper
Citar
Es una versión adaptada de la warper, con algunas herramientas extra que podrían ayudar a eliminar algún otro npc extra.
Spoiler for Hidden:
Código: [Seleccionar]
- script Warper Entended -1,{
function Go; function Disp; function Pick; function Restrict;
//Variables
set .nombre$, "^00CCFF[Warper Extended]^000000";
//Comienzo
mes .nombre$;
mes "Hola! ^0000FF"+strcharinfo(0)+"^000000";
mes "Puedo Llevarte a Cuidades, Dungeons, el último mapa visitado además puedes escribir el mapa a donde quieras ir, también guardo posición y abro tu Storage.";
next;
mes .nombre$;
mes "¿Que deseas hacer?";
next;

// --------------------------------------------------
// Main Menu:
// --------------------------------------------------

menu "^008000-[Ultimo Warp]^000000[ "+lastwarp$+" ]",-,
"^3366FF-[Cuidades]^000000",Towns,"^008080-[Dungeons]^000000",Dungeons,"-[^c50000Fields^000000]",Fields,"^800000-[Abrir Storage]^000000",Storage,"^333399-[Guardar Posicion]^000000",Guardar,"^FF0000-[Salir]^000000",Salir,"^c90000>Warp directo^000000",Mapdes;

if (lastwarp$ == "")
message strcharinfo(0),"Aún no visitas un mapa.";
else
warp lastwarp$,lastwarpx,lastwarpy;
end;

function Go {
warp getarg(0),getarg(1,0),getarg(2,0);
getmapxy(lastwarp$,lastwarpx,lastwarpy,0);
end;
}
function Disp {
if (getargcount() < 3)
set @menu$, getarg(0);
else {
set @menu$,"";
for(set .@i,getarg(1); .@i<=getarg(2); set .@i,.@i+1)
set @menu$, @menu$+getarg(0)+" "+.@i+":";
}
return;
}
function Pick {
set .@warp_block,@warp_block;
set @warp_block,0;
if (getarg(0) == "") {
set .@select, select(@menu$);
set .@i, .@select;
set .@map$, getarg(.@i);
} else {
set .@select, select(@menu$);
set .@i, .@select-getarg(1,0);
set .@map$, getarg(0)+((.@i<10)?"0":"")+.@i;
}
if (.@warp_block & (1<<.@select)) {
message strcharinfo(0),"El mapa no está activo en: "+((checkre(0))?"":"Pre-")+"Renewal.";
end;
}
warp .@map$,@c[.@i*2],@c[.@i*2+1];
getmapxy(lastwarp$,lastwarpx,lastwarpy,0);
deletearray @c[0],getarraysize(@c);
end;
}
function Restrict {
if ((getarg(0) == "RE" && !checkre(0)) || (getarg(0) == "Pre-RE" && checkre(0))) {
if (getarg(1,0)) {
set @warp_block,0;
for(set .@i,1; .@i<getargcount(); set .@i,.@i+1)
set @warp_block, @warp_block | (1<<getarg(.@i));
} else {
message strcharinfo(0),"El mapa no está activo en: "+((checkre(0))?"":"Pre-")+"Renewal.";
end;
}
}
return;
}

// --------------------------------------------------
Towns:
// --------------------------------------------------
menu "Prontera",T1, "Alberta",T2, "Aldebaran",T3, "Amatsu",T4, "Ayothaya",T5,
"Brasilis",T6, "Comodo",T7, "Dewata",T8, "Eclage",T9, "Einbech",T10,
"Einbroch",T11, "El Dicastes",T12, "Geffen",T13, "Gonryun",T14, "Hugel",T15,
"Izlude",T16, "Jawaii",T17, "Lighthalzen",T18, "Louyang",T19, "Lutie",T20,
"Malangdo",T21, "Malaya",T22, "Manuk",T23, "Midgarts Expedition Camp",T24,
"Mora",T25, "Morroc",T26, "Moscovia",T27, "Nameless Island",T28,
"Niflheim",T29, "Payon",T30, "Rachel",T31, "Splendide",T32, "Thor Camp",T33,
"Umbala",T34, "Veins",T35, "Yuno",T36;

T1: Go("prontera",155,183);
T2: Go("alberta",28,234);
T3: Go("aldebaran",140,131);
T4: Go("amatsu",198,84);
T5: Go("ayothaya",208,166);
T6: Go("brasilis",196,217);
T7: Go("comodo",209,143);
T8: Restrict("RE");
Go("dewata",200,180);
T9: Restrict("RE");
Go("ecl_in01",48,53);
T10: Go("einbech",63,35);
T11: Go("einbroch",64,200);
T12: Restrict("RE");
Go("dicastes01",198,187);
T13: Go("geffen",119,59);
T14: Go("gonryun",160,120);
T15: Go("hugel",96,145);
T16: Go("izlude",128,(checkre(3)?146:114));
T17: Go("jawaii",251,132);
T18: Go("lighthalzen",158,92);
T19: Go("louyang",217,100);
T20: Go("xmas",147,134);
T21: Restrict("RE");
Go("malangdo",140,114);
T22: Restrict("RE");
Go("malaya",231,200);
T23: Go("manuk",282,138);
T24: Go("mid_camp",210,288);
T25: Restrict("RE");
Go("mora",55,146);
T26: Go("morocc",156,93);
T27: Go("moscovia",223,184);
T28: Go("nameless_n",256,215);
T29: Go("niflheim",202,174);
T30: Go("payon",179,100);
T31: Go("rachel",130,110);
T32: Go("splendide",201,147);
T33: Go("thor_camp",246,68);
T34: Go("umbala",97,153);
T35: Go("veins",216,123);
T36: Go("yuno",157,51);

// --------------------------------------------------
Fields:
// --------------------------------------------------
menu "Amatsu Fields",F1, "Ayothaya Fields",F2, "Bifrost Fields", F3,
"Brasilis Fields",F4, "Comodo Fields",F5, "Dewata Fields",F6,
"Eclage Fields",F7, "Einbroch Fields",F8, "El Dicastes Fields",F9,
"Geffen Fields",F10, "Gonryun Fields",F11, "Hugel Fields",F12,
"Lighthalzen Fields",F13, "Louyang Field",F14, "Lutie Field",F15,
"Malaya Fields",F16, "Manuk Fields",F17, "Mjolnir Fields",F18,
"Moscovia Fields",F19, "Niflheim Fields",F20, "Payon Forests",F21,
"Prontera Fields",F22, "Rachel Fields",F23, "Sograt Deserts",F24,
"Splendide Fields",F25, "Umbala Fields",F26, "Veins Fields",F27,
"Yuno Fields",F28;

F1: setarray @c[2],190,197;
Disp("Amatsu Field",1,1); Pick("ama_fild");
F2: setarray @c[2],173,134,212,150;
Disp("Ayothaya Field",1,2); Pick("ayo_fild");
F3: Restrict("RE");
setarray @c[2],193,220,220,187;
Disp("Bifrost Field",1,2); Pick("bif_fild");
F4: setarray @c[2],74,32;
Disp("Brasilis Field",1,1); Pick("bra_fild");
F5: Restrict("Pre-RE",5);
setarray @c[2],180,178,231,160,191,172,228,194,224,203,190,223,234,177,194,175,172,172;
Disp("Comodo Field",1,9); Pick("cmd_fild");
F6: setarray @c[2],371,212;
Disp("Dewata Field",1,1); Pick("dew_fild");
F7: Restrict("RE");
setarray @c[2],97,314;
Disp("Eclage Field",1,1); Pick("ecl_fild");
F8: Restrict("Pre-RE",2,10);
setarray @c[2],142,225,182,141,187,228,185,173,216,173,195,148,272,220,173,214,207,174,196,200;
Disp("Einbroch Field",1,10); Pick("ein_fild");
F9: Restrict("RE");
setarray @c[2],143,132,143,217;
Disp("El Dicastes Field",1,2); Pick("dic_fild");
F10: Restrict("Pre-RE",13,15);
setarray @c[0],46,199,213,204,195,212,257,192,188,171,166,263,248,158,195,191,186,183,221,117,178,218,136,328,240,181,235,235,211,185;
Disp("Geffen Field",0,14); Pick("gef_fild",1);
F11: setarray @c[2],220,227;
Disp("Gonryun Field",1,1); Pick("gon_fild");
F12: Restrict("Pre-RE",3,7);
setarray @c[2],268,101,222,193,232,185,252,189,196,106,216,220,227,197;
Disp("Hugel Field",1,7); Pick("hu_fild");
F13: setarray @c[2],240,179,185,235,240,226;
Disp("Lighthalzen Field",1,3); Pick("lhz_fild");
F14: setarray @c[2],229,187;
Disp("Louyang Field",1,1); Pick("lou_fild");
F15: setarray @c[2],115,145;
Disp("Lutie Field",1,1); Pick("xmas_fild");
F16: Restrict("RE");
setarray @c[2],40,272,207,180;
Disp("Malaya Field",1,2); Pick("ma_fild");
F17: setarray @c[2],35,236,35,262,84,365;
Disp("Manuk Field",1,3); Pick("man_fild");
F18: setarray @c[2],204,120,175,193,208,213,179,180,181,240,195,270,235,202,188,215,205,144,245,223,180,206,196,208;
Disp("Mjolnir Field",1,12); Pick("mjolnir_");
F19: setarray @c[2],82,104,131,147;
Disp("Moscovia Field",1,2); Pick("mosk_fild");
F20: setarray @c[2],215,229,167,234;
Disp("Niflheim Field",1,2); Pick("nif_fild");
F21: Restrict("Pre-RE",5,11);
setarray @c[2],158,206,151,219,205,148,186,247,134,204,193,235,200,177,137,189,201,224,160,205,194,150;
Disp("Payon Forest",1,11); Pick("pay_fild");
F22: setarray @c[0],208,227,190,206,240,206,190,143,307,252,239,213,185,188,193,194,187,218,210,183,195,149,198,164;
Disp("Prontera Field",0,11); Pick("prt_fild",1);
F23: Restrict("Pre-RE",2,7,9,10,11,13);
setarray @c[2],192,162,235,166,202,206,202,208,225,202,202,214,263,196,217,201,87,121,277,181,221,185,175,200,174,197;
Disp("Rachel Field",1,13); Pick("ra_fild");
F24: setarray @c[2],219,205,177,206,194,182,224,170,198,216,156,187,185,263,206,228,208,238,209,223,85,97,207,202,31,195,38,195;
Disp("Sograt Desert 1:Sograt Desert 2:Sograt Desert 3:Sograt Desert 7:Sograt Desert 11:Sograt Desert 12:Sograt Desert 13:Sograt Desert 16:Sograt Desert 17:Sograt Desert 18:Sograt Desert 19:Sograt Desert 20:Sograt Desert 21:Sograt Desert 22");
Pick("","moc_fild01","moc_fild02","moc_fild03","moc_fild07","moc_fild11","moc_fild12","moc_fild13","moc_fild16","moc_fild17","moc_fild18","moc_fild19","moc_fild20","moc_fild21","moc_fild22");
F25: setarray @c[2],175,186,236,184,188,204;
Disp("Splendide Field",1,3); Pick("spl_fild");
F26: setarray @c[2],217,206,223,221,237,215,202,197;
Disp("Umbala Field",1,4); Pick("um_fild");
F27: Restrict("Pre-RE",5);
setarray @c[2],186,175,196,370,222,45,51,250,202,324,150,223,149,307;
Disp("Veins Field",1,7); Pick("ve_fild");
F28: Restrict("Pre-RE",5,10);
setarray @c[2],189,224,192,207,221,157,226,199,223,177,187,232,231,174,196,203,183,214,200,124,195,226,210,304;
Disp("Yuno Field",1,12); Pick("yuno_fild");

// --------------------------------------------------
Dungeons:
// --------------------------------------------------
menu "Abyss Lakes",D1, "Amatsu Dungeon",D2, "Anthell",D3,
"Ayothaya Dungeon",D4, "Beach Dungeon",D5, "Bifrost Tower",D41,
"Bio Labs",D6, "Brasilis Dungeon",D7, "Byalan Dungeon",D8, "Clock Tower",D9,
"Coal Mines",D10, "Culvert",D11, "Cursed Abbey",D12, "Dewata Dungeon",D13,
"Einbroch Dungeon",D14, "Gefenia",D15, "Geffen Dungeon",D16,
"Glast Heim",D17, "Gonryun Dungeon",D18, "Hidden Dungeon",D19,
"Ice Dungeon",D20, "Juperos",D21, "Kiel Dungeon",D22, "Louyang Dungeon",D23,
"Magma Dungeon",D24, "Malangdo Dungeon",D25, "Moscovia Dungeon",D26,
"Nidhogg's Dungeon",D27, "Odin Temple",D28, "Orc Dungeon",D29,
"Payon Dungeon",D30, "Pyramids",D31, "Rachel Sanctuary",D32,
"Scaraba Hole",D33, "Sphinx",D34, "Sunken Ship",D35, "Thanatos Tower",D36,
"Thor Volcano",D37, "Toy Factory",D38, "Turtle Dungeon",D39, "Umbala Dungeon",D40;

D1: setarray @c[2],261,272,275,270,116,27;
Disp("Abyss Lakes",1,3); Pick("abyss_");
D2: setarray @c[2],228,11,34,41,119,14;
Disp("Amatsu Dungeon",1,3); Pick("ama_dun");
D3: setarray @c[2],35,262,168,170;
Disp("Anthell",1,2); Pick("anthell");
D4: setarray @c[2],275,19,24,26;
Disp("Ancient Shrine Maze:Inside Ancient Shrine"); Pick("ayo_dun");
D5: setarray @c[2],266,67,255,244,23,260;
Disp("Beach Dungeon",1,3); Pick("","beach_dun","beach_dun2","beach_dun3");
D6: Restrict("RE",4);
setarray @c[2],150,288,150,18,140,134,244,52;
Disp("Bio Lab",1,4); Pick("lhz_dun");
D7: setarray @c[2],87,47,262,262;
Disp("Brasilis Dungeon",1,2); Pick("bra_dun");
D8: Restrict("RE",6);
setarray @c[0],168,168,253,252,236,204,32,63,26,27,141,187;
Disp("Byalan Dungeon",1,6); Pick("iz_dun",1);
D9: setarray @c[2],199,159,148,283,65,147,56,155,297,25,127,169,277,178,268,74;
Disp("Clock Tower 1:Clock Tower 2:Clock Tower 3:Clock Tower 4:Basement 1:Basement 2:Basement 3:Basement 4");
Pick("","c_tower1","c_tower2","c_tower3","c_tower4","alde_dun01","alde_dun02","alde_dun03","alde_dun04");
D10: setarray @c[2],52,17,381,343,302,262;
Disp("Coal Mines",1,3); Pick("mjo_dun");
D11: setarray @c[2],131,247,19,19,180,169,100,92;
Disp("Culvert",1,4); Pick("","prt_sewb1","prt_sewb2","prt_sewb3","prt_sewb4");
D12: setarray @c[2],51,14,150,11,120,10;
Disp("Cursed Abbey",1,3); Pick("abbey");
D13: Restrict("RE");
setarray @c[2],285,160,299,29;
Disp("Dewata Dungeon",1,2); Pick("dew_dun");
D14: setarray @c[2],22,14,292,290;
Disp("Einbroch Dungeon",1,2); Pick("ein_dun");
D15: setarray @c[2],40,103,203,34,266,168,130,272;
Disp("Gefenia",1,4); Pick("gefenia",0);
D16: setarray @c[0],104,99,115,236,106,132,203,200;
Disp("Geffen Dungeon",1,4); Pick("gef_dun",1);
D17: setarray @c[2],370,304,199,29,104,25,150,15,157,287,147,15,258,255,108,291,171,283,68,277,156,7,12,7,133,271,224,274,14,70,150,14;
Disp("Entrance:Castle 1:Castle 2:Chivalry 1:Chivalry 2:Churchyard:Culvert 1:Culvert 2:Culvert 3:Culvert 4:St. Abbey:Staircase Dungeon:Underground Cave 1:Underground Cave 2:Underground Prison 1:Underground Prison 2");
Pick("","glast_01","gl_cas01","gl_cas02","gl_knt01","gl_knt02","gl_chyard","gl_sew01","gl_sew02","gl_sew03","gl_sew04","gl_church","gl_step","gl_dun01","gl_dun02","gl_prison","gl_prison1");
D18: setarray @c[2],153,53,28,113,68,16;
Disp("Gonryun Dungeon",1,3); Pick("gon_dun");
D19: setarray @c[2],176,7,93,20,23,8;
Disp("Hidden Dungeon",1,3); Pick("prt_maze");
D20: setarray @c[2],157,14,151,155,149,22,33,158;
Disp("Ice Dungeon",1,4); Pick("ice_dun");
D21: setarray @c[2],140,51,53,247,37,63,150,285;
Disp("Entrance:Juperos 1:Juperos 2:Core");
Pick("","jupe_cave","juperos_01","juperos_02","jupe_core");
D22: setarray @c[2],28,226,41,198;
Disp("Kiel Dungeon",1,2); Pick("kh_dun");
D23: setarray @c[2],218,196,282,20,165,38;
Disp("The Royal Tomb:Inside the Royal Tomb:Suei Long Gon"); Pick("lou_dun");
D24: setarray @c[2],126,68,47,30;
Disp("Magma Dungeon",1,2); Pick("mag_dun");
D25: Restrict("RE");
setarray @c[2],33,230;
Disp("Malangdo Dungeon",1,1); Pick("mal_dun");
D26: setarray @c[2],189,48,165,30,32,135;
Disp("Moscovia Dungeon",1,3); Pick("mosk_dun");
D27: setarray @c[2],61,239,60,271;
Disp("Nidhogg's Dungeon",1,2); Pick("nyd_dun");
D28: setarray @c[2],298,167,224,149,266,280;
Disp("Odin Temple",1,3); Pick("odin_tem");
D29: setarray @c[2],32,170,21,185;
Disp("Orc Dungeon",1,2); Pick("orcsdun");
D30: setarray @c[0],21,183,19,33,19,63,155,159,201,204;
Disp("Payon Dungeon",1,5); Pick("pay_dun",1);
D31: Restrict("RE",7,8);
setarray @c[2],192,9,10,192,100,92,181,11,94,96,192,8,94,96,192,8;
Disp("Pyramids 1:Pyramids 2:Pyramids 3:Pyramids 4:Basement 1:Basement 2:Basement 1 - Nightmare Mode:Basement 2 - Nightmare Mode");
Pick("","moc_pryd01","moc_pryd02","moc_pryd03","moc_pryd04","moc_pryd05","moc_pryd06","moc_prydn1","moc_prydn2");
D32: setarray @c[2],140,11,32,21,4,149,204,218,150,9;
Disp("Rachel Sanctuary",1,5); Pick("ra_san");
D33: Restrict("RE");
setarray @c[2],364,44,101,141;
Disp("Scaraba Hole",1,2); Pick("dic_dun");
D34: setarray @c[2],288,9,149,81,210,54,10,222,100,99;
Disp("Sphinx",1,5); Pick("","in_sphinx1","in_sphinx2","in_sphinx3","in_sphinx4","in_sphinx5");
D35: setarray @c[2],69,24,102,27;
Disp("Sunken Ship",1,2); Pick("treasure");
D36: setarray @c[2],150,39,150,136,220,158,59,143,62,11,89,221,35,166,93,148,29,107,159,138,19,20,130,52;
Disp("Thanatos Tower",1,12); Pick("tha_t");
D37: setarray @c[2],21,228,75,205,34,272;
Disp("Thor Volcano",1,3); Pick("thor_v");
D38: setarray @c[2],205,15,129,133;
Disp("Toy Factory",1,2); Pick("xmas_dun");
D39: setarray @c[2],154,49,148,261,132,189,100,192;
Disp("Entrance:Turtle Dungeon 1:Turtle Dungeon 2:Turtle Dungeon 3"); Pick("tur_dun");
D40: Restrict("Pre-RE",1,2);
setarray @c[2],42,31,48,30,204,78;
Disp("Carpenter's Shop in the Tree:Passage to a Foreign World:Hvergermil's Fountain");
Pick("","um_dun01","um_dun02","yggdrasil01");
D41: Restrict("RE");
setarray @c[2],57,13,64,88,45,14,26,23;
Disp("Bifrost Tower",1,4); Pick("ecl_tdun");
// --------------------------------------------------
Castles:
// --------------------------------------------------
menu "Aldebaran Castles",C1, "Geffen Castles",C2, "Payon Castles",C3,
"Prontera Castles",C4, "Arunafeltz Castles",C5, "Schwaltzvalt Castles",C6;

C1: setarray @c[2],48,83,95,249,142,85,239,242,264,90;
Disp("Neuschwanstein:Hohenschwangau:Nuenberg:Wuerzburg:Rothenburg");
Pick("","alde_gld","alde_gld","alde_gld","alde_gld","alde_gld");
C2: setarray @c[2],214,75,308,240,143,240,193,278,305,87;
Disp("Repherion:Eeyolbriggar:Yesnelph:Bergel:Mersetzdeitz");
Pick("","gef_fild13","gef_fild13","gef_fild13","gef_fild13","gef_fild13");
C3: setarray @c[2],121,233,295,116,317,293,140,160,204,266;
Disp("Bright Arbor:Scarlet Palace:Holy Shadow:Sacred Altar:Bamboo Grove Hill");
Pick("","pay_gld","pay_gld","pay_gld","pay_gld","pay_gld");
C4: setarray @c[2],134,65,240,128,153,137,111,240,208,240;
Disp("Kriemhild:Swanhild:Fadhgridh:Skoegul:Gondul");
Pick("","prt_gld","prt_gld","prt_gld","prt_gld","prt_gld");
C5: setarray @c[2],158,272,83,47,68,155,299,345,292,107;
Disp("Mardol:Cyr:Horn:Gefn:Banadis");
Pick("","aru_gld","aru_gld","aru_gld","aru_gld","aru_gld");
C6: setarray @c[2],293,100,288,252,97,196,137,90,71,315;
Disp("Himinn:Andlangr:Viblainn:Hljod:Skidbladnir");
Pick("","sch_gld","sch_gld","sch_gld","sch_gld","sch_gld");

// --------------------------------------------------
Guild_Dungeons:
// --------------------------------------------------
menu "Baldur",G1, "Luina",G2, "Valkyrie",G3, "Britoniah",G4,
"Arunafeltz",G5, "Schwaltzvalt",G6;

G1: Restrict("RE",2,3);
setarray @c[2],119,93,119,93,120,130;
Disp("Baldur F1:Baldur F2:Hall of Abyss");
Pick("","gld_dun01","gld_dun01_2","gld2_pay");
G2: Restrict("RE",2,3);
setarray @c[2],39,161,39,161,147,155;
Disp("Luina F1:Luina F2:Hall of Abyss");
Pick("","gld_dun02","gld_dun02_2","gld2_ald");
G3: Restrict("RE",2,3);
setarray @c[2],50,44,50,44,140,132;
Disp("Valkyrie F1:Valkyrie F2:Hall of Abyss");
Pick("","gld_dun03","gld_dun03_2","gld2_prt");
G4: Restrict("RE",2,3);
setarray @c[2],116,45,116,45,152,118;
Disp("Britoniah F1:Britoniah F2:Hall of Abyss");
Pick("","gld_dun04","gld_dun04_2","gld2_gef");
G5: Go("arug_dun01",199,195);
G6: Go("schg_dun01",200,124);

// --------------------------------------------------
Instances:
// --------------------------------------------------

menu "Bakonawa Lake",I1, "Bangungot Hospital 2F",I2, "Buwaya Cave",I3,
"Endless Tower",I4, "Hazy Forest",I5, "Malangdo Culvert",I6, "Nidhoggur's Nest",I7,
"Octopus Cave",I8, "Old Glast Heim",I9, "Orc's Memory",I10, "Sealed Shrine",I11;

I1: Restrict("RE");
Go("ma_scene01",172,175);
I2: Restrict("RE");
Go("ma_dun01",151,8);
I3: Restrict("RE");
Go("ma_fild02",316,317);
I4: Go("e_tower",72,112);
I5: Restrict("RE");
Go("bif_fild01",161,334);
I6: Restrict("RE");
Go("mal_in01",164,21);
I7: Go("nyd_dun02",95,193);
I8: Restrict("RE");
Go("mal_dun01",152,230);
I9: Restrict("RE");
Go("glast_01",204,268);
I10: Go("gef_fild10",240,198);
I11: Go("monk_test",306,143);

// --------------------------------------------------
Special:
// --------------------------------------------------
menu "Auction Hall",S1, "Battlegrounds",S2, "Casino",S3, "Eden Group Headquarters",S4,
"Gonryun Arena",S5, "Izlude Arena",S6, "Monster Race Arena",S7, "Turbo Track",S8;

S1: Go("auction_01",22,68);
S2: Go("bat_room",154,150);
S3: Go("cmd_in02",179,129);
S4: Restrict("RE");
Go("moc_para01",31,14);
S5: Go("gon_test",48,10);
S6: Go("arena_room",100,88);
S7: Go("p_track01",62,41);
S8: Go("turbo_room",99,114);

//==================================================================
Mapdes:
//==================================================================
mes .nombre$;
        mes "Escribe el mapa al que quieres ir solo debes poner por ejemplo:";
mes "prt_fild08";
        next;
        input .@map$;
        atcommand "@warp "+.@map$+"";
        close;
//===========================================================================
Guardar:
//===========================================================================
getmapxy(.@m$,.@x,.@y,0);
save .@m$,.@x,.@y;
    specialeffect2 18;
mes .nombre$;
mes "Muy Bien has guardado tu punto de inicio.";
close;
//=============================================================================
Storage:
//==============================================================================
mes .nombre$;
    mes "Tu storage a sido abierto";
    openstorage;
    close;
//=================================================================================
Salir:
//==============================================================================
mes .nombre$;
    mes "Vuelve cuando desees.";
    close;
}

// --------------------------------------------------
// Duplicados ciudades pre-renewall
// --------------------------------------------------
alberta,28,240,4 duplicate(Warper Entended) Warper Entended#alb 720
aldebaran,145,118,4 duplicate(Warper Entended) Warper Entended#alde 720
amatsu,203,87,4 duplicate(Warper Entended) Warper#ama 720
ayothaya,209,169,6 duplicate(Warper Entended) Warper Entended#ayo 720
comodo,194,158,4 duplicate(Warper Entended) Warper Entended#com 720
einbech,59,38,6 duplicate(Warper Entended) Warper Entended#einbe 720
einbroch,69,202,4 duplicate(Warper Entended) Warper Entended#einbr 720
gef_fild10,71,339,4 duplicate(Warpe Entendedr) Warper Entended#orc 720
geffen,124,72,4 duplicate(Warper Entended) Warper Entended#gef 720
glast_01,372,308,4 duplicate(Warper Entended) Warper Entended#glh 720
gonryun,162,122,4 duplicate(Warper Entended) Warper Entended#gon 720
hugel,101,151,4 duplicate(Warper Entended) Warper Entended#hug 720
izlude,134,150,4 duplicate(Warper Entended) Warper Entended#izl 720 //Pre-RE: (132,120)
jawaii,253,138,4 duplicate(Warper Entended) Warper Entended#jaw 720
lighthalzen,162,102,4 duplicate(Warper Entended) Warper Entended#lhz 720
louyang,208,103,6 duplicate(Warper Entended) Warper Entended#lou 720
manuk,274,146,6 duplicate(Warper Entended) Warper Entended#man 720
mid_camp,216,288,4 duplicate(Warper Entended) Warper Entended#mid 720
moc_ruins,64,164,4 duplicate(Warper Entended) Warper Entended#moc 720
morocc,159,97,4 duplicate(Warper Entended) Warper Entended#mor 720
moscovia,229,191,4 duplicate(Warper Entended) Warper Entended#mos 720
niflheim,205,179,4 duplicate(Warper Entended) Warper Entended#nif 720
pay_arche,42,134,4 duplicate(Warper Entended) Warper Entended#arc 720
payon,182,108,4 duplicate(Warper Entended) Warper Entended#pay 720
prontera,154,184,4 duplicate(Warper Entended) Warper Entended#prt 720
prt_fild05,279,223,6 duplicate(Warper Entended) Warper Entended#cul 720
rachel,135,116,4 duplicate(Warper Entended) Warper Entended#rac 720
splendide,205,153,4 duplicate(Warper Entended) Warper Entended#spl 720
umbala,85,155,3 duplicate(Warper Entended) Warper Entended#umb 720
veins,214,123,4 duplicate(Warper Entended) Warper Entended#ve 720
xmas,150,136,6 duplicate(Warper Entended) Warper Entended#xmas 720
yuno,162,47,4 duplicate(Warper Entended) Warper Entended#yuno 720

// --------------------------------------------------
// Ciudades Renewall
// --------------------------------------------------
brasilis,201,222,4 duplicate(Warper Entended) Warper Entended#bra 720
dewata,204,186,6 duplicate(Warper Entended) Warper Entended#dew 720
dicastes01,194,194,6 duplicate(Warper Entended) Warper Entended#dic 720
ecl_in01,51,60,4 duplicate(Warper Entended) Warper Entended#ecl 720
malangdo,134,117,6 duplicate(Warper Entended) Warper Entended#mal 720
malaya,231,204,4 duplicate(Warper Entended) Warper Entended#ma 720
mora,57,152,4 duplicate(Warper Entended) Warper Entended#mora 720
Identificador
Citar
NPC que permite identificar todos los items que tengas en el inventario.
Spoiler for Hidden:
Código: [Seleccionar]
- script Identificador -1,{
set @costo, 40;//Costo por cada item
set @name$, "[^c50000Identificador^000000]";// Nombre del NPC
mes @name$;
mes "Hola "strcharinfo(0)+" soy el identificador de items, yo puedo ayudarte a identificar todos los items que traigas en en inventario.";
next;
mes @name$;
mes "¿Necesitas de mis servicios?";
next;
mes @name$;
mes "Se le olvidó mencionar, mis servicios tendrán un costo de: "+@costo+"zeny por cada item.";
next;
menu "Claro, adelante",-,"No por el momento.",L_NO;

getinventorylist;
set @identify, 0;
for(set @i, 0; @i < @inventorylist_count; set @i, @i + 1) {
if (@inventorylist_identify[@i] == 0) set @identify, @identify + 1;
}

if (@identify == 0) {
mes @name$;
mes "Qué lástima, no tienes items que pueda identificar.";
close;
}
if (@identify < 2) {
set @total,@identify;
mes @name$;
mes "Sólo tienes 1 item sin identificar en tu inventario.";
mes "Lo identificare por: "+@price+" Zeny.";
} else {
mes @npcname$;
set @total,@identify * @price;
mes "¡Vaya! tienes ^c50000"+@identify+"^000000 items sin identificar en el inventario.";
mes "Todo te costará: ^c50000"+@total+"^000000 Zeny.";
}

next;
mes @name$;
mes "¡Oh se me olvidaba!.";
mes @name$;
mes "Si tienes alguna ^00AA00Magnifier^000000 por cada item yo podría no cobrarte.";
mes @name$;
mes "Entonces ¿empiezo?";
next;
menu "¡Si!",-,"Creo que después",L_NO;

if(Zeny < @total) {
mes @name$;
mes "Lo siento pero no tienes suficiente zeny para poder usar mis servicios.";
close;
}

getinventorylist;
set @identified, 0;
for(set @i, 0; @i < @inventorylist_count; set @i, @i + 1) {
if (@inventorylist_identify[@i] == 0) {
if (countitem(611) > 0) {
delitem 611,1;
} else {
set Zeny, Zeny - @price;
}
delitem2 @inventorylist_id[@i],1,0,0,0,0,0,0,0;
getitem @inventorylist_id[@i],1;
set @identified, @identified + 1;
}
}

mes @name$;
mes "¡Listo terminé!.";
next;
mes @name$;
mes "Han sido un total de: ^c50000"+@identified+"^000000 items.";
mes "¡Nos vemos pronto!";
close;

L_NO:
mes @name$;
mes "Ok, recuerda que podrás regresar cuando quieras.";
close;

}
Pack por guild
Citar
Una versión sencilla, para hacer la entrega de pack para miembros de guild.
Spoiler for Hidden:
Código: [Seleccionar]
- script Guild Pack -1,{
if(getgmlevel()==50){
goto menugm;}
else{
if($tot == 0){
goto nopack;}
else{
if(#gp==1){
mes "^c50000[Guild Pack]^000000";
mes "Lo siento, ya recibiste Pack";
close;
}
set .@name$, "^c50000[Guild Pack]^000000";
set .@server$,"^FF0000Alepcis RO^000000";
mes .@name$;
mes "Hola sean todos los de tu guild bienvenidos a "+.@server$+".";
mes "Yo le daré algunos items para que puedan iniciar tu batalla.";
next;
mes .@name$;
mes "Sólo tendrás que elegir unas cosas antes de poder dar tus items:";
next;
mes .@name$;
mes "Armor: ";
next;
switch(select("Odin Blessing:Silk Robe")){
case 1:
mes .@name$;
mes "¿Estás de acuerdo?.";
next;
switch(select("Si:No")){
case 1:
set .@armor,2353;
break;
case 2:
close2;
break;
}
//NOTA:Se puede modificar el item a su gusto.
break;
case 2:
mes .@name$;
mes "¿Estás de acuerdo?.";
next;
switch(select("Si:No")){
case 1:
set .@armor,2322;
break;
case 2:
close2;
break;
}
//NOTA:Se puede modificar el item a su gusto.
break;
}
mes .@name$;
mes "Escudo: ";
next;
switch(select("Valkyrja's Shield:Orleans Server")){
case 1:
mes .@name$;
mes "¿Estás de acuerdo?.";
next;
switch(select("Si:No")){
case 1:
set .@escudo,2115;
break;
case 2:
close2;
break;
}
//NOTA:Se puede modificar el item a su gusto.
break;
case 2:
mes .@name$;
mes "¿Estás de acuerdo?.";
next;
switch(select("Si:No")){
case 1:
set .@escudo,2123;
break;
case 2:
close2;
break;
}
//NOTA:Se puede modificar el item a su gusto.
break;
}//Switch escudos
mes .@name$;
mes "Aquí tienes";
next;
getitem2 .@armor,1,10,6,0,0,0,0,0;//Te dará armor identificada y refinada +6
getitem2 .@escudo,1,10,6,0,0,0,0,0;//Te dará escudo itendificado y refinado a +6
set zeny,zeny + 2000000;//Te dará 2m de zeny
getimte 2554,1; //un ejemplo para agregar Proxy
set #gp,#gp+1;//Variable para la cuenta, así evitar obtener nuevamente el pack
announce "El usuario: "+strcharinfo(0)+" ha reclamado su Pack Guild",bc_all,"0xFFFFF";//Mensaje para todo el servidor
mes .@name$;
mes "Te esperamos en batalla.";
next;
set $tot,$tot -1;//Total de packs, -1 por cada pack reclamado
atcommand "@localbroadcast Quedan "+$tot+" packs disponibles";//Mensaje en el mapa que se encuentré el npc.
close;
}
}
menugm:
switch(select("Poner packs:Quitar los packs")){
case 1:
mes .@name$;
mes "Selecciona cuántos paquetes pondrás disponibles: ";
next;
input $tot;
mes .@name$;
mes "Activaste: "+$tot+" pack(s)";
break;
case 2:
mes .@name$;
mes "Resetear los packs: ";
switch(select("Si:No")){
case 1:
set $tot,0;
mes .@name$;
mes "Listo";
close;
break;
case 2:
close;
break;
}
}
end;
nopack:
mes .@name$;
mes "No hay packs disponibles.";
close;
end;
}//script
NPC paquetes de bienvenida.
Citar
NPC que permite la entrega de packs de bienvenida a todos los usuarios nuevos en el servidor. Es configurable en el juego sól por GM nivel 99(admin).
Spoiler for Hidden:
No tiene restricciones, por eso sólo tiene permisos para el o los admins.
Código: [Seleccionar]
prontera,241,204,2 script Transfer 858,{
//gender
if(sex)
set .@g$,"o";
else
set .@g$,"a";
//NPC information
set .@server$, ^FF0000AlepcisRO^000000;
set .@name$, "^c50000[Transfer Agent]^000000";
if(getgmlevel()>= 99) goto GM;
waitingroom "¡Pack de bienvenida!",0;
if(#packx==1)goto listo;
mes .@name$;
mes "Bienvendi".@g$" a "+.@server$+".";
next;
mes .@name$;
mes "¿Dime qué quieres hacer?";
next;
switch(select("Información:Obtener Pack")){
case 1:
mes .@name$;
mes "Podrás obtener un pack de de bienvenida.";
mes "Si tienes más dudas podrás consultar con un GM.";
close;
break;
case 2:
mes .@name$;
mes "Tendrás tu pack.";
next;
getitem $cabeza,1;
getitem $ojos,1;
getitem $boca,1;
getitem $armadura,1;
getitem $arma,1;
getitem $botas,1;
getitem $escudo,1;
getitem $capa,1;
getitem $accesorioa,1;
getitem $accesoriob,1;
announce "El usuario "+strcharinfo(0)+" ha reclamado un Pack de Bienvenida.",bc_yellow|bc_all;
mes .@name$;
mes "¡Aquí tienes!";
set #packx,1;
close;
break;
}
GM:
mes .@name$;
mes "Bienvenid"+.@g$+" "+strcharinfo(0)+".";
next;
mes .@name$;
mes "Dime, ¿qué quieres hacer?";
next;
switch(select("Modificar el pack:Resetear Pack:Pack Activo:Nada")){
case 1:
switch(select("Cabeza:Ojos:Boca:Armadura:Arma:Escudo:Capa:Botas:Accesorio A:Accesorio B:")){
case 1://Cabeza
mes .@name$;
mes "[Cabeza]";
mes "Dime la ID del item:";
input $cabeza;
next;
if($cabeza>=2301){
mes "Ingresaste la ID numero: "+$cabeza+".";
}else{set $cabeza,0;
goto error;}
break;
case 2://Ojos
mes .@name$;
mes "[Ojos]";
mes "Dime la ID del item:";
input $ojos;
next;
mes "Ingresaste la ID numero: "+$ojos+".";
break;
case 3://Boca
mes .@name$;
mes "[Boca]";
mes "Dime la ID del item:";
input $boca;
next;
mes "Ingresaste la ID numero: "+$boca+".";
break;
case 4://Armadura
mes .@name$;
mes "[Armadura]";
mes "Dime la ID del item:";
input $armadura;
next;
mes "Ingresaste la ID numero: "+$armadura+".";
break;
case 5://Arma
mes .@name$;
mes "[Arma]";
mes "Dime la ID del item:";
input $arma;
next;
mes "Ingresaste la ID numero: "+$arma+".";
break;
case 6://Escudo
mes .@name$;
mes "[Escudo]";
mes "Dime la ID del item:";
input $escudo;
next;
mes "Ingresaste la ID numero: "+$escudo+".";
break;
case 7://capa
mes .@name$;
mes "[Capa]";
mes "Dime la ID del item:";
input $capa;
next;
if($capa<2501 && $capa>2554){set $capa,0;
goto error;}else{
mes "Ingresaste la ID numero: "+$capa+".";}
break;
case 8://Botas
mes .@name$;
mes "[Botas]";
mes "Dime la ID del item:";
input $botas;
next;
if($botas<2401 && $botas>2450){set $boras,0;
goto error;}else{
mes "Ingresaste la ID numero: "+$botas+".";}
break;
case 9://AcessorioAmes .@name$;
mes "[Accesorio A]";
mes "Dime la ID del item:";
input $acceosrioa;
next;
mes "Ingresaste la ID numero: "+$accesorioa+".";
break;
case 10://AccesorioB
mes .@name$;
mes "[Accesorio B]";
mes "Dime la ID del item:";
input $accesoriob;
next;
mes "Ingresaste la ID numero: "+$accesoriob+".";
break;
}
break;
case 2:
mes .@name$;
next;
switch(select("Resetear:No")){
case 1:
switch(select("Sí:No")){
case 1:
set $cabeza, 0;
set $ojos, 0;
set $boca, 0;
set $armadura, 0;
set $arma, 0;
set $escudo, 0;
set $capa, 0;
set $botas, 0;
set $accesorioa, 0;
set $accesoriob,0;
set pack,1;
break;
case 2:
mes .@name$;
mes "Nos vemos";
close;
}
case 2:
mes .@name$;
mes "Nos vemos";
close;
}
break;
case 3:
mes .@name$;
mes "[Detalles]";
mes "Actualmente está activo el pack: ";
next;
if($cabeza==0 && $ojos==0 && $boca==0 && $armadura==0 && $arma==0 && $escudo==0 && $capa==0 && $botas==0 && $accesorioa==0 && $accesoriob==0){
mes .@name$;
mes "No hay ningún pack configurado y/o activo";
close;}
else{
mes .@name$;
mes "Cabeza: "+$cabeza+".";
mes "Ojos: "+$ojos+".";
mes "Boca: "+$boca+".";
mes "Armadura: "+$armadura+".";
mes "Arma: "+$arma+".";
mes "Escudo: "+$escudo+".";
mes "Capa: "+$capa+".";
mes "Botas: "+$botas+".";
mes "Accesorio Izquierdo: "+$accesorioa+".";
mes "Accesorio Derecho: "+$accesoriob+".";
close;
}
break;
case 4:
close;
break;
}
end;
listo:
mes .@name$;
mes "¡Ya reclamaste tu pack!";
close;
error:
mes .@name$;
mes "Revisa que la ID pertenezca a la clase de item";
close;
end;
}

Anuncios para el servidor.
Citar
Script que permite envíar anuncios al servido cada cierto periodo de tiempo (en éste caso cada hora).
Spoiler for Hidden:
Código: [Seleccionar]
- script Anuncios -1,{
//OnInit:
OnMinute01:
announce "INFORMACIÓN: Las cuentas son personales ningún Game Master te pedirá tus datos, no le reveles a nadie tu información y manten segura tu cuenta.",bc_yellow|bc_all;
end;
OnMinute21:
announce "ANUNCIO: Recuerda votar por el servidor e invita a tus amigos a formar parte del servidor.",bc_yellow|bc_all;
end;
OnMinute41:
announce "INFORMACIÓN: Podrás estar al tanto de todas las noticias del servidor, visitando la página oficial.",bc_blue|bc_all;
end;
//Rellena los bloques con los mensajes que quieras.
}

NPC Tablón de información.
Citar
Un letrero en los trainning ground que muestra la información del servidor, y algunas características especiales.
Spoiler for Hidden:
Código: [Seleccionar]
new_1-1,48,113,5 script Informacion 857,{
waitingroom "Información del servidor",0;
set .@name$,"^0000FF¡Bienvenido a AlepcisRO!^000000";
mes .@name$;
mes "Hola "+strcharinfo(0)+" soy el tablón de información.";
next;
switch(select("Información:Staff")){
case 1:
mes .@name$;
mes "Rates: ";
mes "Drops: ";
mes "Card Normales: ";
mes "Card MvP: ";
mes "Pre-Renewall";
mes "Max level ";
mes "Max stats ";
mes "Max aspd ";
next;
mes .@name$;
mes "NO custom items le quitan la escencia al RO, además de que la mayoría son muy poco atractivos.";
next;
mes .@name$;
mes "El staff de ^c30000'AlepcisRO'^000000 te da la bienvenida, nuestro server está orientado al PvP, WoE y Battleground sin perder el gusto por a cazar MvPs y divertirse haciendo amigos.";
mes .@name$;
mes "Multiples sistemas para obtener premios, no quedando en la monotonia de tener sólo una vía para obtenerlo.";
mes "Los premios se puede obtener mediante; BG, PvP, WoE, MvP y eventos.";
next;
mes .@name$;
mes "Contamos con ^c50000'Guild Transfer'^000000 del cual podrás obtener mucha más información en el foro: ^0000FFalepcisRO.xd.xd";
mes "/foro/^000000 en la sección de Guild Pack.";
Close;
break;
case 2:
mes .@name$;
mes "En el juego podrás encontrar a los miembros de nuestro staff:";
next;
mes .@name$;
mes "^c50000Administrador^000000";
mes "GM Alepcis";
close;
break;
}
}

NPC Tablón de anuncios.
Citar
Un NPC que permite mostrar a los usuarios online algunas noticias de mucha importancia.
Spoiler for Hidden:
Código: [Seleccionar]
prontera,158,190,4 script Noticias#Board 857,{
set $noticias,5;//Aquí agregar las noticias(total)
waitingroom "Noticias ("+$noticias+").",0;
set .@gm$, "^c50000Staff AlepcisRO^000000";
set .@name$, "^0000FF[Noticias]^000000";
mes .@name$;
mes "Carga el tipo de noticia que quieras leer.";
next;
switch(select("Cambios PvP:Ranking PvP:")){
case 1:
mes .@name$;
mes "Al servidor se agregaron 3 nuevas modalidades PvP:";
next;
mes .@name$;
mes "[Hardcore]";
mes "PvP destinado para los combatientes más grandes del servidor, sin usables, restricción de algunas skills, restricción de algunos jobs así mismo serán removidos todo tipo de dopes.";
next;
mes .@name$;
mes "[Normal]";
mes "Es la misma mecánica del pvp normal.";
next;
mes "[Transclass]";
mes "Aquí sólo está prohibida la entrada para los personajes extended, no trans.";
close2;
break;
case 2:
mes .@name$;
mes "[Ranking PvP]";
mes "Al matar a cualquier otro usuario se ganará de manera directa un item, y se ganará un PK (Point Kill) lo que ayudará a subir en el Ranking PvP.";
close2;
break;
//Agregar más de ser necesario
}
}

Reset en español
Citar
NPC de reset en español.
Spoiler for Hidden:
Código: [Seleccionar]
prontera,149,193,5 script Reset Girl 124,{

set .@ResetStat,5000; // Zeny for stat reset
set .@ResetSkill,5000; // Zeny for skill reset
set .@ResetBoth,9000; // Zeny for resetting both together

mes "^c50000[Reset Girl]^000000";
mes "Hola, yo soy la Reset Girl.";
mes "Mi servicio tiene un costo:";
mes "Reset Stats: "+ .@ResetStat +"z";
mes "Reset Skills: "+ .@ResetSkill +"z";
mes "Reset Both: "+ .@ResetBoth +"z";
next;
mes "^c50000[Reset Girl]^000000";
mes "Por favor, selecciona el servicio: ";
next;
switch(select("^FF3355Reset Skills:Reset Stats:Reset ambos^000000:Cancelar")) {
case 1:
mes "^c50000[Reset Girl]^000000";
if (Zeny < .@ResetSkill) {
mes "Lo siento, no tienes el suficiente zeny.";
close;
}
set Zeny, Zeny-.@ResetSkill;
sc_end SC_ALL;
ResetSkill;
mes "¡Aquí tienes!.";
close;
case 2:
mes "^c50000[Reset Girl]^000000";
if (Zeny < .@ResetStat) {
mes "Lo siento, no tienes el suficiente zeny.";
close;
}
set Zeny, Zeny-.@ResetStat;
ResetStatus;
mes "¡Aquí tienes.!";
close;
case 3:
mes "^c50000[Reset Girl]^000000";
if (Zeny < .@ResetBoth) {
mes "Lo siento, no tienes el suficiente zeny.";
close;
}
set Zeny, Zeny-.@ResetBoth;
sc_end SC_ALL;
ResetSkill;
ResetStatus;
mes "¡Aquí tienes!";
close;
case 4:
close;
}
}

NPC Estilista
Citar
Estilista especial.
Spoiler for Hidden:
Código: [Seleccionar]
prontera,141,175,4 script Estilista#prontera 503,{
waitingroom "Estilista",0;
setarray .@Styles[1],getbattleflag("max_cloth_color"),getbattleflag("max_hair_style"),getbattleflag("max_hair_color");
setarray .@Look[1],7,1,6;
set .@s, select("Color de Ropa:Estilo de Cabello:Color de Cabello");
set .@Revert, getlook(.@Look[.@s]);
set .@Style,1;
while(1) {
setlook .@Look[.@s], .@Style;
message strcharinfo(0),"This is style #"+.@Style+".";
set .@menu$, "Siguiente (^0055FF"+((.@Style!=.@Styles[.@s])?.@Style+1:1)+"^000000):Anterior(^0055FF"+((.@Style!=1)?.@Style-1:.@Styles[.@s])+"^000000):Seleccionar Estilo:Regresar a original (^0055FF"+.@Revert+"^000000)";
switch(select(.@menu$)) {
case 1: set .@Style, ((.@Style!=.@Styles[.@s])?.@Style+1:1); break;
case 2: set .@Style, ((.@Style!=1)?.@Style-1:.@Styles[.@s]); break;
case 3: message strcharinfo(0),"Choose a style between 1 - "+.@Styles[.@s]+".";
input .@Style,0,.@Styles[.@s];
if (!.@Style) set .@Style, rand(1,.@Styles[.@s]);
break;
case 4: set .@Style, .@Revert; setlook .@Look[.@s], .@Revert; break;
}
}
}
« Última modificación: 19 de Enero de 2014, 19:18:28 pm por Alepcis »




Desconectado Alepcis

  • First Job
  • *
  • Mensajes: 307
  • Todo es un sueño, una falsa realidad.
  • Guild: Agua&Jabón[GL]
  • Pj Principal: Alepcis
Re:[Aporte]Algunos NPC
« Respuesta #1 en: 19 de Enero de 2014, 19:17:32 pm »

NPC Premiador
Citar
NPC que permite entregar premios a los usuarios ganadores de eventos.
Spoiler for Hidden:
Código: [Seleccionar]
    prontera,142,173,5      script  GM Premiador    871,{
    waitingroom "GM Premiador",0;
    set .@name$, "^c50000[Premios de Evento]^000000";
    if (GetGMLevel()<30) goto nogm;
       mes .@name$;
       mes "Hola ingresa tu nombre para verificar que eres un Game Master";
       input .@gmname$;
       if(.@gmname$ != strcharinfo(0)){
               next;
               mes .@name$;
               mes "Ese no es nombre de un Game Master.";
               close;
               }
    next;
       mes .@name$;
       mes "Ingresa el nombre del usuario al que se le dará el premio:";
       mes "(Recuerda respetar mayúsculas y minúsculas)";
       input .@user$;//Nombre del personaje ganador del premio
       set .@user,getcharid(3,.@user$);      //Esto verifica que este conectado
       if (!.@user){
          next;
            mes "Revisa que el nombre sea correcto o que el usuario esté on.";    //Aquí te envía si no esta conectado el user
          close;
          }
       next;
       mes .@name$;
       mes "Ahora selecciona el tipo de premio que entregarás:";
       next;
       menu "Poring coins",p1,"Combo Card",p2,"Splendide Coins",p3,"Gold Coin",p4,"Platinum Coin",p5,"Nada",SALIR;
    p1:
       mes .@name$;
       mes "Sólo para verificar coloca la ID ^c50000#7539^000000";
       input .@id;
       if(.@id != 7539) goto L_ESENOESELITEM;
       mes "Ahora indica la cantidad:";
       mes "(recuerda no más de 5 poring coin.)";
       input .@cantidad;
       if(.@cantidad>5)goto L_ESENOESELITEM;  // Esto es para q no den mas de 5 coins por premio
       set .@o,getcharid(3);
       attachrid(.@user);
       getitem .@id,.@cantidad;
       announce "" + strcharinfo(0) + ",el GM "+.@gmname$+ " te ha envíado " +.@cantidad+" "+getitemname(.@id),bc_all,0x00ff00;
       attachrid(.@o);
       mes "Todo Listo.";
       close;
    p2:
        mes .@name$;
       mes "Sólo para verificar coloca la ID ^c50000#32709^000000";
       input .@id;
       if(.@id != 32709)goto L_ESENOESELITEM;
       mes "Indica la cantidad";
       mes "(Recuerda no más de 1 item.)";
       input .@cantidad;
       if(.@cantidad>1)goto L_ESENOESELITEM;
       set .@o,getcharid(3);
       attachrid(.@user);
       getitem .@id,.@cantidad;
       announce "" + strcharinfo(0) + ",el GM "+.@gmname$+ " te ha envíado " +.@cantidad+" "+getitemname(.@id),bc_all,0x00ff00;
       attachrid(.@o);
       mes "Todo Listo.";
       close;
     
    p3:
        mes .@name$;
       mes "Sólo para verificar coloca la ID ^c50000#6081^000000";
       input .@id;
       if(.@id != 6081)goto L_ESENOESELITEM;
       mes "Indica la cantidad";
       mes "(Recuerda no más de un item.)";
       input .@cantidad;
       if(.@cantidad>1)goto L_ESENOESELITEM;
       set .@o,getcharid(3);
       attachrid(.@user);
       getitem .@id,.@cantidad;
       announce "" + strcharinfo(0) + ",el GM "+.@gmname$+ " te ha envíado " +.@cantidad+" "+getitemname(.@id),bc_all,0x00ff00;
       attachrid(.@o);
       mes "Todo Listo.";
       close;
     
    p4:
        mes .@name$;
       mes "Sólo para verificar coloca la ID ^c50000#7720^000000";
       input .@id;
       if(.@id != 7720)goto L_ESENOESELITEM;
       mes "Indica la cantidad";
       mes "(Recuerda no más de 1 cantidad.)";
       input .@cantidad;
       if(.@cantidad>1)goto L_ESENOESELITEM;
       set .@o,getcharid(3);
       attachrid(.@user);
       getitem .@id,.@cantidad;
       announce "" + strcharinfo(0) + ",el GM "+.@gmname$+ " te ha envíado " +.@cantidad+" "+getitemname(.@id),bc_all,0x00ff00;
       attachrid(.@o);
       mes "Todo Listo.";
       close;
    p5:
        mes .@name$;
       mes "Sólo para verificar coloca la ID ^c50000#677^000000";
       input .@id;
       if(.@id != 677)goto L_ESENOESELITEM;
       mes "Indica la cantidad";
       mes "(Recuerda no más de 1 item.)";
       input .@cantidad;
       if(.@cantidad>1)goto L_ESENOESELITEM;
       set .@o,getcharid(3);
       attachrid(.@user);
       getitem .@id,.@cantidad;
       announce "" + strcharinfo(0) + ",el GM "+.@gmname$+ " te ha envíado " +.@cantidad+" "+getitemname(.@id),bc_all,0x00ff00;
       attachrid(.@o);
       mes "Todo Listo.";
       close;
    nogm:
       mes .@name$;
       mes "¿Quieres dar algún premio?";
       next;
       switch(select("Sí:No")){
       case 1:
       mes .@name$;
       mes "Lo siento no eres GM, por lo tanto no puedes dar premios.";
       mes "Ahora por intentarme timar, ¡te mataré!";
       next;
       percentheal -100,-100;
       close;
       break;
       case 2:
       close;
       break;
      }
    L_ESENOESELITEM:
       next;
       mes .@name$;
       mes "Lo siento GM pero no tienes los permisos para dar esos items. No intentes ser corrupto te mataré";
       next;
       mes .@name$;
       mes "¡Tramposo!";
       next;
       percentheal -100,-100;
       close;
    SALIR:
       mes "Nos vemos después.";
       close;
    }

NPC cheques (light)
Citar
NPC que permite crear un item, el cual tendrá un costo en zeny, posteriormente podría ser cambiado nuevamente a zeny.
Spoiler for Hidden:
Código: [Seleccionar]
prontera,138,170,6   script   Zeny Seller   766,{
set .@name$,"^c50000[Zeny Seller]^000000";
mes .@name$;
mes "Hola ^0065DF"+strcharinfo(0)+"^000000 soy el Zeny Seller de XatiyaRO, yo puedo ayudarte con un sistema especial que te faciliará el manejo de grandes cantidades de zeny.";
next;
mes .@name$;
mes "Podré proporcionarte una serie de cheques con un valor en zeny, los cuales de igual forma podrás cambiarlos posteriormente.";
next;
mes .@name$;
mes "¿Qué quieres hacer?.";
next;
switch(select("Información:Obtener Cheques:Cambiar Cheques:Nada")){
   case 1:
      mes .@name$;
      mes "Podrás cambiar la cantidad de:";
      mes "^c50000500,000,000 zenys.";
      mes "^c50000750,000,000 zenys.";
      next;
      mes .@name$;
      mes "Así mismo te daré la opción de obtener un cheque con los valores ya mencionados anteriormente";
      close;
   break;
   case 2:
      mes .@name$;
      mes "¿Qué cantidad quieres generar en cheques?.";
      next;
      switch(select("500,000,000 Zenys:750,000,000 Zenys")){
         case 1:
            if(zeny >= 500000000){
               getitem 7059,1;
               set zeny,zeny-500000000;
               close;
            }else{
               mes .@name$;
               mes "Lo siento pero no tienes la cantidad suficiente para generar el cheque.";
               close;
            }
            break;
         case 2:
            if(zeny >=750000000){
               getitem 7060,1;
               set zeny,zeny-750000000;
               close;
            }else{
               mes .@name$;
               mes "Lo siento pero no tienes la cantidad suficiente para generar el cheque.";
               close;
            }
            break;
      }
   case 3:
   mes .@name$;
   mes "¿Qué cheques quieres cangear por zeny?.";
   next;
      switch(select("500,000,000 Zenys:750,000,000 Zenys")){
         case 1:
            if(countitem(7059)>=1){
               if(zeny<500000000){
                  delitem 7059,1;
                  set zeny,zeny+500000000;
               }else{
                  mes .@name$;
                  mes "Revisa que tengas menos de 500,000,000 Zeny.";
                  close;
               }
            }else{
               mes .@name$;
               mes "Revisa que tengas el cheque correspondiente en tu inventario.";
               close;
            }
            break;
         case 2:
         if(countitem(7060)>=1){
               if(zeny<200000000){
                  delitem 7060,1;
                  set zeny,zeny+750000000;
               }else{
                  mes .@name$;
                  mes "Revisa que tengas menos de 200,000,000 Zeny.";
                  close;
               }
            }else{
               mes .@name$;
               mes "Revisa que tengas el cheque correspondiente en tu inventario.";
               close;
            }
            break;
      }   
   case 4:
   close;
   break;
}
}

Quest Frog Hat
Citar
Quest para obtener el frog hat.
Spoiler for Hidden:
...

NPC Invocador MvP.
Citar
NPC que permite invocar un MvP determinado por un costo especial.
Spoiler for Hidden:
Código: [Seleccionar]
-   script   Config   -1,{
OnInit:
setarray $@monster_gldvs[0],1038,1039,1046,1059,1086,1087,1096,1112,1115,1120,1147,1150,1157,1159,1190,1251,1252,1272,1312,1373,1388,1389,1418,1492,1511,1582,1583,1623,1630,1658,1685,1688,1708,1719,1734,1751,1768,1779,1785,1832,1871,1873,1885,2022;
set .@zeny,5000000;
end;
}

guild_vs5,49,74,6   script   Invocador Especial   52,{
OnWhisperGlobal:
   set .@nombre$,"[^0000FFInvocador Especial^000000]";
   mes .@nombre$;
   mes "Hola "+strcharinfo(0)+", yo puedo ayudarte a invocar un mob de la lista";
   mes "Tendrá un costo de" +.@zeny$+" Zeny";
   next;
   mes .@nombre$;
   mes "Pero primero, escoje un Modo.";
   next;
   mes .@nombre$;
   mes "Escoje el mob que quieres soltar.";
   next;
   for (set .@i, 0; .@i < getarraysize($@monster_gldvs); set .@i, .@i + 1)
      set .@menu$, .@menu$ + getmonsterinfo($@monster_gldvs[.@i],0) + ":";
   set .@mob, select(.@menu$)-1;
   next;
   mes .@nombre$;
   mes "¿Seleccionaste "+getmonsterinfo($@monster_gldvs[.@mob],0);
   next;
   mes .@nombre$;
   mes "¿Estas seguro de que quieres invocar" "+getmonsterinfo($@monster_gldvs[.@mob],0);
   next;
   if (select("Sí:No") == 2) {
      mes .@nombre$;
      mes "Regresa cuando quieras invocar una mob";
      close;
   }
   mes .@nombre$;
   set .@mob_name$,getmonsterinfo($@monster_gldvs[.@mob],0);
   mes "Muy bien. Recuerda vuelve cuando quieras.";
   close2;
   monster $@monster_gldvs[.@mob],1;
   set zeny, -.@zeny;
   end;
   }
end;
}

NPC Whisp Variado
Citar
NPC que te permite whispearle para hacer una serie de actividades.
Spoiler for Hidden:
Código: [Seleccionar]
-    script    option    -1,{
set .@name$, "^c50000[Actividades]^000000";
OnWhisperGlobal:
    if(@whispervar0$=="!option"){
        switch(select("Tiendas:Abrir Storage:Guardar Posición:Storeall")){
        case 1:
        goto tool;
        break;
        case 2:
        goto storage;
        break;
        case 3:
        goto guardar;
        break;
        case 4:
        goto storeall;
        break;
        }
    }
end;

tool:
mes "^c50000[Actividades]^000000";
mes "¿Qué tienda quieres abrir?";
switch(select("Traficante:Accesorios")){
case 1:
callshop "Traficante",0;
end;
break;
case 2:
callshop "Accesorios",0;
end;
break;

}
end;

storage:
mes "^c50000[Actividades]^000000";
    mes "Tu storage ha sido abierto";
    openstorage;
    close;
end;

guardar:
getmapxy(.@m$,.@x,.@y,0);
    save .@m$,.@x,.@y;
    specialeffect2 18;
    mes "^c50000[Actividades]^000000";
    mes "Muy bien has guardado tu punto de inicio.";
    close;
end;

storeall:
mes "^c50000[Actividades]^000000";
mes "¿Estás seguro de querer guardar tus items?.";
next;
    switch(select("Sí:No")){
    case 1:
    atcommand "@storeall";
    mes .@name$;
    mes "¡Gracias nos vemos!";
    close;
    break;
    case 2:
    mes .@name$;
    mes "Me imaginé, ¡nos vemos después!";
    close;
    }
end;
}
-    shop    Traficante    -1,611:40,533:250,501:50,502:200,503:550,504:1200,505:5000,506:40,645:1500,656:1500,657:5000,601:100,602:500,715:100,716:100,717:100
-    shop    Accesorios    798,2625:30000,2607:30000,2616:75000,2602:30000,2622:300000,2614:90000,2641:200000,2604:30000,2624:300000,2663:200000,2640:200000,2603:30000,2623:300000,2628:400,2665:200000,2601:30000,2621:300000,2608:15000,2626:150000,2620:30000,2615:75000,2654:200000,2659:200000,2660:200000,2661:200000,2662:200000


NPC Reset con costos
Citar
NPC que permite hacer reset por una serie de costos
Spoiler for Hidden:
Código: [Seleccionar]
prontera,140,193,5    script    Reset Girl    124,{
set .@cost,10000000;
set .@level,4;
set .@freeres,2;
set .@name$, "^c50000[Reset Girl]^000000";
//Gender
if(sex)
        set .@g$,"o";
    else
        set .@g$,"a";
//script
mes .@name$;
mes "Hola "+strcharinfo(0)+" yo soy la Reset Girl, yo puedo realizar una serie de reinicios en tus estados y habiliadades.";
next;
mes .@name$;
mes "Tendrás la posibilidad de usar mis habilidades ^c50000"+.@freeres+"^000000 veces.";
next;
mes .@name$;
mes "Despué de gastar esas dos posibilidades, podrás elegir entre dos opciones:";
mes "Pagar: ^c50000"+.@cost+"^000000 Zeny.";
mes "Pagar: ^c50000"+.@level+"^000000 Niveles.";
next;
mes .@name$;
mes "¿Qué quieres hacer?.";
next;
    switch(select("Reset:Reset realizados:Nada")){
        case 1:
            mes .@name$;
            mes "¿Estás segur"+.@g$+"?.";
            next;
                switch(select("Sí:No")){
                case 1:
                    if(resetrea<.@freeres){goto ResetGratis;}
                    else{goto ResetCost;}               
                break;
                case 2:
                mes .@name$;
                mes "¡Nos vemos después!";
                close;
                break;
                }
        break;
        case 2:
        mes .@name$;
        mes "Total: "+total+" Resets";
        end;
        break;
        case 3:
        mes .@name$;
        mes "¡Nos vemos después!";
        end;
        close;
        break;
    }

ResetGratis:
mes .@name$;
mes "Bien, seran reincidadas tus habilidades y estados.";
next;
set resetrea,resetrea+1;
set total,total+1;
sc_end SC_ALL;
ResetSkill;
ResetStatus;
mes .@name$;
mes "¡Aquí tienes!";
close;
end;

ResetCost:
mes .@name$;
mes "Selecciona el modo en que pagarás el servicio:";
next;
    switch(select("Zeny:Niveles")){
    case 1:
        if(Zeny<.@cost){goto NoCumple;}
        else{
            set Zeny,Zeny-.@cost;
            set total,total+1;
            sc_end SC_ALL;
            ResetSkill;
            ResetStatus;
            mes .@name$;
            mes "¡Aquí tienes!";
            close;}
    break;
    case 2:
        if(BaseLevel<.@level){goto NoCumple;}
        else{
            atcommand "@baselevel -"+.@level;
            set total,total+1;
            sc_end SC_ALL;
            ResetSkill;
            ResetStatus;
            mes .@name$;
            mes "¡Aquí tienes!";
            close;
            }
    break;

    }
end;

NoCumple:
mes .@name$;
mes "Lo siento, no cumples con los requisitos necesarios.";
close;
end;

}
« Última modificación: 31 de Enero de 2014, 01:53:54 am por Alepcis »




Desconectado Alepcis

  • First Job
  • *
  • Mensajes: 307
  • Todo es un sueño, una falsa realidad.
  • Guild: Agua&Jabón[GL]
  • Pj Principal: Alepcis
Re:[Aporte]Algunos NPC
« Respuesta #2 en: 19 de Enero de 2014, 19:19:10 pm »
[Reservado en caso de aportar más scripts]

Si tienes problemas con algún script, envíarme un PM y será revisado ya que son de mi baúl de scripts.