hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.28. 19:15



Jelenlévő felhasználók

Jelenleg 224 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 224 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 3 hozzászólás ] 
Szerző Üzenet
HozzászólásElküldve: 2017.07.05. 17:31 
Offline
Tag

Csatlakozott: 2015.09.27. 13:04
Hozzászólások: 41
Megköszönt másnak: 9 alkalommal
Sziasztok az lenne a kérdésem hogy mi a [ZP5.0] Lőszercsomag Bank [ AUTOMATIKUS ] -at használjuk és hogy lehetne azt beállítani hogy a SIMA Játékosnak a bankja például: 25000 ammopack legyen a bank kapacitása a VIP-nek meg 50000 ammopack legyen a bank kapacitása és a Prémium-nak 100000 bank kapacitása legyen Ezt hogy lehet beállítani a bank kapacitásokat aki tudna segíteni annak Ezer Hálás köszönet :)

Üdv
siska15


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2017.07.09. 20:22 
Offline
Nagyúr
Avatar

Csatlakozott: 2016.03.05. 20:56
Hozzászólások: 663
Megköszönt másnak: 27 alkalommal
Megköszönték neki: 124 alkalommal
Mondjuk ha tennél sma-t is lehet egyszerűbb lenne. :D

_________________
Global Offensive modok:

Global Offensive Mode 1.0
Global Offensive Mode 3.0
exodus Global Offensive 4.0


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2017.07.10. 02:11 
Offline
Őskövület
Avatar

Csatlakozott: 2011.12.28. 00:35
Hozzászólások: 2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
exodus írta:
Mondjuk ha tennél sma-t is lehet egyszerűbb lenne. :D


Szerintem értelemszerűen erre gondolt:

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

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 3 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 17 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole