101Level - Foro

[Aporte] Entregador de Premios [Script]

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

Desconectado Mastakilla

  • *
  • *
  • 613
  • 47
  • Actividad:
    0%
  • Sexo: Masculino
  • Yipi kai yey hijo de puta!
[Aporte] Entregador de Premios [Script]
« en: 21 de Mayo de 2014, 17:08 »
Bien quería regalarle a la comunidad que tanto me ha dado a mi, otro script bastante útil.

Sirve para entregar los premios de los Eventos sin que los GM de eventos dispongan del tan codiciado comando de @item y que tantos dolores de cabeza y problemas de corrupción traen a los servidores.
Además cada vez que se entrega un premio se hace público automáticamente con un Broadcast para que todo el mundo sea sabedor de ellos y para los menos avispados o que no hallan podido leerlo también se almacenan los logs y estos podrán ser consultados en la web en un modo historial.

Funciona de la siguiente forma:

1- GM Habla con el NPC y elije la opción Entregar Premio.

2- Se introduce el nick del usuario a premiar.

3- Seguidamente se ha de seleccionar que tipo de premio se desea entregar,en este caso lo hemos preparado para cashpoints/zeny/items.(Se puede seleccionar un valor fijo un valor variable para los eventos de menos envergadura, los valores variables están fijados con %)

4- En caso de ser valor fijo se ha de añadir la cantidad de zeny o cash que se desea entregar o en su defecto ID del item y Cantidad.

5- El NPC le preguntara al GM si esta seguro y si desea confirmar el envió.

6- Al confirmar es lanzado un anuncio indicando el Nombre del GM que realiza la entrega, el usuario que la recibe, y el premio a recibir (cash/zeny/item)

Por último todo esto se almacena en la base de datos del servidor para su posterior consulta.

En resumidas cuentas ¡ Se acabó la necesidad de comandos en los GM de eventos ! Y llegó la transparencia al servidor !

