Ichigo Posted January 26, 2013 Group: Members Topic Count: 30 Topics Per Day: 0.01 Content Count: 99 Reputation: 11 Joined: 01/22/13 Last Seen: June 7, 2023 Share Posted January 26, 2013 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; } Quote Link to comment Share on other sites More sharing options...
jx4nk00 Posted January 26, 2013 Group: Members Topic Count: 18 Topics Per Day: 0.00 Content Count: 86 Reputation: 3 Joined: 02/24/12 Last Seen: August 2, 2016 Share Posted January 26, 2013 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 ! Quote Link to comment Share on other sites More sharing options...
Miles Posted January 26, 2013 Group: Members Topic Count: 4 Topics Per Day: 0.00 Content Count: 68 Reputation: 13 Joined: 11/14/11 Last Seen: April 30, 2013 Share Posted January 26, 2013 (edited) 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 ! 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 January 26, 2013 by Miles Quote Link to comment Share on other sites More sharing options...
jx4nk00 Posted January 26, 2013 Group: Members Topic Count: 18 Topics Per Day: 0.00 Content Count: 86 Reputation: 3 Joined: 02/24/12 Last Seen: August 2, 2016 Share Posted January 26, 2013 Correcto, por eso no tenían "break" buen alcance Quote Link to comment Share on other sites More sharing options...
Ichigo Posted January 29, 2013 Group: Members Topic Count: 30 Topics Per Day: 0.01 Content Count: 99 Reputation: 11 Joined: 01/22/13 Last Seen: June 7, 2023 Author Share Posted January 29, 2013 Si, era una forma de especificar por partes, o si se quiere modificar el precio de x parte en especial. xD Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.