hlmod.hu
https://hlmod.hu/

ZP Bank hiba
https://hlmod.hu/viewtopic.php?f=24&t=25817
Oldal: 1 / 1

Szerző:  adriansr14 [2016.08.09. 13:28 ]
Hozzászólás témája:  ZP Bank hiba

Sziasztok! miért van ez a hiba?

  1. Welcome to the AMX Mod X 1.8.1-300 Compiler.
  2. Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team
  3.  
  4. Error: Undefined symbol "CHATCOLOR_GREY" on line 256
  5. Warning: Expression has no effect on line 256
  6. Warning: Expression has no effect on line 256
  7. Warning: Expression has no effect on line 256
  8. Error: Expected token: ";", but found ")" on line 256
  9. Error: Invalid expression, assumed zero on line 256
  10. Error: Too many error messages on one line on line 256
  11.  
  12. Compilation aborted.
  13. 4 Errors.
  14. Could not locate output file C:\Users\Adrián\Desktop\zombie\zp_bank_sql_0.9.2\scripting\zp_bank.amx (compile failed).


Forrás:
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>
  4. #include <sqlx>
  5. #include <zombieplague>
  6. #include <colorchat>
  7.  
  8. #pragma semicolon 1
  9.  
  10. #if !defined MAX_PLAYERS
  11.     #define MAX_PLAYERS 32
  12. #endif
  13.  
  14. new PLUGIN_NAME[] = "[ZP]Addons: Bank SQL";
  15. new PLUGIN_VERSION[] = "0.9.2";
  16. new PLUGIN_AUTHOR[] = "Epmak";
  17. new PLUGIN_PREFIX[] = "[ZP][Bank]";
  18.  
  19. enum vars_struct {
  20.     mode=0,
  21.     annonce,
  22.    
  23.     save_limit,
  24.     save_days,
  25.     save_type,
  26.    
  27.     block_cname,
  28.     startedammo,
  29.     allow_passwd,
  30.     allow_donate,
  31.    
  32.     bool:round_end,
  33.    
  34.     _pw_str[32],
  35.     table[32],
  36.     config_dir[128]
  37. };
  38.  
  39. enum bank_struct {
  40.     bool:ingame,
  41.     bool:async,
  42.     bool:loggin,
  43.     auth[36],
  44.     passwd[32],
  45.     amount
  46. }
  47.  
  48. new g_vars[vars_struct];
  49. new g_Bank[MAX_PLAYERS+1][bank_struct];
  50. new Handle:g_Sql = Empty_Handle,Handle:g_SqlTuple = Empty_Handle;
  51.  
  52. public plugin_init()
  53. {
  54.     register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
  55.     register_cvar("zp_bank_sql", PLUGIN_VERSION, FCVAR_SERVER);
  56.    
  57.     register_dictionary("zp_bank.txt");
  58.     register_dictionary("common.txt");
  59.    
  60.     register_clcmd("say", "handle_say");
  61.     register_clcmd("say_team", "handle_say");
  62.    
  63.     register_concmd("zp_bank_show", "cmdBankShow", ADMIN_ADMIN);
  64.     register_concmd("zp_bank_set", "cmdBankSet", ADMIN_RCON, "<name or #userid> <+ or ->amount");
  65.    
  66.     g_vars[startedammo] = get_cvar_pointer("zp_starting_ammo_packs");
  67.    
  68.     register_srvcmd("zp_bank_connect", "db_connect");
  69.    
  70.     register_forward(FM_ClientUserInfoChanged, "fwClientUserInfoChanged");
  71.    
  72.     server_cmd("zp_bank_connect");
  73. }
  74.  
  75. public plugin_precache()
  76. {
  77.     get_configsdir(g_vars[config_dir], 127);
  78.    
  79.     g_vars[mode] = register_cvar("zp_bank", "1");
  80.     g_vars[annonce] = register_cvar("zp_bank_annonce", "360.0");
  81.     g_vars[save_limit] = register_cvar("zp_bank_save_limit", "1000");
  82.     g_vars[save_days] = register_cvar("zp_bank_save_days", "24");
  83.     g_vars[save_type] = register_cvar("zp_bank_save_type", "2");
  84.     g_vars[block_cname] = register_cvar("zp_bank_block_name_change", "1");
  85.     g_vars[allow_passwd] = register_cvar("zp_bank_allow_passwd", "1");
  86.     g_vars[allow_donate] = register_cvar("zp_bank_allow_donate", "1");
  87.    
  88.     register_cvar("zp_bank_host", "127.0.0.1");
  89.     register_cvar("zp_bank_user", "root");
  90.     register_cvar("zp_bank_pass", "");
  91.     register_cvar("zp_bank_db", "amxx");
  92.     register_cvar("zp_bank_type", "mysql");
  93.     register_cvar("zp_bank_table", "zp_bank");
  94.     register_cvar("zp_bank_pw_str", "_bpw");
  95.    
  96.     server_cmd("exec %s/zp_bank.cfg", g_vars[config_dir]);
  97.     server_exec();
  98. }
  99.  
  100. public plugin_cfg()
  101. {
  102.     g_vars[mode] = get_pcvar_num(g_vars[mode]);
  103.     g_vars[save_limit] = get_pcvar_num(g_vars[save_limit]);
  104.     g_vars[save_days] = get_pcvar_num(g_vars[save_days]);
  105.     g_vars[save_type] = get_pcvar_num(g_vars[save_type]);
  106.     g_vars[block_cname] = get_pcvar_num(g_vars[block_cname]);
  107.     g_vars[allow_passwd] = get_pcvar_num(g_vars[allow_passwd]);
  108.     g_vars[allow_donate] = get_pcvar_num(g_vars[allow_donate]);
  109.    
  110.     if(g_vars[save_limit] < 0) g_vars[save_limit] = 0;
  111.    
  112.     if(get_pcvar_num(g_vars[annonce]))
  113.         set_task(get_pcvar_float(g_vars[annonce]), "print_annonce",_,_,_,"b");
  114.    
  115.     get_cvar_string("zp_bank_pw_str", g_vars[_pw_str], 31);
  116. }
  117.  
  118. public plugin_end()
  119. {
  120.     if(g_Sql != Empty_Handle) SQL_FreeHandle(g_Sql);
  121.     if(g_SqlTuple != Empty_Handle) SQL_FreeHandle(g_SqlTuple);
  122. }
  123.  
  124. public zp_round_started(gamemode, id)
  125. {
  126.     g_vars[round_end] = false;
  127. }
  128.  
  129. public zp_round_ended(winteam)
  130. {
  131.     if (!g_vars[mode] || g_Sql == Empty_Handle)
  132.         return ;
  133.    
  134.     static i;
  135.     for(i=1;i<=MAX_PLAYERS;i++)
  136.     {
  137.         if(!g_Bank[i][ingame] || !g_Bank[i][loggin] || !g_Bank[i][async])
  138.             continue;
  139.        
  140.         SaveClientBank(i);
  141.     }
  142.    
  143.     g_vars[round_end] = true;
  144. }
  145.  
  146. public client_connect(id)
  147. {
  148.     if (!g_vars[mode])
  149.         return ;
  150.    
  151.     GetAuthId(id, g_Bank[id][auth],35);
  152.    
  153.     g_Bank[id][amount] = 0;
  154.     g_Bank[id][async] = false;
  155.     g_Bank[id][loggin] = false;
  156.    
  157.     if(g_vars[mode] == 2)
  158.         zp_set_user_ammo_packs(id, get_pcvar_num(g_vars[startedammo]));
  159.    
  160.     LoadClientBank(id);
  161. }
  162.  
  163. public client_putinserver(id)
  164. {
  165.     g_Bank[id][ingame] = true;
  166.    
  167.     if(g_Bank[id][async] == true && g_Bank[id][loggin] == true)
  168.         SetAmmoBank(id, g_Bank[id][amount]);
  169. }
  170.  
  171. public client_disconnect(id)
  172. {
  173.     if (!g_vars[mode] || g_Sql == Empty_Handle)
  174.         return ;
  175.    
  176.     if(g_vars[round_end] == false && g_Bank[id][async] == true && g_Bank[id][loggin] == true)
  177.         SaveClientBank(id);
  178.    
  179.     g_Bank[id][ingame] = false;
  180.     g_Bank[id][auth][0] = '^0';
  181.     g_Bank[id][passwd][0] = '^0';
  182. }
  183.  
  184. public cmdBankShow(id, level, cid)
  185. {
  186.     if (!cmd_access(id, level, cid, 1))
  187.         return PLUGIN_HANDLED;
  188.    
  189.     static pl_name[32], pl_amount[11], i;
  190.     console_print(id, "%33s amount","name");
  191.     for(i=1;i<=MAX_PLAYERS;i++)
  192.     {
  193.         if(!g_Bank[i][ingame]) continue;
  194.        
  195.         get_user_name(i,pl_name,31);
  196.        
  197.         if(!g_Bank[i][async])
  198.             pl_amount = "not loaded";
  199.         else if(!g_Bank[i][loggin])
  200.             pl_amount = "not loggin";
  201.         else
  202.             num_to_str(GetAmmoBank(i),pl_amount,10);
  203.        
  204.         console_print(id, "%33s %s", pl_name, pl_amount);
  205.     }
  206.    
  207.     return PLUGIN_HANDLED;
  208. }
  209.  
  210. public cmdBankSet(id, level, cid)
  211. {
  212.     if (!cmd_access(id, level, cid, 3))
  213.         return PLUGIN_HANDLED;
  214.    
  215.     static s_player[32], player, s_amount[12], i_amount;
  216.     read_argv(1, s_player, 31);
  217.     player = cmd_target(id, s_player, CMDTARGET_ALLOW_SELF);
  218.    
  219.     if (!player)
  220.         return PLUGIN_HANDLED;
  221.    
  222.     get_user_name(player,s_player,31);
  223.     if(!g_Bank[player][async])
  224.     {
  225.         console_print(id,"The player '%s' has not loaded bank", s_player);
  226.         return PLUGIN_HANDLED;
  227.     }
  228.     else if(!g_Bank[player][loggin])
  229.     {
  230.         console_print(id,"The player '%s' has not loggin bank", s_player);
  231.         return PLUGIN_HANDLED;
  232.     }
  233.    
  234.     read_argv(2, s_amount, 11);
  235.     remove_quotes(s_amount);
  236.     i_amount = str_to_num(s_amount);
  237.    
  238.     switch(s_amount[0])
  239.     {
  240.         case '+':
  241.             SetAmmoBank(player, GetAmmoBank(player)+i_amount);
  242.         case '-':
  243.             SetAmmoBank(player, GetAmmoBank(player)-(0-i_amount));
  244.         default:
  245.             SetAmmoBank(player,i_amount);
  246.     }
  247.    
  248.     return PLUGIN_HANDLED;
  249. }
  250.  
  251. public print_annonce()
  252. {
  253.     if (!g_vars[mode] || g_Sql == Empty_Handle)
  254.         return ;
  255.    
  256.     ColorChat(0, CHATCOLOR_GREY, "%L", LANG_PLAYER, "BANK_ANNOUNCE1");
  257.     if(g_vars[mode] == 1)
  258.     {
  259.         ColorChat(0, CHATCOLOR_GREY, "%L", LANG_PLAYER, "BANK_ANNOUNCE2");
  260.         ColorChat(0, CHATCOLOR_GREY, "%L", LANG_PLAYER, "BANK_ANNOUNCE3");
  261.     }
  262.     else
  263.     {
  264.         ColorChat(0, CHATCOLOR_GREY, "%L", LANG_PLAYER, "BANK_ANNOUNCE4");
  265.     }
  266. }
  267.  
  268. public db_loadcurrent()
  269. {
  270.     for(new i=1;i<=MAX_PLAYERS;i++)
  271.     {
  272.         if(g_Bank[i][async] || !g_Bank[i][ingame]) continue;
  273.        
  274.         LoadClientBank(i);
  275.     }
  276. }
  277.  
  278. public db_connect(count)
  279. {
  280.     if(!g_vars[mode])
  281.         return ;
  282.    
  283.     new host[64], user[32], pass[32], db[128];
  284.     new get_type[13], set_type[12];
  285.     new error[128], errno;
  286.    
  287.     get_cvar_string("zp_bank_host", host, 63);
  288.     get_cvar_string("zp_bank_user", user, 31);
  289.     get_cvar_string("zp_bank_pass", pass, 31);
  290.     get_cvar_string("zp_bank_type", set_type, 11);
  291.     get_cvar_string("zp_bank_db", db, 127);
  292.     get_cvar_string("zp_bank_table", g_vars[table], 31);
  293.    
  294.     if(is_module_loaded(set_type) == -1)
  295.     {
  296.         server_print("^r^n%s error: module '%s' not loaded.^r^n%s Add line %s to %s/modules.ini and restart server^r^n", PLUGIN_PREFIX, set_type, PLUGIN_PREFIX, set_type, g_vars[config_dir]);
  297.         return ;
  298.     }
  299.    
  300.     SQL_GetAffinity(get_type, 12);
  301.    
  302.     if (!equali(get_type, set_type))
  303.         if (!SQL_SetAffinity(set_type))
  304.             log_amx("Failed to set affinity from %s to %s.", get_type, set_type);
  305.    
  306.     g_SqlTuple = SQL_MakeDbTuple(host, user, pass, db);
  307.    
  308.     g_Sql = SQL_Connect(g_SqlTuple, errno, error, 127);
  309.    
  310.     if (g_Sql == Empty_Handle)
  311.     {
  312.         server_print("%s SQL Error #%d - %s", PLUGIN_PREFIX, errno, error);
  313.        
  314.         count += 1;
  315.         set_task(10.0, "db_connect", count);
  316.        
  317.         return ;
  318.     }
  319.    
  320.     SQL_QueryAndIgnore(g_Sql, "SET NAMES utf8");
  321.    
  322.     if (equali(set_type, "sqlite") && !sqlite_TableExists(g_Sql, g_vars[table])) SQL_QueryAndIgnore(g_Sql, "CREATE TABLE %s (auth VARCHAR(36) PRIMARY KEY, password VARCHAR(32) NOT NULL DEFAULT '', amount INTEGER DEFAULT 0, timestamp INTEGER NOT NULL DEFAULT 0)",g_vars[table]);
  323.     else if (equali(set_type, "mysql")) SQL_QueryAndIgnore(g_Sql,"CREATE TABLE IF NOT EXISTS `%s` (`auth` VARCHAR(36) NOT NULL, `password` VARCHAR(32) NOT NULL DEFAULT '', `amount` INT(10) NOT NULL DEFAULT 0, `timestamp` INT(10) NOT NULL DEFAULT 0, PRIMARY KEY (`auth`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;", g_vars[table]);
  324.    
  325.     CleanDataBase();
  326.     if(count > 1)
  327.         db_loadcurrent();
  328.    
  329.     server_print("%s connected to: '%s://%s:****@%s/%s/%s'",PLUGIN_PREFIX, set_type, user, host, db, g_vars[table]);
  330. }
  331.  
  332. public CleanDataBase()
  333. {
  334.     SQL_QueryAndIgnore(g_Sql, "DELETE FROM %s WHERE amount='0' AND password = '';", g_vars[table]);
  335.    
  336.     if (!g_vars[save_days]) return ;
  337.    
  338.     new curTime = get_systime();
  339.     curTime -= ((g_vars[save_days] * 24) * 3600);
  340.    
  341.     SQL_QueryAndIgnore(g_Sql,"DELETE FROM %s WHERE timestamp < '%d';", g_vars[table], curTime);
  342. }
  343.  
  344. public fwClientUserInfoChanged(id, buffer)
  345. {
  346.     if (!g_vars[mode] || !is_user_connected(id))
  347.         return FMRES_IGNORED;
  348.    
  349.     new name[32], val[32], name_1[] = "name";
  350.     get_user_name(id, name, 31);
  351.     engfunc(EngFunc_InfoKeyValue, buffer, name_1, val, 31);
  352.     if (equal(val, name))
  353.         return FMRES_IGNORED;
  354.    
  355.     if(g_vars[block_cname])
  356.     {
  357.         engfunc(EngFunc_SetClientKeyValue, id, buffer, name_1, name);
  358.         client_cmd(id, "name ^"%s^"; setinfo name ^"%s^"", name, name);
  359.         console_print(id, "%L", id ,"NO_NAME_CHANGE");
  360.     }
  361.     else
  362.     {
  363.         GetAuthId(id,g_Bank[id][auth],35);
  364.         return FMRES_IGNORED;
  365.     }
  366.  
  367.     return FMRES_SUPERCEDE;
  368. }
  369.  
  370. public handle_say(id)
  371. {
  372.     if(!g_vars[mode])
  373.     {
  374.         ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_DISABLED");
  375.        
  376.         return PLUGIN_CONTINUE;
  377.     }
  378.     else if(g_Sql == Empty_Handle)
  379.     {
  380.         ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_ERR");
  381.        
  382.         return PLUGIN_CONTINUE;
  383.     }
  384.     else if (!g_Bank[id][async])
  385.         return PLUGIN_CONTINUE;
  386.    
  387.     new text[60], command[16], command2[32], password[32], set_packs;
  388.     read_args(text, 59);
  389.     remove_quotes(text);
  390.    
  391.     command[0] = '^0';
  392.     command2[0] = '^0';
  393.     password[0] = '^0';
  394.     parse(text, command, 15, command2, 31, password, 31);
  395.    
  396.     if (equali(command, "/", 1))
  397.         format(command, 15, command[1]);
  398.    
  399.     if (g_vars[allow_donate] && equali(command, "kuldes", 6))
  400.     {
  401.         donate(id, command2, str_to_num(password));
  402.     }
  403.     else if (equali(command, "mybank", 6) || equali(command, "bank", 4))
  404.     {
  405.         if(g_vars[save_type] == 2 && g_vars[allow_passwd])
  406.         {
  407.             if(equali(command2, "login", 5))
  408.             {
  409.                 if(g_Bank[id][loggin]) {
  410.                     ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN_ALREADY");
  411.                     return PLUGIN_HANDLED;
  412.                 }
  413.                
  414.                 if(g_Bank[id][passwd][0] && equal(password, g_Bank[id][passwd]))
  415.                 {
  416.                     g_Bank[id][loggin] = true;
  417.                     SetAmmoBank(id, g_Bank[id][amount]);
  418.                     client_cmd(id, "setinfo %s ^"%s^"", g_vars[_pw_str], password);
  419.                     ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN_SUCCESS");
  420.                 }
  421.                 else
  422.                 {
  423.                     ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN_BAD");
  424.                 }
  425.                
  426.                 return PLUGIN_HANDLED;
  427.             }
  428.             else if(!g_Bank[id][loggin])
  429.             {
  430.                 ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN");
  431.                 return PLUGIN_HANDLED;
  432.             }
  433.             else if(equali(command2, "password", 8))
  434.             {
  435.                 if(password[0])
  436.                 {
  437.                     g_Bank[id][passwd] = password;
  438.                     client_cmd(id, "setinfo %s ^"%s^"", g_vars[_pw_str], password);
  439.                     ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN_PASSWORD_SET", g_Bank[id][passwd]);
  440.                 }
  441.                 else
  442.                 {
  443.                     ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN_PASSWORD", g_Bank[id][passwd]);
  444.                 }
  445.                 return PLUGIN_HANDLED;
  446.             }
  447.             else if(!g_Bank[id][passwd][0])
  448.                 ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_LOGIN_PASSWORD_SETHELP");
  449.         }
  450.        
  451.         if(g_vars[mode] == 2)
  452.         {
  453.             ColorChat(id, CHATCOLOR_GREY, "%L", LANG_PLAYER, "BANK_ANNOUNCE4");
  454.             return PLUGIN_CONTINUE;
  455.         }
  456.        
  457.         ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK", g_Bank[id][amount]);
  458.         ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_ANNOUNCE2");
  459.         ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_ANNOUNCE3");
  460.     }
  461.     else if (g_vars[mode] == 2)
  462.         return PLUGIN_CONTINUE;
  463.     else if (equali(command, "deposit", 7) || equali(command, "send", 4) || equali(command, "store", 5))
  464.     {
  465.         new user_ammo_packs = zp_get_user_ammo_packs(id);
  466.        
  467.         if (equali(command2, "all")) set_packs = user_ammo_packs;
  468.         else set_packs = str_to_num(command2);
  469.        
  470.         new limit_exceeded=false;
  471.        
  472.         if (g_vars[save_limit] && set_packs > 0 && g_Bank[id][amount] + set_packs > g_vars[save_limit])
  473.         {
  474.             new overflow = g_Bank[id][amount] + set_packs - g_vars[save_limit];
  475.             set_packs -= overflow;
  476.            
  477.             ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "DEPOSIT_MAX", g_vars[save_limit]);
  478.            
  479.             limit_exceeded = true;
  480.         }
  481.        
  482.         if (set_packs > 0)
  483.         {
  484.             if (user_ammo_packs >= set_packs)
  485.             {
  486.                 g_Bank[id][amount] += set_packs;
  487.                 zp_set_user_ammo_packs(id, user_ammo_packs - set_packs);
  488.                 ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "DEPOSIT", set_packs, g_Bank[id][amount]);
  489.             }
  490.             else
  491.                 ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "DEPOSIT_ERR", set_packs, user_ammo_packs);
  492.            
  493.             return PLUGIN_HANDLED;
  494.         }
  495.         else if(!limit_exceeded)
  496.             ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_ANNOUNCE2");
  497.     }
  498.     else if (equali(command, "withdraw", 8) || equali(command, "take", 4) || equali(command, "retrieve", 8) || equali(command, "wd", 2))
  499.     {
  500.         new user_ammo_packs = zp_get_user_ammo_packs(id);
  501.        
  502.         if (equali(command2, "all")) set_packs = g_Bank[id][amount];
  503.         else set_packs = str_to_num(command2);
  504.        
  505.         if (set_packs > 0)
  506.         {
  507.             if (g_Bank[id][amount] >= set_packs)
  508.             {
  509.                 zp_set_user_ammo_packs(id, user_ammo_packs + set_packs);
  510.                 g_Bank[id][amount] -= set_packs;
  511.                 ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "WITHDRAW", set_packs, g_Bank[id][amount]);
  512.             }
  513.             else
  514.                 ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "WITHDRAW_ERR", set_packs, g_Bank[id][amount]);
  515.            
  516.             return PLUGIN_HANDLED;
  517.         }
  518.         else
  519.             ColorChat(id, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_ANNOUNCE3");
  520.     }
  521.    
  522.     return PLUGIN_CONTINUE;
  523. }
  524.  
  525. public donate(donater, const reciever_name[], ammo)
  526. {
  527.     if(!reciever_name[0] || ammo <= 0 || zp_get_user_ammo_packs(donater) < ammo)
  528.     {
  529.         ColorChat(donater, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "BANK_DONATE_USAGE");
  530.         return ;
  531.     }
  532.    
  533.     new reciever = cmd_target(donater, reciever_name, CMDTARGET_ALLOW_SELF);
  534.     if (!reciever || reciever == donater)
  535.     {
  536.         ColorChat(donater, CHATCOLOR_GREY, "$g%s$t %L", PLUGIN_PREFIX, LANG_PLAYER, "CL_NOT_FOUND");   
  537.         return ;
  538.     }
  539.    
  540.     zp_set_user_ammo_packs(donater, zp_get_user_ammo_packs(donater)-ammo);
  541.     zp_set_user_ammo_packs(reciever, zp_get_user_ammo_packs(reciever)+ammo);
  542. }
  543.  
  544. public LoadClientBank(id)
  545. {
  546.     if (g_SqlTuple == Empty_Handle || g_Sql == Empty_Handle || g_Bank[id][async] == true)
  547.         return ;
  548.    
  549.     new szQuery[120];
  550.     format(szQuery, 119,"SELECT amount,password FROM %s WHERE auth='%s';", g_vars[table], g_Bank[id][auth]);
  551.    
  552.     new szData[2];
  553.     szData[0] = id;
  554.     szData[1] = get_user_userid(id);
  555.    
  556.     SQL_ThreadQuery(g_SqlTuple, "LoadClient_QueryHandler", szQuery, szData, 2);
  557. }
  558.  
  559. public LoadClient_QueryHandler(iFailState, Handle:hQuery, szError[], iErrnum, szData[], iSize, Float:fQueueTime)
  560. {
  561.     if(iFailState != TQUERY_SUCCESS)
  562.     {
  563.         log_amx("%s SQL Error #%d - %s", PLUGIN_PREFIX, iErrnum, szError);
  564.         return ;
  565.     }
  566.    
  567.     new id = szData[0];
  568.    
  569.     if (szData[1] != get_user_userid(id))
  570.         return ;
  571.    
  572.     new packs=0,info_pw[32];
  573.    
  574.     if(g_vars[mode] == 2)
  575.         packs = get_pcvar_num(g_vars[startedammo]);
  576.    
  577.     if(SQL_NumResults(hQuery))
  578.     {
  579.         packs = SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "amount"));
  580.         SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "password"), g_Bank[id][passwd], 31);
  581.     }
  582.    
  583.     g_Bank[id][amount] = CheckLimit(packs);
  584.     if(g_vars[allow_passwd] && g_Bank[id][passwd][0])
  585.     {
  586.         get_user_info(id,g_vars[_pw_str],info_pw,31);
  587.         if(equal(info_pw, g_Bank[id][passwd]))
  588.         {
  589.             g_Bank[id][loggin] = true;
  590.         }
  591.     }
  592.     else
  593.         g_Bank[id][loggin] = true;
  594.    
  595.     if(g_Bank[id][ingame] == true && g_Bank[id][loggin] == true)
  596.     {
  597.         SetAmmoBank(id, g_Bank[id][amount]);
  598.     }
  599.     g_Bank[id][async] = true;
  600. }
  601.  
  602. public SaveClientBank(id)
  603. {
  604.     if (g_Sql == Empty_Handle)
  605.         return ;
  606.    
  607.     new packs = GetAmmoBank(id);
  608.     packs = CheckLimit(packs);
  609.    
  610.     SQL_QuoteString(g_Sql, g_Bank[id][passwd], 31, g_Bank[id][passwd]);
  611.     SQL_QueryAndIgnore(g_Sql, "REPLACE INTO %s (auth,password,amount,timestamp) VALUES('%s', '%s', %d, %d);", g_vars[table], g_Bank[id][auth], g_Bank[id][passwd], packs, get_systime());
  612. }
  613.  
  614. stock GetAuthId(id, Buffer[]="", BufferSize=0)
  615. {
  616.     switch(g_vars[save_type])
  617.     {
  618.         case 1: get_user_authid(id,Buffer,BufferSize);
  619.         case 2:
  620.         {
  621.             new name[32];
  622.             get_user_name(id,name,31);
  623.             SQL_QuoteString(g_Sql, Buffer, BufferSize, name);
  624.         }
  625.         case 3: get_user_ip(id,Buffer,BufferSize,true);
  626.     }
  627. }
  628.  
  629. public CheckLimit(packs)
  630. {
  631.     if(g_vars[save_limit] && packs > g_vars[save_limit])
  632.     {
  633.         packs = g_vars[save_limit];
  634.     }
  635.     return packs;
  636. }
  637.  
  638. public SetAmmoBank(id, packs)
  639. {
  640.     if(g_vars[mode] == 2)
  641.         zp_set_user_ammo_packs(id,packs);
  642.     else
  643.         g_Bank[id][amount] = packs;
  644. }
  645.  
  646. public GetAmmoBank(id)
  647. {
  648.     if(g_vars[mode] == 2)
  649.         return zp_get_user_ammo_packs(id);
  650.    
  651.     return g_Bank[id][amount];
  652. }

Szerző:  adriansr14 [2016.08.09. 17:57 ]
Hozzászólás témája:  Re: ZP Bank hiba

Megoldottam!

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/