Código: Lua
  1. prontera,124,171,5      script  Premiador       872,{
  2. mes "^FF0000Premiador^000000";
  3. if(getgmlevel() >= .GMlevel) {
  4.         mes "Hola GM, quieres entregar un premio?";
  5.         mes "^FF0000Recuerda^000000: La entrega de los premios se hace de forma publica y se guarda un registro de esta.";
  6.         if(select("~ Entregar Premio:~ Salir")==2) close;
  7.         next;
  8.         mes "^FF0000Premiador^000000";
  9.         mes "Escribe el nombre del jugador que al que quieres premiar.";
  10.         set .@gm$, strcharinfo(0);
  11.         set .@gmid, getcharid(3);
  12.         input .@name$;
  13.         query_sql "SELECT account_id FROM `char` WHERE `name` = '"+.@name$+"'", .@account_id;
  14.     if(!.@account_id) {mes "Ese player no existe."; close;}
  15.         next;
  16.         mes "^FF0000GM Premiador^000000";
  17.         mes "Escribe un resumen de la razón por la cual entregas este premio.";
  18.         input .@reason$;
  19.         next;
  20.         mes "^FF0000Premiador^000000";
  21.         mes "Selecciona la modalidad de premio.";
  22.         switch(select("~ Objeto Random:~ Zeny Random:~ Cash Random"+(getgmlevel() >= .GMlevelT?":~ Objeto:~ Zeny:~ Cash":"")+"")) {
  23.                 case 4:
  24.                         next;
  25.                         mes "^FF0000Premiador^000000";
  26.                         mes "Introduce la ID del objeto que quieres entregar como premio.";
  27.                         input .@nameid;
  28.                         if(getiteminfo(.@nameid,0) == -1) {next; mes "^FF0000GM Premiador^000000"; mes "El objeto elegido no existe."; close;}
  29.                         next;
  30.                         mes "^FF0000Premiador^000000";
  31.                         mes "Digite la cantidad de ["+getitemname(.@nameid)+"] que desea entregar como premio.";
  32.                         input .@amount;
  33.                 case 1:
  34.                         next;
  35.                         mes "^FF0000Premiador^000000";
  36.                         mes "¿Confirmas el envio del premio?";
  37.                         if(select("~ Si:~ No")==2) close;
  38.                         if(!.@nameid || !.@amount) {
  39.                                 set .@s, getarraysize(.ItPremios)/2;
  40.                                 set .@it, rand(.@s)*2;
  41.                                 set .@nameid, .ItPremios[.@it];
  42.                                 set .@amount, .ItPremios[.@it+1];
  43.                         }
  44.                         close2;
  45.                         if(attachrid(.@account_id)) {
  46.                                 getitem .@nameid, .@amount;
  47.                         } else {
  48.                                 query_sql("INSERT INTO storage (account_id, nameid, amount, identify) VALUES ("+.@account_id+", "+.@nameid+", "+.@amount+", 1)");
  49.                         }
  50.                         announce "["+.@gm$+"] le entrega premio en Items a ["+.@name$+"]",0;
  51.                         query_sql("INSERT INTO premios_log (account_gm_id, account_user_id, nameid, amount, reason) VALUES ("+.@gmid+", "+.@account_id+", "+.@nameid+", "+.@amount+", '"+.@reason$+"')");
  52.                         end;
  53.                 case 5:
  54.                         next;
  55.                         mes "^FF0000Premiador^000000";
  56.                         mes "Introduce la cantidad de Zeny que desea entregar como premio.";
  57.                         input .@zeny;
  58.                 case 2:
  59.                         next;
  60.                         mes "^FF0000Premiador^000000";
  61.                         mes "¿Confirmas el envío del premio?";
  62.                         if(select("~ Si:~ No")==2) close;
  63.                         if(!.@zeny)
  64.                                 set .@zeny, rand(.Zeny[0],.Zeny[1]);
  65.                         close2;
  66.                         if(attachrid(.@account_id)) {
  67.                                 set Zeny, Zeny + .@zeny;
  68.                         } else {
  69.                                 query_sql("UPDATE `char` SET zeny = zeny+"+.@zeny+" WHERE name = '"+.@name$+"'");
  70.                         }
  71.                         announce "["+.@gm$+"] le entrega premio en Zeny a ["+.@name$+"]",0;
  72.                         query_sql("INSERT INTO premios_log (account_gm_id, account_user_id, zeny, reason) VALUES ("+.@gmid+", "+.@account_id+", "+.@zeny+", '"+.@reason$+"')");
  73.                         end;
  74.                 case 6:
  75.                         next;
  76.                         mes "^FF0000Premiador^000000";
  77.                         mes "Introduce la cantidad de CashPoints que desea entregar como premio.";
  78.                         input .@cash;
  79.                 case 3:
  80.                         next;
  81.                         mes "^FF0000Premiador^000000";
  82.                         mes "¿Confirmas el envío del premio?";
  83.                         if(select("~ Si:~ No")==2) close;
  84.                         if(!.@cash)
  85.                                 set .@cash, rand(.Cash[0],.Cash[1]);
  86.                         close2;
  87.                         if(attachrid(.@account_id)) {
  88.                                 set #CASHPOINTS, #CASHPOINTS + .@cash;
  89.                         } else {
  90.                         query_sql("SELECT IF (EXISTS(SELECT * FROM global_reg_value WHERE str = '#CASHPOINTS' AND account_id = "+.@account_id+"),1, 0)", .@select);
  91.                                 if(.@select==1)
  92.                                         query_sql("UPDATE `global_reg_value` SET value = value+"+.@cash+" WHERE str = '#CASHPOINTS' AND account_id = "+.@account_id+"");
  93.                                 else
  94.                                         query_sql("INSERT INTO global_reg_value (str, value, type, account_id) VALUES ('#CASHPOINTS', "+.@cash+", 2, "+.@account_id+")");
  95.                         }
  96.                         announce "["+.@gm$+"] le entrega premio en CashPoints a ["+.@name$+"]",0;
  97.                         query_sql("INSERT INTO premios_log (account_gm_id, account_user_id, cash, reason) VALUES ("+.@gmid+", "+.@account_id+", "+.@cash+", '"+.@reason$+"')");
  98.                         end;
  99.         }
  100. } else {
  101.         mes "Soy el encargado de entregar los premios de parte de los GMs.";
  102.         next;
  103.         mes "^FF0000Premiador^000000";
  104.         mes "Estos premios serán entregados públicamente y se guardará un registro con las razones por la que se entrego este premio.";
  105.         next;
  106.         mes "^FF0000Premiador^000000";
  107.         mes "El objetivo es la transparencia en el Staff y el control de la corrupción.";
  108. }
  109. close;
  110.  
  111. OnInit:
  112. query_sql("CREATE TABLE IF NOT EXISTS `premios_log` (`id` int(11) NOT NULL AUTO_INCREMENT,`account_gm_id` int(11) NOT NULL, `account_user_id` int(11) NOT NULL, `nameid` int(11) DEFAULT NULL, `amount` int(11) DEFAULT NULL, `zeny` int(11) DEFAULT NULL, `cash` int(11) DEFAULT NULL, `reason` char(50) DEFAULT NULL, PRIMARY KEY (`id`))");
  113. set .GMlevel, 60;       //Minimo nivel de GM para utilizar este NPC
  114. set .GMlevelT, 80;      //Minimo nivel de GM para utilizar este NPC y usar la opción de entregar item especifico.
  115. setarray .ItPremios[0],512,1,513,10,514,50;     //Lista de premios aleatorios (item_id,ammount)
  116. setarray .Zeny[0],100000,500000;        //Intervalo de premio en zeny, el zeny a entregar sera un numero aleatorio entre los dos números del array.
  117. setarray .Cash[0],10,30;                        //El mismo concepto de Zeny.
  118. end;
  119. }

