Zplague
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Zplague Entrar

Seu portal de Zombie Plague no Brasil


description[AJUDA]Sistema de Tickets Empty[AJUDA]Sistema de Tickets

more_horiz
Olá , eu tenho o sistema de Tickets do Forum postado pelo Slayer so que tem um problema no plugin que e a primeira versao ainda.

Qual e o problema ?
Os tickets nao estao sendo salvos corretamente.

Exemplo:
Eu jogo 1 mapa e ganho 50 tickets , mas nao troquei ainda porque estou deixando acumular , quando for para o proximo mapa ou ele vai estar no 0 ou vai estar com mais do que eu tinha tipo uns 100.

Eu queria saber se alguem saberia colocar os tickets para salvar pelo Nick dos jogadores , pela conta do banco nao sei ...

SMA :

Código:

#include <amxmodx>
#include <amxmisc>
#include <zombieplague>
#include <nvault>

new ticket[33];

new g_vault;
new szText[555 char]

public plugin_init() {
   // Registro do Plugin
   register_plugin("Cash", "1.0", "T.Armg");
   
   // Comando para aparecer o MENU
   register_clcmd("say /cash", "TicketCMD");
   
   // Comando para abrir a Vault
   // (Este eh o comando que nos fizemos agora pouco ali em cima)
   // Essencial para salvar os tickets
   g_vault = nvault_open("ticket_tutorial");
   
}

public SaveData(id)
{
   new AuthID[35];
   get_user_authid(id, AuthID, 34);
   
   new vaultkey[64], vaultdata[256];
   format(vaultkey,63,"%s-TicketTuto",AuthID);
   format(vaultdata,255,"%i#",ticket[id]);
   
   nvault_set(g_vault,vaultkey,vaultdata);
   
   return PLUGIN_CONTINUE;
   
}

public LoadData(id)
{
   new AuthID[35];
   get_user_authid(id, AuthID, 34);
   
   new vaultkey[64],vaultdata[256];
   format(vaultkey,63,"%s-TicketTuto",AuthID);
   format(vaultdata,255,"%i#",ticket[id]);
   
   nvault_get(g_vault,vaultkey,vaultdata,255);
   replace_all(vaultdata, 255, "#", " ");
   
   new tckt[32];
   parse(vaultdata, tckt, 31);
   
   ticket[id] = str_to_num(tckt);
   
   return PLUGIN_CONTINUE
   
}

public client_connect(id)
{
   LoadData(id)
}

public client_disconnect(id)
{
   remove_task(id)
   
   SaveData(id)
}
public client_putinserver(id)
{
   set_task(180.0, "TicketADD", id, _, _, "b") // A Cada 3 Segundos
}
public TicketADD(id)
{
   ticket[id]++ // Adicionar mais um ticket (se voce quiser adicionar mais de um coloque ticket[id] += 5)
   client_print(id, print_chat, "Voce ganhou um Cash, Voce ganha um Cash a cada 3 Minutos ! Digite /cash ") // Mensagem de quando ganha um ticket
   
   SaveData(id) // Salvar o ticket que ganhou
}
public TicketCMD(id)
{
   formatex(szText, charsmax(szText), "Menu de Cash's^n\wSaldo de Cash: \y%i", ticket[id]);
   new menu = menu_create(szText, "tickshandl")
   //new menu = menu_create("Menu de Cash's^n\wSaldo de Cash: \y%i", "tickshandl", ticket[id]);
   
   menu_additem(menu, "Trocar 10 Cash's por 10 Ammo Packs", "1", 0);
   menu_additem(menu, "Trocar 20 Cash's por 20 Ammo Packs", "2", 0);
   menu_additem(menu, "Trocar 30 Cash's por 30 Ammo Packs", "3", 0);
   menu_additem(menu, "Trocar 40 Cash's por 40 Ammo Packs", "4", 0);
   menu_additem(menu, "Trocar 40 Cash's por 50 Ammo Packs", "5", 0);
   menu_additem(menu, "Trocar 80 Cash's por 100 Ammo Packs", "6", 0);
   menu_additem(menu, "Trocar 100 Cash's por 150 Ammo Packs", "7", 0);
   
   menu_setprop(menu, MPROP_EXITNAME, "Sair");
   menu_display(id, menu, 0);
}
public tickshandl(id, menu, item)
{
   if(item == MENU_EXIT)
   {
      menu_destroy(menu)
      return PLUGIN_HANDLED
   }
   
   new data[6], iName[64]
   new access, callback
   
   menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
   
   new user_ammo = zp_get_user_ammo_packs(id);
   
   switch(str_to_num(data))
   {
      case 1:
      {
         if(is_user_alive(id)) {
            if(ticket[id] < 5) {
               client_print(id, print_chat, "Voce nao tem Cash suficiente")
               return PLUGIN_HANDLED;
               } else {
               zp_set_user_ammo_packs(id, user_ammo+10);
               ticket[id] -= 10;
            }
         }
      }
      case 2:
      {
         if(is_user_alive(id)) {
            if(ticket[id] < 10) {
               client_print(id, print_chat, "Voce nao tem Cash suficiente")
               return PLUGIN_HANDLED;
               } else {
               zp_set_user_ammo_packs(id, user_ammo+20);
               ticket[id] -= 20;
            }
         }
      }
      case 3:
      {
         if(is_user_alive(id)) {
            if(ticket[id] < 15) {
               client_print(id, print_chat, "Voce nao tem Cash suficiente")
               return PLUGIN_HANDLED;
               } else {
               zp_set_user_ammo_packs(id, user_ammo+30);
               ticket[id] -= 30;
            }
         }
      }
      case 4:
      {
         if(is_user_alive(id)) {
            if(ticket[id] < 20) {
               client_print(id, print_chat, "Voce nao tem Cash suficiente")
               return PLUGIN_HANDLED;
               } else {
               zp_set_user_ammo_packs(id, user_ammo+40);
               ticket[id] -= 40;
            }
         }
      }
      case 5:
      {
         if(is_user_alive(id)) {
            if(ticket[id] < 25) {
               client_print(id, print_chat, "Voce nao tem Cash suficiente")
               return PLUGIN_HANDLED;
               } else {
               zp_set_user_ammo_packs(id, user_ammo+50);
               ticket[id] -= 40;
            }
         }
      }
      case 6:
      {
         if(is_user_alive(id)) {
            if(ticket[id] < 80) {
               client_print(id, print_chat, "Voce nao tem Cash suficiente")
               return PLUGIN_HANDLED;
               } else {
               zp_set_user_ammo_packs(id, user_ammo+100);
               ticket[id] -= 80;
            }
         }
      }
      case 7:
      {
         if(is_user_alive(id)) {
            if(ticket[id] < 100) {
               client_print(id, print_chat, "Voce nao tem Cash suficiente")
               return PLUGIN_HANDLED;
               } else {
               zp_set_user_ammo_packs(id, user_ammo+150);
               ticket[id] -= 100;
            }
         }
      }
      
      case 8:
      {
         TicketCMD(id)
      }
   }
   
   menu_destroy(menu)
   return PLUGIN_HANDLED
}

