hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.06.16. 13:04



Jelenlévő felhasználók

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

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot]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  [6 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Átalakítás
HozzászólásElküldve:2012.05.26. 14:01 
Offline
Őstag
Avatar

Csatlakozott:2011.11.15. 16:29
Hozzászólások:1142
Megköszönt másnak: 8 alkalommal
Megköszönték neki: 24 alkalommal
Mi lehet a gond?

Sma:
Kód:
  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. }

  653.  


Hiba:

Kód:
  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. files/4246059/4246059.sma(256) : error 017: undefined symbol "CHATCOLOR_GREY"

  5. files/4246059/4246059.sma(256) : warning 215: expression has no effect

  6. files/4246059/4246059.sma(256) : warning 215: expression has no effect

  7. files/4246059/4246059.sma(256) : warning 215: expression has no effect

  8. files/4246059/4246059.sma(256) : error 001: expected token: ";", but found ")"

  9. files/4246059/4246059.sma(256) : error 029: invalid expression, assumed zero

  10. files/4246059/4246059.sma(256) : fatal error 107: too many error messages on one line

  11.  

  12. Compilation aborted.

  13. 4 Errors.

  14.  

_________________
[url=http://www.gametracker.com/server_info/188.227.227.114:27286/][img]http://cache.www.gametracker.com/server_info/188.227.227.114:27286/b_350_20_323957_202743_F19A15_111111.png[/img][/url]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Átalakítás
HozzászólásElküldve:2012.05.26. 15:09 
Offline
Veterán
Avatar

Csatlakozott:2011.06.07. 15:29
Hozzászólások:1728
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 63 alkalommal
Idézet:
...
Kód:
  1. ColorChat(0, CHATCOLOR_GREY, "%L", LANG_PLAYER, "BANK_ANNOUNCE1");
...


CHATCOLOR_GREY helyett használj simán GREY-t.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Átalakítás
HozzászólásElküldve:2012.05.26. 19:14 
Offline
Őstag
Avatar

Csatlakozott:2011.11.15. 16:29
Hozzászólások:1142
Megköszönt másnak: 8 alkalommal
Megköszönték neki: 24 alkalommal
Csak az az 1 hiba lehet?:)

_________________
[url=http://www.gametracker.com/server_info/188.227.227.114:27286/][img]http://cache.www.gametracker.com/server_info/188.227.227.114:27286/b_350_20_323957_202743_F19A15_111111.png[/img][/url]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Átalakítás
HozzászólásElküldve:2012.05.26. 19:50 
Offline
Veterán
Avatar

Csatlakozott:2011.06.07. 15:29
Hozzászólások:1728
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 63 alkalommal
Hát ha többre nem dobott Error-t, akkor igen. ( Az összeset írt át, ne csak egyet. )


A hozzászólást 1 alkalommal szerkesztették, utoljára oroszrulett 2012.05.27. 07:26-kor.

Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Átalakítás
HozzászólásElküldve:2012.05.26. 21:47 
Offline
Őstag
Avatar

Csatlakozott:2011.11.15. 16:29
Hozzászólások:1142
Megköszönt másnak: 8 alkalommal
Megköszönték neki: 24 alkalommal
Milyen összegről beszélsz?:) Esti órákban már nem jól működik az agy :DD

_________________
[url=http://www.gametracker.com/server_info/188.227.227.114:27286/][img]http://cache.www.gametracker.com/server_info/188.227.227.114:27286/b_350_20_323957_202743_F19A15_111111.png[/img][/url]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Átalakítás
HozzászólásElküldve:2012.05.27. 07:26 
Offline
Veterán
Avatar

Csatlakozott:2011.06.07. 15:29
Hozzászólások:1728
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 63 alkalommal
Javítva : összeSet


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  [6 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 24 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