NOTA: Este Script ha sido realizado gracias al usuario @jeyner123 perteneciente a la comunidad de divine el cual hace ya 3 años trabajo para uno de mis servidores y creo un script del cual se han aprovechado unas cuantas lineas y sirvió de inspiración para la creación de este.

Salu2 Gracias por leer ~ Y recuerda dejar tu  :angel si te gusta lo que ven tus ojos x3
Recuerda si te gustan mis aportes :angel


Desconectado Gladiator

  • *
  • 301
  • 0
  • Actividad:
    0%
  • Sexo: Masculino
  • El Hispano
Re:[Aporte] Entregador de Premios [Script]
« Respuesta #1 en: 21 de Mayo de 2014, 17:15 »
Gran aporte +1  :plovewc6: :psmileha6:
“Hoy he visto cómo un esclavo se volvía más poderoso que el emperador de Roma.”

Desconectado Mastakilla

  • *
  • *
  • 613
  • 47
  • Actividad:
    0%
  • Sexo: Masculino
  • Yipi kai yey hijo de puta!
Re:[Aporte] Entregador de Premios [Script]
« Respuesta #2 en: 21 de Mayo de 2014, 17:22 »
Me gusta que te guste mañana subiré otro :)
Recuerda si te gustan mis aportes :angel

Desconectado ConfidencE

  • *
  • *
  • 590
  • 8
  • Actividad:
    0%
  • Sexo: Masculino
  • ¡You are my most people of Value!
Re:[Aporte] Entregador de Premios [Script]
« Respuesta #3 en: 21 de Mayo de 2014, 20:12 »
Yo tengo uno similar xD. Aunque el tuyo es más elaborado. Gran aporte


Desconectado Mastakilla

  • *
  • *
  • 613
  • 47
  • Actividad:
    0%
  • Sexo: Masculino
  • Yipi kai yey hijo de puta!
Re:[Aporte] Entregador de Premios [Script]
« Respuesta #4 en: 21 de Mayo de 2014, 20:31 »
Gracias soy consciente de que existen varios scripts similares, por eso quise darle un enfoque diferente :)
Recuerda si te gustan mis aportes :angel

jochi

Re:[Aporte] Entregador de Premios [Script]
« Respuesta #5 en: 21 de Mayo de 2014, 20:50 »
me da risa como la gente aporta scripts que desarrollan otros usuarios, por lo menos da los creditos wey.


Desconectado Mastakilla

  • *
  • *
  • 613
  • 47
  • Actividad:
    0%
  • Sexo: Masculino
  • Yipi kai yey hijo de puta!
Re:[Aporte] Entregador de Premios [Script]
« Respuesta #6 en: 21 de Mayo de 2014, 20:54 »
Este script esta hecho por mis manos con parte del código de jeyner123 y ya le dí los créditos si no vienes a aportar nada bueno al script mejor no habrás la boca y si lo haces hazlo con pruebas no con especulaciones :)
« última modificación: 21 de Mayo de 2014, 20:57 por Estream »
Recuerda si te gustan mis aportes :angel

jochi

Re:[Aporte] Entregador de Premios [Script]
« Respuesta #7 en: 21 de Mayo de 2014, 21:08 »
mejor no abra la boca? no sabia que aqui uno hablbala, uno lo que hace es escribir!

mira como te pones cuando te sueltan verdades, eso es lo bueno que aporto, no sabia que cambiarle las coordenadas de un mapa a un npc, cambiarle el nombre y  sprite, a un copypaste lo hacian tuyo.

 
« última modificación: 21 de Mayo de 2014, 21:13 por jochi »


Desconectado Mastakilla

  • *
  • *
  • 613
  • 47
  • Actividad:
    0%
  • Sexo: Masculino
  • Yipi kai yey hijo de puta!
Re:[Aporte] Entregador de Premios [Script]
« Respuesta #8 en: 21 de Mayo de 2014, 21:10 »
Mucho hablar y pocas pruebas en fin, confío en el criterio de los moderadores y espero te den tu merecido.

P.D Yo no me pongo de ninguna manera ni te insulto como haces tú xD

Salu2~ puedes unirte a mi club de fans si gustas!
« última modificación: 21 de Mayo de 2014, 21:14 por Estream »
Recuerda si te gustan mis aportes :angel

jochi

