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 :
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, 8:23 pm, editado 1 vez(es) (Motivo da edição : Ajeitando as includes)
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, 8:23 pm, editado 1 vez(es) (Motivo da edição : Ajeitando as includes)