OBS: Essa SMA ja foi editada para que o saldo de Cash's aparece-se no lugar correto e nao ocupando 1 espaço no Menu , aconselho quem for usar o sistema , usar essa SMA.

Última edição por [P]erfec[T] [S]cr[@]s[H] em 9/9/2013, 4:23 pm, editado 1 vez(es) (Motivo da edição : Ajeitando as includes)

description[AJUDA]Sistema de Tickets EmptyRe: [AJUDA]Sistema de Tickets

more_horiz
Posta sma do banco ou me manda por mp que quando chegar em casa eu vejo o que faço.

description[AJUDA]Sistema de Tickets EmptyRe: [AJUDA]Sistema de Tickets

more_horiz
Vlw por avisa eu tenho ela e nao sabia desse negocio ! se vc consiguir arruma ela passa para mim (=

description[AJUDA]Sistema de Tickets EmptyRe: [AJUDA]Sistema de Tickets

more_horiz
Leozinho escreveu:
Posta sma do banco ou me manda por mp que quando chegar em casa eu vejo o que faço.
tem como se arruma ela pramim leo?

description[AJUDA]Sistema de Tickets EmptyRe: [AJUDA]Sistema de Tickets

more_horiz
Leozinho escreveu:
Posta sma do banco ou me manda por mp que quando chegar em casa eu vejo o que faço.
Nao tenho a SMA do banco :/
o banco que eu uso e o novo do Odair , e ele so postou a amxx .

sera que nao tem como salvar por nick?

description[AJUDA]Sistema de Tickets EmptyRe: [AJUDA]Sistema de Tickets

more_horiz
Ta aqui, esta salvando por nick, e eu passei de nvault pra fvault.

Código:

#include <amxmodx>
#include <amxmisc>
#include <zombieplague>
#include <fvault>

new ticket[33];

new szText[555 char]

public plugin_init() {
   // Registro do Plugin
   register_plugin("Cash", "1.0", "T.Armg");
   
   // Comando para aparecer o MENU
   register_clcmd("say /cash", "TicketCMD");
}

public SaveData(id)
{
   new Nick[33], vaultdata[256];
   get_user_name(id, Nick, charsmax(Nick));
   
   format(vaultdata,255,"%i",ticket[id]);
   
   fvault_set_data("ticket_tutorial",Nick,vaultdata);
   
   return PLUGIN_CONTINUE;
   
}

public LoadData(id)
{
   new Nick[33], vaultdata[256];
   get_user_name(id, Nick, charsmax(Nick));
   
   format(vaultdata,255,"%i",ticket[id]);
   
   fvault_get_data("ticket_tutorial",Nick,vaultdata,255);
   
   new tckt[32];
   parse(vaultdata, tckt, 31);
   
   ticket[id] = str_to_num(tckt);
   
   return PLUGIN_CONTINUE
}

public client_connect(id)
{
   LoadData(id)
}

public client_disconnect(id)
{
   remove_task(id)
   
   SaveData(id)
}
public client_putinserver(id)
{
   set_task(180.0, "TicketADD", id, _, _, "b") // A Cada 3 Segundos
}
public TicketADD(id)
{
   ticket[id]++ // Adicionar mais um ticket (se voce quiser adicionar mais de um coloque ticket[id] += 5)
   client_print(id, print_chat, "Voce ganhou um Cash, Voce ganha um Cash a cada 3 Minutos ! Digite /cash ") // Mensagem de quando ganha um ticket
   
   SaveData(id) // Salvar o ticket que ganhou
}
public TicketCMD(id)
{
   formatex(szText, charsmax(szText), "Menu de Cash's^n\wSaldo de Cash: \y%i", ticket[id]);
   new menu = menu_create(szText, "tickshandl")
   //new menu = menu_create("Menu de Cash's^n\wSaldo de Cash: \y%i", "tickshandl", ticket[id]);
   
   menu_additem(menu, "Trocar 10 Cash's por 10 Ammo Packs", "1", 0);
   menu_additem(menu, "Trocar 20 Cash's por 20 Ammo Packs", "2", 0);
   menu_additem(menu, "Trocar 30 Cash's por 30 Ammo Packs", "3", 0);
   menu_additem(menu, "Trocar 40 Cash's por 40 Ammo Packs", "4", 0);
   menu_additem(menu, "Trocar 40 Cash's por 50 Ammo Packs", "5", 0);
   menu_additem(menu, "Trocar 80 Cash's por 100 Ammo Packs", "6", 0);
   menu_additem(menu, "Trocar 100 Cash's por 150 Ammo Packs", "7", 0);
   
   menu_setprop(menu, MPROP_EXITNAME, "Sair");
   menu_display(id, menu, 0);
}
public tickshandl(id, menu, item)
{
   if(item == MENU_EXIT)
   {
      menu_destroy(menu)
      return PLUGIN_HANDLED
   }
   
   new data[6], iName[64]
   new access, callback
   
   menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
   
   new user_ammo = zp_get_user_ammo_packs(id);
   
   switch(str_to_num(data))
   {
      case 1:
      {
         if(is_user_alive(id)) {
            if(ticket[id] < 5) {
               client_print(id, print_chat, "Voce nao tem Cash suficiente")
               return PLUGIN_HANDLED;
               } else {
               zp_set_user_ammo_packs(id, user_ammo+10);
               ticket[id] -= 10;
            }
         }
      }
      case 2:
      {
         if(is_user_alive(id)) {
            if(ticket[id] < 10) {
               client_print(id, print_chat, "Voce nao tem Cash suficiente")
               return PLUGIN_HANDLED;
               } else {
               zp_set_user_ammo_packs(id, user_ammo+20);
               ticket[id] -= 20;
            }
         }
      }
      case 3:
      {
         if(is_user_alive(id)) {
            if(ticket[id] < 15) {
               client_print(id, print_chat, "Voce nao tem Cash suficiente")
               return PLUGIN_HANDLED;
               } else {
               zp_set_user_ammo_packs(id, user_ammo+30);
               ticket[id] -= 30;
            }
         }
      }
      case 4:
      {
         if(is_user_alive(id)) {
            if(ticket[id] < 20) {
               client_print(id, print_chat, "Voce nao tem Cash suficiente")
               return PLUGIN_HANDLED;
               } else {
               zp_set_user_ammo_packs(id, user_ammo+40);
               ticket[id] -= 40;
            }
         }
      }
      case 5:
      {
         if(is_user_alive(id)) {
            if(ticket[id] < 25) {
               client_print(id, print_chat, "Voce nao tem Cash suficiente")
               return PLUGIN_HANDLED;
               } else {
               zp_set_user_ammo_packs(id, user_ammo+50);
               ticket[id] -= 40;
            }
         }
      }
      case 6:
      {
         if(is_user_alive(id)) {
            if(ticket[id] < 80) {
               client_print(id, print_chat, "Voce nao tem Cash suficiente")
               return PLUGIN_HANDLED;
               } else {
               zp_set_user_ammo_packs(id, user_ammo+100);
               ticket[id] -= 80;
            }
         }
      }
      case 7:
      {
         if(is_user_alive(id)) {
            if(ticket[id] < 100) {
               client_print(id, print_chat, "Voce nao tem Cash suficiente")
               return PLUGIN_HANDLED;
               } else {
               zp_set_user_ammo_packs(id, user_ammo+150);
               ticket[id] -= 100;
            }
         }
      }
      
      case 8:
      {
         TicketCMD(id)
      }
   }
   
   menu_destroy(menu)
   return PLUGIN_HANDLED
}

description[AJUDA]Sistema de Tickets EmptyRe: [AJUDA]Sistema de Tickets

more_horiz
Muito obrigado Leozinho , funciono perfeitamente .
+1 

OBS : Pode ser fechado o Topico

description[AJUDA]Sistema de Tickets EmptyRe: [AJUDA]Sistema de Tickets

more_horiz
Trancado.

description[AJUDA]Sistema de Tickets EmptyRe: [AJUDA]Sistema de Tickets

more_horiz
privacy_tip Permissões neste sub-fórum
Não podes responder a tópicos
power_settings_newInicie sessão para responder