#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <sqlx>
#define PLUGIN "Weap kills"
#define VERSION "1.0"
#define AUTHOR "mforce"
#define PREFIX "WorldSniper"
#define KILL_POINT (1)
#define HEADSHOT_POINT (2)
new Host[] = ""
new User[] = ""
new Pass[] = ""
new Db[] = ""
new Handle:g_SqlTuple
new const POINTS[] = {
500, // Rusty Snipers, 0. elem
1000, // Silver Snipers, 1.
2000, // Gold Snipers, 2.
100, // Rusty Pistols, 3.
200, // Silver Pistols, 4.
300, // Gold Pistols, 5.
50, // Rusty Knife, 6.
100, // Silver Knife, 7.
150 // Gold Knife, 8.
};
enum _:PLAYER_DATABASE
{
STEAMID[32],
AWP_KILLS,
SCOUT_KILLS,
DEAGLE_KILLS,
USP_KILLS,
GLOCK_KILLS,
KNIFE_KILLS,
AWP_MENU,
SCOUT_MENU,
DEAGLE_MENU,
USP_MENU,
GLOCK_MENU,
KNIFE_MENU
}
new player_data[33][PLAYER_DATABASE];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar("weap_kills", AUTHOR, FCVAR_SERVER | FCVAR_SPONLY);
register_clcmd("say /menu", "ShowMenu")
register_event("DeathMsg", "halal", "a")
register_event("CurWeapon", "Event_CurWeapon", "be", "1=1")
set_task(172.0, "pontrendszerfut", 0, _, _, "b");
set_task(1.0, "MySql_Init") // MysQl Init-ben felcsatlakozunk a MysQl szerverre!
}
new const fegyverek[][] = {
"models/weap_skins/p_rozsdas_awp.mdl", // 0. elem
"models/weap_skins/v_rozsdas_awp.mdl", // 1
"models/weap_skins/p_silver_awp.mdl", // 2
"models/weap_skins/v_silver_awp.mdl", // 3
"models/weap_skins/p_arany_awp.mdl", // 4
"models/weap_skins/v_arany_awp.mdl", // 5
"models/weap_skins/p_rozsdas_scout.mdl", // 6
"models/weap_skins/v_rozsdas_scout.mdl", // 7
"models/weap_skins/p_silver_scout.mdl", // 8
"models/weap_skins/v_silver_scout.mdl", // 9
"models/weap_skins/p_arany_scout.mdl", // 10
"models/weap_skins/v_arany_scout.mdl", // 11
"models/weap_skins/p_rozsdas_deagle.mdl", // 12
"models/weap_skins/v_rozsdas_deagle.mdl", // 13
"models/weap_skins/p_silver_deagle.mdl", // 14
"models/weap_skins/v_silver_deagle.mdl", // 15
"models/weap_skins/p_arany_deagle.mdl", // 16
"models/weap_skins/v_arany_deagle.mdl", // 17
"models/weap_skins/p_rozsdas_usp.mdl", // 18
"models/weap_skins/v_rozsdas_usp.mdl", // 19
"models/weap_skins/p_silver_usp.mdl", // 20
"models/weap_skins/v_silver_usp.mdl", // 21
"models/weap_skins/p_arany_usp.mdl", // 22
"models/weap_skins/v_arany_usp.mdl", // 23
"models/weap_skins/p_rozsdas_glock.mdl", // 24
"models/weap_skins/v_rozsdas_glock.mdl", // 25
"models/weap_skins/p_silver_glock.mdl", // 26
"models/weap_skins/v_silver_glock.mdl", // 27
"models/weap_skins/p_arany_glock.mdl", // 28
"models/weap_skins/v_arany_glock.mdl", // 29
"models/weap_skins/p_rozsdas_knife.mdl", // 30
"models/weap_skins/v_rozsdas_knife.mdl", // 31
"models/weap_skins/p_silver_knife.mdl", // 32
"models/weap_skins/v_silver_knife.mdl", // 33
"models/weap_skins/p_arany_knife.mdl", // 34
"models/weap_skins/v_arany_knife.mdl" // 35
};
public Event_CurWeapon(id) {
new weap = get_user_weapon(id)
if(weap == CSW_AWP) {
if(player_data[id][AWP_MENU] == 1) {
set_pev(id, pev_weaponmodel2, fegyverek[0]) // p_modell
set_pev(id, pev_viewmodel2, fegyverek[1]) // v_modell
}
else if(player_data[id][AWP_MENU] == 2) {
set_pev(id, pev_weaponmodel2, fegyverek[2])
set_pev(id, pev_viewmodel2, fegyverek[3])
}
else if(player_data[id][AWP_MENU] == 3) {
set_pev(id, pev_weaponmodel2, fegyverek[4])
set_pev(id, pev_viewmodel2, fegyverek[5])
}
}
if(weap == CSW_SCOUT) {
if(player_data[id][SCOUT_MENU] == 1) {
set_pev(id, pev_weaponmodel2, fegyverek[6])
set_pev(id, pev_viewmodel2, fegyverek[7])
}
else if(player_data[id][SCOUT_MENU] == 2) {
set_pev(id, pev_weaponmodel2, fegyverek[8])
set_pev(id, pev_viewmodel2, fegyverek[9])
}
else if(player_data[id][SCOUT_MENU] == 3) {
set_pev(id, pev_weaponmodel2, fegyverek[10])
set_pev(id, pev_viewmodel2, fegyverek[11])
}
}
if(weap == CSW_DEAGLE) {
if(player_data[id][DEAGLE_MENU] == 1) {
set_pev(id, pev_weaponmodel2, fegyverek[12])
set_pev(id, pev_viewmodel2, fegyverek[13])
}
else if(player_data[id][DEAGLE_MENU] == 2) {
set_pev(id, pev_weaponmodel2, fegyverek[14])
set_pev(id, pev_viewmodel2, fegyverek[15])
}
else if(player_data[id][DEAGLE_MENU] == 3) {
set_pev(id, pev_weaponmodel2, fegyverek[16])
set_pev(id, pev_viewmodel2, fegyverek[17])
}
}
if(weap == CSW_USP) {
if(player_data[id][USP_MENU] == 1) {
set_pev(id, pev_weaponmodel2, fegyverek[18])
set_pev(id, pev_viewmodel2, fegyverek[19])
}
else if(player_data[id][USP_MENU] == 2) {
set_pev(id, pev_weaponmodel2, fegyverek[20])
set_pev(id, pev_viewmodel2, fegyverek[21])
}
else if(player_data[id][USP_MENU] == 3) {
set_pev(id, pev_weaponmodel2, fegyverek[22])
set_pev(id, pev_viewmodel2, fegyverek[23])
}
}
if(weap == CSW_GLOCK18) {
if(player_data[id][GLOCK_MENU] == 1) {
set_pev(id, pev_weaponmodel2, fegyverek[24])
set_pev(id, pev_viewmodel2, fegyverek[25])
}
else if(player_data[id][GLOCK_MENU] == 2) {
set_pev(id, pev_weaponmodel2, fegyverek[26])
set_pev(id, pev_viewmodel2, fegyverek[27])
}
else if(player_data[id][GLOCK_MENU] == 3) {
set_pev(id, pev_weaponmodel2, fegyverek[28])
set_pev(id, pev_viewmodel2, fegyverek[29])
}
}
if(weap == CSW_KNIFE) {
if(player_data[id][KNIFE_MENU] == 1) {
set_pev(id, pev_weaponmodel2, fegyverek[30])
set_pev(id, pev_viewmodel2, fegyverek[31])
}
else if(player_data[id][KNIFE_MENU] == 2) {
set_pev(id, pev_weaponmodel2, fegyverek[32])
set_pev(id, pev_viewmodel2, fegyverek[33])
}
else if(player_data[id][KNIFE_MENU] == 3) {
set_pev(id, pev_weaponmodel2, fegyverek[34])
set_pev(id, pev_viewmodel2, fegyverek[35])
}
}
}
public client_connect(id) Event_CurWeapon(id)
public plugin_precache() {
for(new i; i<sizeof(fegyverek);i++) precache_model(fegyverek[i]);
}
public halal() {
static killer, victim, headshot, weapon[32];
killer = read_data(1);
victim = read_data(2);
headshot = read_data(3);
read_data(4, weapon, charsmax(weapon));
if (!is_user_connected(killer) || !is_user_connected(victim) || killer == victim || get_user_team(killer) == get_user_team(victim)) return;
if(headshot) {
if (equali(weapon, "awp")) player_data[killer][AWP_KILLS] += HEADSHOT_POINT;
else if (equali(weapon, "scout")) player_data[killer][SCOUT_KILLS] += HEADSHOT_POINT;
else if (equali(weapon, "deagle")) player_data[killer][DEAGLE_KILLS] += HEADSHOT_POINT;
else if (equali(weapon, "usp")) player_data[killer][USP_KILLS] += HEADSHOT_POINT;
else if (equali(weapon, "glock18")) player_data[killer][GLOCK_KILLS] += HEADSHOT_POINT;
else if (equali(weapon, "knife")) player_data[killer][KNIFE_KILLS] += HEADSHOT_POINT;
set_hudmessage(0, 255, 0, -0.9, 0.15, 0, 6.0, 1.0);
show_hudmessage(killer, "+%i Ölés", HEADSHOT_POINT);
}
else {
if (equali(weapon, "awp")) player_data[killer][AWP_KILLS] += KILL_POINT;
else if (equali(weapon, "scout")) player_data[killer][SCOUT_KILLS] += KILL_POINT;
else if (equali(weapon, "deagle")) player_data[killer][DEAGLE_KILLS] += KILL_POINT;
else if (equali(weapon, "usp")) player_data[killer][USP_KILLS] += KILL_POINT;
else if (equali(weapon, "glock18")) player_data[killer][GLOCK_KILLS] += KILL_POINT;
else if (equali(weapon, "knife")) player_data[killer][KNIFE_KILLS] += KILL_POINT;
set_hudmessage(0, 255, 0, -0.9, 0.15, 0, 6.0, 1.0);
show_hudmessage(killer, "+%i Ölés", KILL_POINT);
}
}
public pontrendszerfut() print_color(0, "!g[%s]!y Szerverünkön !tSkincsomag Rendszer!y fut, írd be: !t/menu", PREFIX)
public ShowMenu(id) {
new temp[128];
formatex(temp, charsmax(temp), "\r[%s] \wFegyver Skinek", PREFIX);
new menu = menu_create(temp, "mh_MyMenu");
formatex(temp, charsmax(temp), "AWP Skinek");
menu_additem(menu, temp, "0", 0);
formatex(temp, charsmax(temp), "Scout Skinek");
menu_additem(menu, temp, "1", 0);
formatex(temp, charsmax(temp), "Deagle Skinek");
menu_additem(menu, temp, "2", 0);
formatex(temp, charsmax(temp), "USP Skinek");
menu_additem(menu, temp, "3", 0);
formatex(temp, charsmax(temp), "Glock Skinek");
menu_additem(menu, temp, "4", 0);
formatex(temp, charsmax(temp), "Kés Skinek");
menu_additem(menu, temp, "5", 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_BACKNAME, "Vissza");
menu_setprop(menu, MPROP_NEXTNAME, "Előre");
menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public mh_MyMenu(id, menu, item) {
if(item == MENU_EXIT)
{
menu_cancel(id);
return PLUGIN_HANDLED;
}
new command[6], name[64], access, callback;
menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
switch(item) {
case 0: awp_menu(id)
case 1: scout_menu(id)
case 2: deagle_menu(id)
case 3: usp_menu(id)
case 4: glock_menu(id)
case 5: knife_menu(id)
}
return PLUGIN_HANDLED;
}
public awp_menu(id) {
new temp[128], temp2[64];
formatex(temp, charsmax(temp), "\r[%s] \wAWP Skinek ^nÖlések: \y%d", PREFIX, player_data[id][AWP_KILLS]);
new menu = menu_create(temp, "awp_handler");
formatex(temp, charsmax(temp), "Alap AWP %s", player_data[id][AWP_MENU] == 0 ? "\y|AKTÍV|":"");
menu_additem(menu, temp, "0", 0);
formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[0]);
formatex(temp, charsmax(temp), "Rozsdás AWP %s", player_data[id][AWP_MENU] == 1 ? "\y|AKTÍV|":temp2);
menu_additem(menu, temp, "1", 0);
formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[1]);
formatex(temp, charsmax(temp), "Ezüst AWP %s", player_data[id][AWP_MENU] == 2 ? "\y|AKTÍV|":temp2);
menu_additem(menu, temp, "2", 0);
formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[2]);
formatex(temp, charsmax(temp), "Arany AWP %s", player_data[id][AWP_MENU] == 3 ? "\y|AKTÍV|":temp2);
menu_additem(menu, temp, "3", 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_BACKNAME, "Vissza");
menu_setprop(menu, MPROP_NEXTNAME, "Előre");
menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public awp_handler(id, menu, item) {
if(item == MENU_EXIT)
{
menu_cancel(id);
return PLUGIN_HANDLED;
}
new command[6], name[64], access, callback;
menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
switch(item)
{
case 0: {
player_data[id][AWP_MENU] = 0;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
case 1: {
if(player_data[id][AWP_KILLS] >= POINTS[0]) {
player_data[id][AWP_MENU] = 1;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
else print_color(id, "!g[%s]!y Nincs elég Ölésed az aktiváláshoz.", PREFIX)
}
case 2: {
if(player_data[id][AWP_KILLS] >= POINTS[1]) {
player_data[id][AWP_MENU] = 2;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
else print_color(id, "!g[%s]!y Nincs elég Ölésed az aktiváláshoz.", PREFIX)
}
case 3: {
if(player_data[id][AWP_KILLS] >= POINTS[2]) {
player_data[id][AWP_MENU] = 3;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
else print_color(id, "!g[%s]!y Nincs elég Ölésed az aktiváláshoz.", PREFIX)
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public scout_menu(id) {
new temp[128], temp2[64];
formatex(temp, charsmax(temp), "\r[%s] \wScout Skinek ^nÖlések: \y%d", PREFIX, player_data[id][SCOUT_KILLS]);
new menu = menu_create(temp, "scout_handler");
formatex(temp, charsmax(temp), "Alap Scout %s", player_data[id][SCOUT_MENU] == 0 ? "\y|AKTÍV|":"");
menu_additem(menu, temp, "0", 0);
formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[0]);
formatex(temp, charsmax(temp), "Rozsdás Scout %s", player_data[id][SCOUT_MENU] == 1 ? "\y|AKTÍV|":temp2);
menu_additem(menu, temp, "1", 0);
formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[1]);
formatex(temp, charsmax(temp), "Ezüst Scout %s", player_data[id][SCOUT_MENU] == 2 ? "\y|AKTÍV|":temp2);
menu_additem(menu, temp, "2", 0);
formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[2]);
formatex(temp, charsmax(temp), "Arany Scout %s", player_data[id][SCOUT_MENU] == 3 ? "\y|AKTÍV|":temp2);
menu_additem(menu, temp, "3", 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_BACKNAME, "Vissza");
menu_setprop(menu, MPROP_NEXTNAME, "Előre");
menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public scout_handler(id, menu, item) {
if(item == MENU_EXIT)
{
menu_cancel(id);
return PLUGIN_HANDLED;
}
new command[6], name[64], access, callback;
menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
switch(item)
{
case 0: {
player_data[id][SCOUT_MENU] = 0;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
case 1: {
if(player_data[id][SCOUT_KILLS] >= POINTS[0]) {
player_data[id][SCOUT_MENU] = 1;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
else print_color(id, "!g[%s]!y Nincs elég Ölésed az aktiváláshoz.", PREFIX)
}
case 2: {
if(player_data[id][SCOUT_KILLS] >= POINTS[1]) {
player_data[id][SCOUT_MENU] = 2;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
else print_color(id, "!g[%s]!y Nincs elég Ölésed az aktiváláshoz.", PREFIX)
}
case 3: {
if(player_data[id][SCOUT_KILLS] >= POINTS[2]) {
player_data[id][SCOUT_MENU] = 3;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
else print_color(id, "!g[%s]!y Nincs elég Ölésed az aktiváláshoz.", PREFIX)
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public deagle_menu(id) {
new temp[128], temp2[64];
formatex(temp, charsmax(temp), "\r[%s] \wDeagle Skinek ^nÖlések: \y%d", PREFIX, player_data[id][DEAGLE_KILLS]);
new menu = menu_create(temp, "deagle_handler");
formatex(temp, charsmax(temp), "Alap Deagle %s", player_data[id][DEAGLE_MENU] == 0 ? "\y|AKTÍV|":"");
menu_additem(menu, temp, "0", 0);
formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[3]);
formatex(temp, charsmax(temp), "Rozsdás Deagle %s", player_data[id][DEAGLE_MENU] == 1 ? "\y|AKTÍV|":temp2);
menu_additem(menu, temp, "1", 0);
formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[4]);
formatex(temp, charsmax(temp), "Ezüst Deagle %s", player_data[id][DEAGLE_MENU] == 2 ? "\y|AKTÍV|":temp2);
menu_additem(menu, temp, "2", 0);
formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[5]);
formatex(temp, charsmax(temp), "Arany Deagle %s", player_data[id][DEAGLE_MENU] == 3 ? "\y|AKTÍV|":temp2);
menu_additem(menu, temp, "3", 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_BACKNAME, "Vissza");
menu_setprop(menu, MPROP_NEXTNAME, "Előre");
menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public deagle_handler(id, menu, item) {
if(item == MENU_EXIT)
{
menu_cancel(id);
return PLUGIN_HANDLED;
}
new command[6], name[64], access, callback;
menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
switch(item)
{
case 0: {
player_data[id][DEAGLE_MENU] = 0;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
case 1: {
if(player_data[id][DEAGLE_KILLS] >= POINTS[3]) {
player_data[id][DEAGLE_MENU] = 1;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
else print_color(id, "!g[%s]!y Nincs elég Ölésed az aktiváláshoz.", PREFIX)
}
case 2: {
if(player_data[id][DEAGLE_KILLS] >= POINTS[4]) {
player_data[id][DEAGLE_MENU] = 2;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
else print_color(id, "!g[%s]!y Nincs elég Ölésed az aktiváláshoz.", PREFIX)
}
case 3: {
if(player_data[id][DEAGLE_KILLS] >= POINTS[5]) {
player_data[id][DEAGLE_MENU] = 3;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
else print_color(id, "!g[%s]!y Nincs elég Ölésed az aktiváláshoz.", PREFIX)
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public usp_menu(id) {
new temp[128], temp2[64];
formatex(temp, charsmax(temp), "\r[%s] \wUSP Skinek ^nÖlések: \y%d", PREFIX, player_data[id][USP_KILLS]);
new menu = menu_create(temp, "usp_handler");
formatex(temp, charsmax(temp), "Alap USP %s", player_data[id][USP_MENU] == 0 ? "\y|AKTÍV|":"");
menu_additem(menu, temp, "0", 0);
formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[3]);
formatex(temp, charsmax(temp), "Rozsdás USP %s", player_data[id][USP_MENU] == 1 ? "\y|AKTÍV|":temp2);
menu_additem(menu, temp, "1", 0);
formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[4]);
formatex(temp, charsmax(temp), "Ezüst USP %s", player_data[id][USP_MENU] == 2 ? "\y|AKTÍV|":temp2);
menu_additem(menu, temp, "2", 0);
formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[5]);
formatex(temp, charsmax(temp), "Arany USP %s", player_data[id][USP_MENU] == 3 ? "\y|AKTÍV|":temp2);
menu_additem(menu, temp, "3", 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_BACKNAME, "Vissza");
menu_setprop(menu, MPROP_NEXTNAME, "Előre");
menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public usp_handler(id, menu, item) {
if(item == MENU_EXIT)
{
menu_cancel(id);
return PLUGIN_HANDLED;
}
new command[6], name[64], access, callback;
menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
switch(item)
{
case 0: {
player_data[id][USP_MENU] = 0;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
case 1: {
if(player_data[id][USP_KILLS] >= POINTS[3]) {
player_data[id][USP_MENU] = 1;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
else print_color(id, "!g[%s]!y Nincs elég Ölésed az aktiváláshoz.", PREFIX)
}
case 2: {
if(player_data[id][USP_KILLS] >= POINTS[4]) {
player_data[id][USP_MENU] = 2;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
else print_color(id, "!g[%s]!y Nincs elég Ölésed az aktiváláshoz.", PREFIX)
}
case 3: {
if(player_data[id][USP_KILLS] >= POINTS[5]) {
player_data[id][USP_MENU] = 3;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
else print_color(id, "!g[%s]!y Nincs elég Ölésed az aktiváláshoz.", PREFIX)
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public glock_menu(id) {
new temp[128], temp2[64];
formatex(temp, charsmax(temp), "\r[%s] \wGlock Skinek ^nÖlések: \y%d", PREFIX, player_data[id][GLOCK_KILLS]);
new menu = menu_create(temp, "glock_handler");
formatex(temp, charsmax(temp), "Alap Glock %s", player_data[id][GLOCK_MENU] == 0 ? "\y|AKTÍV|":"");
menu_additem(menu, temp, "0", 0);
formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[3]);
formatex(temp, charsmax(temp), "Rozsdás Glock %s", player_data[id][GLOCK_MENU] == 1 ? "\y|AKTÍV|":temp2);
menu_additem(menu, temp, "1", 0);
formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[4]);
formatex(temp, charsmax(temp), "Ezüst Glock %s", player_data[id][GLOCK_MENU] == 2 ? "\y|AKTÍV|":temp2);
menu_additem(menu, temp, "2", 0);
formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[5]);
formatex(temp, charsmax(temp), "Arany Glock %s", player_data[id][GLOCK_MENU] == 3 ? "\y|AKTÍV|":temp2);
menu_additem(menu, temp, "3", 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_BACKNAME, "Vissza");
menu_setprop(menu, MPROP_NEXTNAME, "Előre");
menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public glock_handler(id, menu, item) {
if(item == MENU_EXIT)
{
menu_cancel(id);
return PLUGIN_HANDLED;
}
new command[6], name[64], access, callback;
menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
switch(item)
{
case 0: {
player_data[id][GLOCK_MENU] = 0;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
case 1: {
if(player_data[id][GLOCK_KILLS] >= POINTS[3]) {
player_data[id][GLOCK_MENU] = 1;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
else print_color(id, "!g[%s]!y Nincs elég Ölésed az aktiváláshoz.", PREFIX)
}
case 2: {
if(player_data[id][GLOCK_KILLS] >= POINTS[4]) {
player_data[id][GLOCK_MENU] = 2;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
else print_color(id, "!g[%s]!y Nincs elég Ölésed az aktiváláshoz.", PREFIX)
}
case 3: {
if(player_data[id][GLOCK_KILLS] >= POINTS[5]) {
player_data[id][GLOCK_MENU] = 3;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
else print_color(id, "!g[%s]!y Nincs elég Ölésed az aktiváláshoz.", PREFIX)
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public knife_menu(id) {
new temp[128], temp2[64];
formatex(temp, charsmax(temp), "\r[%s] \wKés Skinek ^nÖlések: \y%d", PREFIX, player_data[id][KNIFE_KILLS]);
new menu = menu_create(temp, "knife_handler");
formatex(temp, charsmax(temp), "Alap Kés %s", player_data[id][KNIFE_MENU] == 0 ? "\y|AKTÍV|":"");
menu_additem(menu, temp, "0", 0);
formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[6]);
formatex(temp, charsmax(temp), "Rozsdás Kés %s", player_data[id][KNIFE_MENU] == 1 ? "\y|AKTÍV|":temp2);
menu_additem(menu, temp, "1", 0);
formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[7]);
formatex(temp, charsmax(temp), "Ezüst Kés %s", player_data[id][KNIFE_MENU] == 2 ? "\y|AKTÍV|":temp2);
menu_additem(menu, temp, "2", 0);
formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[8]);
formatex(temp, charsmax(temp), "Arany Kés %s", player_data[id][KNIFE_MENU] == 3 ? "\y|AKTÍV|":temp2);
menu_additem(menu, temp, "3", 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_BACKNAME, "Vissza");
menu_setprop(menu, MPROP_NEXTNAME, "Előre");
menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public knife_handler(id, menu, item) {
if(item == MENU_EXIT)
{
menu_cancel(id);
return PLUGIN_HANDLED;
}
new command[6], name[64], access, callback;
menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
switch(item)
{
case 0: {
player_data[id][KNIFE_MENU] = 0;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
case 1: {
if(player_data[id][KNIFE_KILLS] >= POINTS[6]) {
player_data[id][KNIFE_MENU] = 1;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
else print_color(id, "!g[%s]!y Nincs elég Ölésed az aktiváláshoz.", PREFIX)
}
case 2: {
if(player_data[id][KNIFE_KILLS] >= POINTS[7]) {
player_data[id][KNIFE_MENU] = 2;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
else print_color(id, "!g[%s]!y Nincs elég Ölésed az aktiváláshoz.", PREFIX)
}
case 3: {
if(player_data[id][KNIFE_KILLS] >= POINTS[8]) {
player_data[id][KNIFE_MENU] = 3;
print_color(id, "!g[%s]!y Sikeresen aktiváltad a skint.", PREFIX)
}
else print_color(id, "!g[%s]!y Nincs elég Ölésed az aktiváláshoz.", PREFIX)
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public MySql_Init()
{
g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db)
new ErrorCode
new Error[512]
new Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,Error,charsmax(Error))
if(SqlConnection == Empty_Handle)
{
set_fail_state(Error)
}
new szTemp[1024]
formatex(szTemp, charsmax(szTemp), "CREATE TABLE IF NOT EXISTS server \
(steamid varchar(32),awp INT(11),scout INT(11),deagle INT(11),usp INT(11),glock INT(11),knife INT(11),\
awpM INT(11),scoutM INT(11),deagleM INT(11),uspM INT(11),glockM INT(11),knifeM INT(11))")
new Handle:Queries = SQL_PrepareQuery(SqlConnection,szTemp) // Létrehozzuk a server táblát és a mentési sorokat!
if(!SQL_Execute(Queries))
{
SQL_QueryError(Queries,Error,charsmax(Error))
set_fail_state(Error)
}
SQL_FreeHandle(Queries)
SQL_FreeHandle(SqlConnection)
}
public plugin_end()
{
SQL_FreeHandle(g_SqlTuple)
}
public betoltes(id)
{
new ids[32], szTemp[512]
get_user_authid(id, ids, charsmax(ids))
new Data[1]
Data[0] = id
format(szTemp,charsmax(szTemp),"SELECT * FROM `server` WHERE (`server`.`steamid` = '%s')", ids) // Kiválasztjuk a játékost a globa-_unison táblából a neve alapján!
SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1)
}
public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
if(FailState == TQUERY_CONNECT_FAILED)
{
log_amx("Kapcsolodas sikertelen. [%d] %s", Errcode, Error)
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_amx("A QUERY betoltese sikertelen.[%d] %s", Errcode, Error)
}
new id
id = Data[0]
if(SQL_NumResults(Query) < 1)
{
new ids[32]
get_user_authid(id, ids, charsmax(ids))
new szTemp[512]
format(szTemp,charsmax(szTemp),"INSERT INTO `server` ( `steamid` , `awp`, `scout`, `deagle`, `usp`, `glock`, `knife`, `awpM`, `scoutM`, `deagleM`, `uspM`, `glockM`, `knifeM`)VALUES ('%s','0','0','0','0','0','0','0','0','0','0','0','0');",ids) // Ha a játékos neve nem található a táblában akkor létrehozunk neki egy új sort a nevével és a pont értékét beállítjük 0-ra!
SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
}
else
{
player_data[id][AWP_KILLS] = SQL_ReadResult(Query, 1)
player_data[id][SCOUT_KILLS] = SQL_ReadResult(Query, 2)
player_data[id][DEAGLE_KILLS] = SQL_ReadResult(Query, 3)
player_data[id][USP_KILLS] = SQL_ReadResult(Query, 4)
player_data[id][GLOCK_KILLS] = SQL_ReadResult(Query, 5)
player_data[id][KNIFE_KILLS] = SQL_ReadResult(Query, 6)
player_data[id][AWP_MENU] = SQL_ReadResult(Query, 7)
player_data[id][SCOUT_MENU] = SQL_ReadResult(Query, 8)
player_data[id][DEAGLE_MENU] = SQL_ReadResult(Query, 9)
player_data[id][USP_MENU] = SQL_ReadResult(Query, 10)
player_data[id][GLOCK_MENU] = SQL_ReadResult(Query, 11)
player_data[id][KNIFE_MENU] = SQL_ReadResult(Query, 12)
}
return PLUGIN_HANDLED
}
public mentes(id)
{
new ids[32], szTemp[512], szTemp1[512]
get_user_authid(id, ids, charsmax(ids))
format(szTemp,charsmax(szTemp),"UPDATE `server` SET `awp` = '%i',`scout` = '%i',`deagle` = '%i',`usp` = '%i',`glock` = '%i',`knife` = '%i' WHERE `server`.`steamid` = '%s';",player_data[id][AWP_KILLS],player_data[id][SCOUT_KILLS],player_data[id][DEAGLE_KILLS],player_data[id][USP_KILLS],player_data[id][GLOCK_KILLS],player_data[id][KNIFE_KILLS], ids)
format(szTemp1,charsmax(szTemp1),"UPDATE `server` SET `awpM` = '%i',`scoutM` = '%i',`deagleM` = '%i',`uspM` = '%i',`glockM` = '%i',`knifeM` = '%i' WHERE `server`.`steamid` = '%s';",player_data[id][AWP_MENU],player_data[id][SCOUT_MENU],player_data[id][DEAGLE_MENU],player_data[id][USP_MENU],player_data[id][GLOCK_MENU],player_data[id][KNIFE_MENU], ids)
SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
}
public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
SQL_FreeHandle(Query)
return PLUGIN_HANDLED
}
public client_putinserver(id)
{
betoltes(id)
}
public client_disconnect(id)
{
mentes(id)
}
stock print_color(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!t", "^3")
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i])
write_string(msg)
message_end()
}
}
}
return PLUGIN_HANDLED
}