Jump to content

[Script] Encantamiento


Ichigo

Recommended Posts


  • Group:  Members
  • Topic Count:  30
  • Topics Per Day:  0.01
  • Content Count:  99
  • Reputation:   11
  • Joined:  01/22/13
  • Last Seen:  

Hola a todos.

Les traigo un encantador de equipo, encanta cualquier tipo de equipo a cambio de cash.

Solo tienen que cambiar la posición del NPC.

Espero que les guste.

Encantamiento.txt


//=====================================
// Script creado por Ichigo
//=====================================
Crystilia,52,91,5 script Freya#Encantamiento 465,{
set @name$, "[^0000FFFreya^000000]";
cutin "3rd_wl_queen01",2;
mes @name$;
mes "Soy la diosa Freya.";
mes "Capaz de encantar cualquier parte de tu equipo.";
M_Menu:
next;
menu "Head - ["+getequipname(1)+"]",PART1,"Body - ["+getequipname(2)+"]",PART2,"Left hand - ["+getequipname(3)+"]",PART3,"Right hand - ["+getequipname(4)+"]",PART4,"Robe - ["+getequipname(5)+"]",PART5,"Shoes - ["+getequipname(6)+"]",PART6,"Accessory 1 - ["+getequipname(7)+"]",PART7,"Accessory 2 - ["+getequipname(8)+"]",PART8,"Head 2 - ["+getequipname(9)+"]",PART9,"Head 3 - ["+getequipname(10)+"]",PART10;

//Head Gear
PART1:
set .@part,1;
set .@prize,50;
if (getequipisequiped(1)) goto CHECK1;
goto NoEncantar;
//Armor
PART2:
set .@part,2;
if (getequipisequiped(2)) goto CHECK1;
goto NoEncantar;
//Left Hand
PART3:
set .@part,3;
if (getequipisequiped(3)) goto CHECK1;
goto NoEncantar;
//Right Hand
PART4:
set .@part,4;
if (getequipisequiped(4)) goto CHECK1;
goto NoEncantar;
//Garment
PART5:
set .@part,5;
if (getequipisequiped(5)) goto CHECK1;
goto NoEncantar;
//Foot Gear
PART6:
set .@part,6;
if (getequipisequiped(6)) goto CHECK1;
goto NoEncantar;
//Accessory1
PART7:
set .@part,7;
if (getequipisequiped(7)) goto CHECK1;
goto NoEncantar;
//Accessory2
PART8:
set .@part,8;
if (getequipisequiped(8)) goto CHECK1;
goto NoEncantar;
PART9:
set .@part,9;
if (getequipisequiped(9)) goto CHECK1;
goto NoEncantar;
PART10:
set .@part,10;
goto NoEncantar;
CHECK1:
switch(.@part) {
case 1:
case 2:
set .@prize,500;
break;
case 3:
case 4:
switch(getequipweaponlv(.@part)) {
case 1: set .@prize,350; break;
case 2: set .@prize,400; break;
case 3: set .@prize,450; break;
case 4: set .@prize,500; break;
}
break;
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
set .@prize,500;
break;
}
callsub S_Enchant,getequipid(.@part),.@part,.@prize;
end;

NoEncantar:
mes @name$;
mes "No tienes nada para encantar";
emotion 6;
goto M_Menu;