Re:[Aporte] Entregador de Premios [Script]
« Respuesta #9 en: 21 de Mayo de 2014, 21:17 »
darme mi merecido claro, eso quisieras verdad? me caes mal desde que me mandaste ese pm diciendo que no redistribuyera los npc, si tanto te molesta entonces para que demonios los compartes?

luego decias que era mentira y que no distribuis nada y eso me encojono aun mas, se mas hombre man, ese npc lo he visto en servidores desde antes del 2010, como en 8 servers y sé que no es tuyo


Desconectado Mastakilla

  • *
  • *
  • 613
  • 47
  • Actividad:
    0%
  • Sexo: Masculino
  • Yipi kai yey hijo de puta!
Re:[Aporte] Entregador de Premios [Script]
« Respuesta #10 en: 21 de Mayo de 2014, 21:28 »
Es el ultimo comentario que te contesto, si te caigo mal te aguantas no te queda otra, sobre el npc del GvG no te lo pasé a ti y por eso me molesto y encima como buen samaritano me ofrecí a ayudarte y tu como buen pedante que eres montaste un cirio a raíz de eso, no obstante yo no entro al juego de los insultos como tu lo haces, solo te dire que aunque modifiques los post he guardado las screen, y como te he dicho antes y te repito ahora APORTA PRUEBAS, al único que le tengo que dar créditos ya se los he dado, se que debe de molestar mucho que te caiga tan mal y te gusten mis aportes pero así es la vida muchacho, en fin espero que te baneen todas las cuentas del foro y que no puedas volver logear haciéndonos un favor a todo divine.

p.d te dejo el link de mi club de fans por si quieres unirte.

http://estreamfansclub.org

Recuerda si te gustan mis aportes :angel

jochi

Re:[Aporte] Entregador de Premios [Script]
« Respuesta #11 en: 21 de Mayo de 2014, 21:46 »
por que consideras tu que me van a banear? he visto post donde la gente se dice peores cosas y ni los infraccionan, y no me pongo a llorar como tu, tu link de fans no sirve, lo unico que sirve aqui son los aportes publicados que sacas de otra gente.

Desconectado Celsius

  • *
  • *
  • 6.600
  • 166
  • Actividad:
    0%
  • Sexo: Femenino
  • Cold as Fire(?) and Hot as Ice(?)
Re:[Aporte] Entregador de Premios [Script]
« Respuesta #12 en: 21 de Mayo de 2014, 22:11 »
Chicos... La gusta estar infraccionados vdd....

@jochi:
Por que será que cada que te veo es haciendo spam y desvirtuando posts...  Además de dar insultos...

@Estream:
Lo mejor es ignorar comentarios así y dejarlos que se amarguen solos.

@TODOS:
Como continúen así les daré mute directo con una linda infracción del 30%

La Clave del exito es la perseverancia, solo recuerda que todo lo bueno toma su debido tiempo. Si lo Aceleras siempre saldra mal.

Desconectado Miengo

  • *
  • *
  • 4.751
  • 561
  • Actividad:
    0%
  • Sexo: Masculino
Re:[Aporte] Entregador de Premios [Script]
« Respuesta #13 en: 21 de Mayo de 2014, 22:26 »
lo comento tambien en este post
E entrado un minuto a divine... Y que me encuentro? A jochi desvirtuando temas y faltando al respeto, se que jochi fue infraccionado hace escasos minutos por este post, no contento con eso, fue a otro post a seguir insultando
YO y lo digo bien claro para que despues vayan poniendome a parir... E infraccionado a jochi con un 5% extra (puesto aun tenia un 5% de una infraccion anterior y un 20% de este post... Lo cual hace un 30%) ... La cuestion, mute de 24horas y si vuelvo a ver un solo insulto mas solicitare baneo
Todas las infracciones que tienes son por insultos...

Desconectado jeyner123

  • *
  • 359
  • 12
  • Actividad:
    0%
  • Sexo: Masculino
  • Es mas entrete programar que jugar ro =P
Re:[Aporte] Entregador de Premios [Script]
« Respuesta #14 en: 22 de Mayo de 2014, 01:38 »
Como me divierten estas peleas xD!, sigan asi =D

Saludos =P


 

[Aporte] Premium Changename [Script]

Iniciado por Mastakilla

Respuestas: 7
Vistas: 808
Último mensaje 20 de Mayo de 2014, 01:33
por jeyner123
[Aporte] Espía Doble Login [Script]

Iniciado por Mastakilla

Respuestas: 2
Vistas: 741
Último mensaje 18 de Mayo de 2014, 20:36
por Mastakilla
[Aporte] Sistema de soporte ingame [Script]

Iniciado por Mastakilla

Respuestas: 4
Vistas: 655
Último mensaje 20 de Mayo de 2014, 01:43
por Mastakilla