S_Enchant:
if(countitem(getarg(0)) == 1) {
set .@N_Slots, getitemslots(getarg(0));
set .@card0, getequipcardid(getarg(1),0);
set .@card1, getequipcardid(getarg(1),1);
set .@card2, getequipcardid(getarg(1),2);
set .@card3, getequipcardid(getarg(1),3);

mes @name$;
mes "Cada vez que quieras encantarlo, cuesta "+getarg(2)+" Cash Points.";
mes "¿Quieres encantarlo?";
next;
switch(select("Hmm... Mejor más tarde.:Si, encantala.")) {
case 1:
close2;
cutin "", 255;
end;
case 2:
if(.@N_Slots == 4) {
mes "No puedes encantarlo.";
close2;
cutin "", 255;
end;
}
if((.@N_Slots == 3) && (.@card3 > 0)) {
mes "No puedes encantarlo.";
close2;
cutin "", 255;
end;
}
if((.@N_Slots == 2) && (.@card2 > 0)) {
if(.@card3 > 0) {
mes "No puedes encantarlo.";
close2;
cutin "", 255;
end;
}
}
if((.@N_Slots == 1) && (.@card1 > 0)) {
if(.@card2 > 0) {
if(.@card3 > 0) {
mes "No puedes encantarlo.";
close2;
cutin "", 255;
end;
}
}
}
if((.@N_Slots == 0) && (.@card0 > 0)) {
if(.@card1 > 0) {
if(.@card2 > 0) {
if(.@card3 > 0) {
mes "No puedes encantarlo.";
close2;
cutin "", 255;
end;
}
}
}
}
}
if(#CASHPOINTS < getarg(2)) {
mes @name$;
mes "Lo siento, pero no tienes suficientes Cash Points.";
close2;
cutin "", 255;
end;
}
mes @name$;
mes "Vamos a encantarla ...";
progressbar "ffff00",7;
close2;
M_Selec:
set .@i, rand(4700,4862);
if((.@i == 4845) || (.@i == 4846) || (.@i == 4847)) goto M_Selec;

switch(.@N_Slots) {
case 0:
if(.@card0 == 0) set .@card0, .@i;
else if(.@card1 == 0) set .@card1, .@i;
else if(.@card2 == 0) set .@card2, .@i;
else if(.@card3 == 0) set .@card3, .@i;
break;
case 1:
if(.@card1 == 0) set .@card1, .@i;
else if(.@card2 == 0) set .@card2, .@i;
else if(.@card3 == 0) set .@card3, .@i;
break;
case 2:
if(.@card2 == 0) set .@card2, .@i;
else if(.@card3 == 0) set .@card3, .@i;
break;
case 3:
if(.@card3 == 0) set .@card3, .@i;
break;
}
set #CASHPOINTS, #CASHPOINTS - getarg(2);
set .@refinerycnt, getequiprefinerycnt(getarg(1)); // Refinamiento del equipo
delitem getarg(0), 1;
if(rand(10000) <= (2500+(readparam(bLuk)+readparam(SC_INCLUK))+(readparam(bDex)+readparam(SC_INCDEX)))) {
getitem2 getarg(0), 1, 1, .@refinerycnt, 0, .@card0, .@card1, .@card2, .@card3;
//specialeffect2 EF_REFINEOK;
specialeffect EF_LORD;
mes @name$;
mes "Perfecto, todo ha salido bien.";
close2;
cutin "", 255;
end;
} else {
//specialeffect2 EF_REFINEFAIL;
specialeffect EF_SUI_EXPLOSION;
mes @name$;
mes "Lo siento, el proceso ha fallado.";
close2;
cutin "", 255;
end;
}
} else if(countitem(getarg(0)) > 1) {
mes @name$;
mes "Hmm? Solo puedes tener un mismo tipo de objeto!";
mes "Por favor, vuelva con un solo equipo a encantar.";
close2;
cutin "", 255;
end;
} else {
mes @name$;
mes "Hmm? No hay nada que encantar!";
mes "Por favor, vuelva con un solo equipo a encantar.";
close2;
cutin "", 255;
end;
}
end;
}

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  86
  • Reputation:   3
  • Joined:  02/24/12
  • Last Seen:  

Super, pero me quedó una duda:

CHECK1:
switch(.@part) {
case 1:
case 2:
set .@prize,500;
break;
case 3:
case 4:
switch(getequipweaponlv(.@part)) {
case 1: set .@prize,350; break;
case 2: set .@prize,400; break;
case 3: set .@prize,450; break;
case 4: set .@prize,500; break;
}
break;
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
set .@prize,500;
break;
}

por que ese Switch tiene tantos case sin uso?

pienso yo que se podrían eliminar .

pero es solo una idea, Muchas gracias :D!

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  68
  • Reputation:   13
  • Joined:  11/14/11
  • Last Seen:  

Super, pero me quedó una duda:

CHECK1:
switch(.@part) {
case 1:
case 2:
set .@prize,500;
break;
case 3:
case 4:
switch(getequipweaponlv(.@part)) {
case 1: set .@prize,350; break;
case 2: set .@prize,400; break;
case 3: set .@prize,450; break;
case 4: set .@prize,500; break;
}
break;
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
set .@prize,500;
break;
}

por que ese Switch tiene tantos case sin uso?

pienso yo que se podrían eliminar .

pero es solo una idea, Muchas gracias :D!

Lo que pasa es que esos cases son dirigidos a colocar esa variable, y no deben ser quitados.

Claro, siempre se puede sustituir unas cuantas lineas con tan solo poner:

if ( 5 <= .@parte && .@parte <= 10 )

Edited by Miles
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  86
  • Reputation:   3
  • Joined:  02/24/12
  • Last Seen:  

Correcto, por eso no tenían "break"

buen alcance :P

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  30
  • Topics Per Day:  0.01
  • Content Count:  99
  • Reputation:   11
  • Joined:  01/22/13
  • Last Seen:  

Si, era una forma de especificar por partes, o si se quiere modificar el precio de x parte en especial. xD

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

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

×
×
  • Create New...