Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Проблема с Advanced Surf Points System

ChKOChKO
сообщение 21.6.2015, 9:40
Сообщение #1
Стаж: 11 лет

Сообщений: 13
Благодарностей: 1
Полезность: 0

Установил на свой сервер Advance Surf Points System и не могу зайти.
Ошибка (в консоли клиента)

Last 32 messages parsed.
753 0022 StatusIcon
753 0028 ScoreAttrib
753 0031 RoundTime
753 0034 TeamScore
753 0041 TeamScore
753 0055 HideWeapon
753 0057 SetFOV
753 0059 Battery
753 0062 Damage
753 0075 FlashBat
753 0077 Train
753 0079 CurWeapon
753 0083 WeapPickup
753 0085 WeapPickup
753 0087 AmmoPickup
753 0090 ScoreAttrib
753 0093 ScreenFade
753 0104 RoundTime
753 0107 AmmoX
753 0110 CurWeapon
753 0114 CurWeapon
753 0118 TeamInfo
753 0124 ScoreInfo
753 0134 TextMsg
753 0151 svc_updateuserinfo
753 0360 svc_time
753 0365 svc_setangle
753 0372 svc_clientdata
753 0438 svc_deltapacketentities
753 0466 svc_temp_entity
753 0547 svc_sendcvarvalue2
BAD: 570:svc_bad
Wrote erroneous message to buffer.dat
Host_Error: CL_ParseServerMessage: Bad server message
Netchan_Clear() : reliable length not 0, reliable_sequence: 1


surf_buy.sma
Код
// Includes
// --- #include <xs> not needed!
#define _xs_included

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta_util>
#include <cstrike>
#include <surf>

// Pragma
#pragma semicolon 1

// Plugin info
new const PLUGIN[] =    "Surf Buy";
new const VERSION[] =    "1.0";
new const AUTHOR[] =    "Hattrick";

// Customization
new const xPrefix[] =    "!g[Surf Buy]";
new const ConfigFile[] = "addons/amxmodx/configs/surf_buy.cfg";

// Unlimited clip offsets
#if cellbits == 32
    const OFFSET_CLIPAMMO = 51;
#else
    const OFFSET_CLIPAMMO = 65;
#endif
const OFFSET_LINUX_WEAPONS = 4;

// Maxclip const
new const MAXCLIP[] = { -1, 13, -1, 10, 1, 7, -1, 30, 30, 1, 30, 20, 25, 30, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 2, 7, 30, 30, -1, 50 };

// Entities list
new entlist[][] = { "func_button", "trigger_multiple", "trigger_once" };

// Cvars
new cvar_health1_cost, cvar_speed_cost, cvar_gravity_cost, cvar_invisibility_cost, cvar_moneys_cost, cvar_damage_cost, cvar_noclip_cost, cvar_godmode_cost,
cvar_health2_cost, cvar_unlimitedclip_cost, cvar_jail_cost, cvar_shotguns_cost,
cvar_health1_cost2, cvar_speed_cost2, cvar_gravity_cost2, cvar_invisibility_cost2, cvar_moneys_cost2, cvar_damage_cost2, cvar_noclip_cost2, cvar_godmode_cost2,
cvar_health2_cost2, cvar_unlimitedclip_cost2, cvar_jail_cost2, cvar_shotguns_cost2;

// Bools
new bool:b_Speed[33], bool:b_Invisibility[33], bool:b_Damage[33], bool:b_Noclip[33], bool:b_Godmode[33],
bool:b_Unlimitedclip[33], b_Spawns[33], g_GodmodeCount[33], g_NoclipCount[33], bool:b_Gravity[33], bool:b_Shotguns[33];

// Init
public plugin_init()
{
    // Register the plugin
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    // Register the plugin dictionary
    register_dictionary("surf_buy.txt");
    
    // Register the plugins events
    register_event("CurWeapon", "event_CurWeapon", "be", "1=1");
    
    // Client commands
    register_clcmd("say /menu", "command_Buy");
    register_clcmd("say menu", "command_Buy");
    register_clcmd("say /shop", "command_Buy");
    register_clcmd("say shop", "command_Buy");
    
    // Menu commands
    register_menucmd(register_menuid("aaaxMenu1"), 1023, "BuyMenu");
    register_menucmd(register_menuid("bbbxMenu2"), 1023, "BuyMenu2");
    
    // Messages
    register_message(get_user_msgid("CurWeapon"), "message_cur_weapon");

    // Plugin cvars
    cvar_health1_cost = register_cvar("surf_health1_cost", "3");
    cvar_speed_cost = register_cvar("surf_speed_cost", "3");
    cvar_gravity_cost = register_cvar("surf_gravity_cost", "3");
    cvar_invisibility_cost = register_cvar("surf_invisibility_cost", "4");
    cvar_moneys_cost = register_cvar("surf_moneys_cost", "4");
    cvar_damage_cost = register_cvar("surf_damage_cost", "5");
    cvar_noclip_cost = register_cvar("surf_noclip_cost", "7");
    cvar_godmode_cost = register_cvar("surf_godmode_cost", "7");
    cvar_health2_cost = register_cvar("surf_health2_cost", "8");
    cvar_unlimitedclip_cost = register_cvar("surf_unlimitedclip_cost", "8");
    cvar_jail_cost = register_cvar("surf_jail_cost", "3");
    cvar_shotguns_cost = register_cvar("surf_shotguns_cost", "8");
    cvar_health1_cost2 = register_cvar("surf_health1_cost2", "1500");
    cvar_speed_cost2 = register_cvar("surf_speed_cost2", "1750");
    cvar_gravity_cost2 = register_cvar("surf_gravity_cost2", "1500");
    cvar_invisibility_cost2 = register_cvar("surf_invisibility_cost2", "2000");
    cvar_moneys_cost2 = register_cvar("surf_moneys_cost2", "10000");
    cvar_damage_cost2 = register_cvar("surf_damage_cost2", "8000");
    cvar_noclip_cost2 = register_cvar("surf_noclip_cost2", "12000");
    cvar_godmode_cost2 = register_cvar("surf_godmode_cost2", "12000");
    cvar_health2_cost2 = register_cvar("surf_health2_cost2", "14500");
    cvar_unlimitedclip_cost2 = register_cvar("surf_unlimitedclip_cost2", "14500");
    cvar_jail_cost2 = register_cvar("surf_jail_cost2", "3750");
    cvar_shotguns_cost2 = register_cvar("surf_shotguns_cost2", "15000");
    
    // Forwards
    RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawned_Post", 1);
    RegisterHam(Ham_TakeDamage, "player", "ham_TakeDamage");
}

// Public plugin config
public plugin_cfg()
{
    new x[128];
    format(x, 127, "exec %s", ConfigFile);
    server_cmd(x);
    server_exec();
}

// Menu format
public command_Buy(id)
{
    // Make menu (2024 max characters)
    new menuBody[2025];
    add(menuBody, 2024, "\yBuy Menu^n^n");
    add(menuBody, 2024, "\r1.\w Health \y[+255 HP]^n");
    add(menuBody, 2024, "\r2.\w Speed \y[350 Speed]^n");
    add(menuBody, 2024, "\r3.\w Gravity \y[500 Gravity]^n");
    add(menuBody, 2024, "\r4.\w Invisibility \y[100% Invisible]^n");
    add(menuBody, 2024, "\r5.\w Moneys \y[+12500$]^n");
    add(menuBody, 2024, "\r6.\w Damage \y[2x DMG]^n");
    add(menuBody, 2024, "\r7.\w Noclip \y[20 Seconds]^n");
    add(menuBody, 2024, "\r8.\w Godmode \y[20 Seconds]^n^n");
    add(menuBody, 2024, "\r9.\w Next^n^n");
    add(menuBody, 2024, "\r0.\w Exit^n");
    
    // Show menu to player
    show_menu(id, (1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6 | 1<<7 | 1<<8 | 1<<9), menuBody, -1, "aaaxMenu1");
}

// Menu2 format
public command_Buy2(id)
{
    // Make menu (2024 max characters)
    new menuBody[2025];
    add(menuBody, 2024, "\yBuy Menu2^n^n");
    add(menuBody, 2024, "\r1.\w Health \y[+1000 HP]^n");
    add(menuBody, 2024, "\r2.\w Unlimited Clip \y[Infinite ammo]^n");
    add(menuBody, 2024, "\r3.\w Open the jail^n");
    add(menuBody, 2024, "\r4.\w ShotGuns \y[M3 & XM1014]^n^n");
    add(menuBody, 2024, "\r9.\w Back^n^n");
    add(menuBody, 2024, "\r0.\w Exit^n");
    
    // Show menu to player
    show_menu(id, (1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6 | 1<<7 | 1<<8 | 1<<9), menuBody, -1, "bbbxMenu2");
}

// Buy menu
public BuyMenu(id, key)
{
    // Get the user name
    new name[32];
    get_user_name(id, name, 31);
    
    // Switch the player key
    switch(key)
    {
        // Health +255
        case 0:
        {
            // Has enough points?
            if (surf_get_user_points(id) >= get_pcvar_num(cvar_health1_cost))
            {
                fm_set_user_health(id, get_user_health(id) + 255);
                surf_del_user_points(id, get_pcvar_num(cvar_health1_cost));
                write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "+255 HP");
            }
            // Not has enough points, has enough moneys?
            else if (cs_get_user_money(id) >= get_pcvar_num(cvar_health1_cost2))
            {
                fm_set_user_health(id, get_user_health(id) + 255);
                cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_health1_cost2));
                write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "+255 HP");
            }
            // Not has points, not has moneys... I'm sorry...
            else
            {
                write_colored(id, "%s %L", xPrefix, LANG_PLAYER, "SURF_NO_ENOUGH_MONEY", get_pcvar_num(cvar_health1_cost), get_pcvar_num(cvar_health1_cost2));
            }
        }
        // 300 Speed
        case 1:
        {
            // Has enough points?
            if (surf_get_user_points(id) >= get_pcvar_num(cvar_speed_cost))
            {
                b_Speed[id] = true;
                surf_del_user_points(id, get_pcvar_num(cvar_speed_cost));
                write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "300 Speed");
            }
            // Not has enough points, has enough moneys?
            else if (cs_get_user_money(id) >= get_pcvar_num(cvar_speed_cost2))
            {
                b_Speed[id] = true;
                cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_speed_cost2));
                write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "300 Speed");
            }
            // Not has points, not has moneys... I'm sorry...
            else
            {
                write_colored(id, "%s %L", xPrefix, LANG_PLAYER, "SURF_NO_ENOUGH_MONEY", get_pcvar_num(cvar_speed_cost), get_pcvar_num(cvar_speed_cost2));
            }
        }
        // 500 Gravity
        case 2:
        {
            // Has enough points?
            if (surf_get_user_points(id) >= get_pcvar_num(cvar_gravity_cost))
            {
                b_Gravity[id] = true;
                fm_set_user_gravity(id, 0.7);
                surf_del_user_points(id, get_pcvar_num(cvar_gravity_cost));
                write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "500 Gravity");
            }
            // Not has enough points, has enough moneys?
            else if (cs_get_user_money(id) >= get_pcvar_num(cvar_gravity_cost2))
            {
                b_Gravity[id] = true;
                fm_set_user_gravity(id, 0.7);
                cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_gravity_cost2));
                write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "500 Gravity");
            }
            // Not has points, not has moneys... I'm sorry...
            else
            {
                write_colored(id, "%s %L", xPrefix, LANG_PLAYER, "SURF_NO_ENOUGH_MONEY", get_pcvar_num(cvar_gravity_cost), get_pcvar_num(cvar_gravity_cost2));
            }
        }
        // 100% Invisibility
        case 3:
        {
            // Has enough points?
            if (surf_get_user_points(id) >= get_pcvar_num(cvar_invisibility_cost))
            {
                b_Invisibility[id] = true;
                fm_set_user_rendering(id, kRenderFxHologram, 0, 0, 0, kRenderTransAlpha, 250);
                surf_del_user_points(id, get_pcvar_num(cvar_invisibility_cost));
                write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "100% Invisible");
            }
            // Not has enough points, has enough moneys?
            else if (cs_get_user_money(id) >= get_pcvar_num(cvar_invisibility_cost2))
            {
                b_Invisibility[id] = true;
                fm_set_user_rendering(id, kRenderFxHologram, 0, 0, 0, kRenderTransAlpha, 250);
                cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_invisibility_cost2));
                write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "100% Invisible");
            }
            // Not has points, not has moneys... I'm sorry...
            else
            {
                write_colored(id, "%s %L", xPrefix, LANG_PLAYER, "SURF_NO_ENOUGH_MONEY", get_pcvar_num(cvar_invisibility_cost), get_pcvar_num(cvar_invisibility_cost2));
            }
        }
        // 12500$ Moneys
        case 4:
        {
            // Has enough points?
            if (surf_get_user_points(id) >= get_pcvar_num(cvar_moneys_cost))
            {
                cs_set_user_money(id, cs_get_user_money(id) + 12500);
                surf_del_user_points(id, get_pcvar_num(cvar_moneys_cost));
                write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "12500$ Moneys");
            }
            // Not has enough points, has enough moneys?
            else if (cs_get_user_money(id) >= get_pcvar_num(cvar_moneys_cost2))
            {
                cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_moneys_cost2));
                cs_set_user_money(id, cs_get_user_money(id) + 12500);
                write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "12500$ Moneys");
            }
            // Not has points, not has moneys... I'm sorry...
            else
            {
                write_colored(id, "%s %L", xPrefix, LANG_PLAYER, "SURF_NO_ENOUGH_MONEY", get_pcvar_num(cvar_moneys_cost), get_pcvar_num(cvar_moneys_cost2));
            }
        }
        // 2x Damage
        case 5:
        {
            // Has enough points?
            if (surf_get_user_points(id) >= get_pcvar_num(cvar_damage_cost))
            {
                b_Damage[id] = true;
                surf_del_user_points(id, get_pcvar_num(cvar_damage_cost));
                write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "2x Damage");
            }
            // Not has enough points, has enough moneys?
            else if (cs_get_user_money(id) >= get_pcvar_num(cvar_damage_cost2))
            {
                b_Damage[id] = true;
                cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_damage_cost2));
                write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "2x Damage");
            }
            // Not has points, not has moneys... I'm sorry...
            else
            {
                write_colored(id, "%s %L", xPrefix, LANG_PLAYER, "SURF_NO_ENOUGH_MONEY", get_pcvar_num(cvar_damage_cost), get_pcvar_num(cvar_damage_cost2));
            }
        }
        // Noclip 20 seconds
        case 6:
        {
            // Has enough points?
            if (surf_get_user_points(id) >= get_pcvar_num(cvar_noclip_cost))
            {
                b_Noclip[id] = true;
                g_NoclipCount[id] = 19;
                fm_set_user_noclip(id, 1);
                surf_del_user_points(id, get_pcvar_num(cvar_noclip_cost));
                set_task(20.0, "task_RemoveNoclip", id);
                set_task(1.0, "task_NoclipCountDown", id, _, _, "a", 19);
                write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "Noclip");
            }
            // Not has enough points, has enough moneys?
            else if (cs_get_user_money(id) >= get_pcvar_num(cvar_noclip_cost2))
            {
                b_Noclip[id] = true;
                g_NoclipCount[id] = 19;
                fm_set_user_noclip(id, 1);
                cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_noclip_cost2));
                set_task(20.0, "task_RemoveNoclip", id);
                set_task(1.0, "task_NoclipCountDown", id, _, _, "a", 19);
                write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "Noclip");
            }
            // Not has points, not has moneys... I'm sorry...
            else
            {
                write_colored(id, "%s %L", xPrefix, LANG_PLAYER, "SURF_NO_ENOUGH_MONEY", get_pcvar_num(cvar_noclip_cost), get_pcvar_num(cvar_noclip_cost2));
            }
        }
        // Godmode 20 seconds
        case 7:
        {
            // Has enough points?
            if (surf_get_user_points(id) >= get_pcvar_num(cvar_godmode_cost))
            {
                b_Godmode[id] = true;
                g_GodmodeCount[id] = 19;
                fm_set_user_godmode(id, 1);
                surf_del_user_points(id, get_pcvar_num(cvar_godmode_cost));
                set_task(20.0, "task_RemoveGodmode", id);
                set_task(1.0, "task_GodmodeCountDown", id, _, _, "a", 19);
                write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "Godmode");
            }
            // Not has enough points, has enough moneys?
            else if (cs_get_user_money(id) >= get_pcvar_num(cvar_godmode_cost2))
            {
                b_Godmode[id] = true;
                g_GodmodeCount[id] = 19;
                fm_set_user_godmode(id, 1);
                cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_godmode_cost2));
                set_task(20.0, "task_RemoveGodmode", id);
                set_task(1.0, "task_GodmodeCountDown", id, _, _, "a", 19);
                write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "Godmode");
            }
            // Not has points, not has moneys... I'm sorry...
            else
            {
                write_colored(id, "%s %L", xPrefix, LANG_PLAYER, "SURF_NO_ENOUGH_MONEY", get_pcvar_num(cvar_godmode_cost), get_pcvar_num(cvar_godmode_cost2));
            }
        }
        case 8:
        {
            command_Buy2(id);
        }
        default:
        {
            return PLUGIN_CONTINUE;
        }
    }
    return PLUGIN_CONTINUE;
}

// Buy menu2
public BuyMenu2(id, key)
{
    // Get the user name
    new name[32];
    get_user_name(id, name, 31);
    
    // Switch the player key
    switch(key)
    {
        // Health +1000
        case 0:
        {
            // Has enough points?
            if (surf_get_user_points(id) >= get_pcvar_num(cvar_health2_cost))
            {
                fm_set_user_health(id, get_user_health(id) + 1000);
                surf_del_user_points(id, get_pcvar_num(cvar_health2_cost));
                write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "+1000 HP");
            }
            // Not has enough points, has enough moneys?
            else if (cs_get_user_money(id) >= get_pcvar_num(cvar_health2_cost2))
            {
                fm_set_user_health(id, get_user_health(id) + 1000);
                cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_health2_cost2));
                write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "+1000 HP");
            }
            // Not has points, not has moneys... I'm sorry...
            else
            {
                write_colored(id, "%s %L", xPrefix, LANG_PLAYER, "SURF_NO_ENOUGH_MONEY", get_pcvar_num(cvar_health2_cost), get_pcvar_num(cvar_health2_cost2));
            }
        }
        // Unlimited Clip
        case 1:
        {
            // Has enough points?
            if (surf_get_user_points(id) >= get_pcvar_num(cvar_unlimitedclip_cost))
            {
                b_Unlimitedclip[id] = true;
                surf_del_user_points(id, get_pcvar_num(cvar_unlimitedclip_cost));
                write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "Unlimited Clip");
            }
            // Not has enough points, has enough moneys?
            else if (cs_get_user_money(id) >= get_pcvar_num(cvar_unlimitedclip_cost2))
            {
                b_Unlimitedclip[id] = true;
                cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_unlimitedclip_cost2));
                write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "Unlimited Clip");
            }
            // Not has points, not has moneys... I'm sorry...
            else
            {
                write_colored(id, "%s %L", xPrefix, LANG_PLAYER, "SURF_NO_ENOUGH_MONEY", get_pcvar_num(cvar_unlimitedclip_cost), get_pcvar_num(cvar_unlimitedclip_cost2));
            }
        }
        // Jail open
        case 2:
        {
            // Has enough points?
            if (surf_get_user_points(id) >= get_pcvar_num(cvar_jail_cost))
            {
                open_jail(id);
                surf_del_user_points(id, get_pcvar_num(cvar_jail_cost));
            }
            // Not has enough points, has enough moneys?
            else if (cs_get_user_money(id) >= get_pcvar_num(cvar_jail_cost2))
            {
                open_jail(id);
                cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_jail_cost2));
            }
            // Not has points, not has moneys... I'm sorry...
            else
            {
                write_colored(id, "%s %L", xPrefix, LANG_PLAYER, "SURF_NO_ENOUGH_MONEY", get_pcvar_num(cvar_jail_cost), get_pcvar_num(cvar_jail_cost2));
            }
        }
        // ShotGuns
        case 3:
        {
            // Has enough points?
            if (surf_get_user_points(id) >= get_pcvar_num(cvar_shotguns_cost))
            {
                b_Shotguns[id] = true;
                fm_give_item(id, "weapon_m3");
                fm_give_item(id, "weapon_xm1014");
                cs_set_user_bpammo(id, CSW_M3, 999);
                cs_set_user_bpammo(id, CSW_XM1014, 999);
                surf_del_user_points(id, get_pcvar_num(cvar_shotguns_cost));
            }
            // Not has enough points, has enough moneys?
            else if (cs_get_user_money(id) >= get_pcvar_num(cvar_shotguns_cost2))
            {
                b_Shotguns[id] = true;
                fm_give_item(id, "weapon_m3");
                fm_give_item(id, "weapon_xm1014");
                cs_set_user_bpammo(id, CSW_M3, 999);
                cs_set_user_bpammo(id, CSW_XM1014, 999);
                cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_shotguns_cost2));
            }
            // Not has points, not has moneys... I'm sorry...
            else
            {
                write_colored(id, "%s %L", xPrefix, LANG_PLAYER, "SURF_NO_ENOUGH_MONEY", get_pcvar_num(cvar_shotguns_cost), get_pcvar_num(cvar_shotguns_cost2));
            }
        }
        case 8:
        {
            command_Buy(id);
        }
        default:
        {
            return PLUGIN_CONTINUE;
        }
    }
    return PLUGIN_CONTINUE;
}

// Current Weapon event
public event_CurWeapon(id)
{
    if (b_Speed[id])
    {
        fm_set_user_maxspeed(id, 350.0);
    }
}

// When client is spawned
public ham_PlayerSpawned_Post(id)
{
    b_Spawns[id]++;
    if (b_Speed[id])
    {
        b_Speed[id] = false;
    }
    if (b_Invisibility[id])
    {
        b_Invisibility[id] = false;
        fm_set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
    }
    if (b_Gravity[id])
    {
        b_Gravity[id] = false;
        fm_set_user_gravity(id, 1.0);
    }
    if (b_Damage[id])
    {
        b_Damage[id] = false;
    }
    if (b_Noclip[id])
    {
        b_Noclip[id] = false;
        fm_set_user_noclip(id, 0);
    }
    if (b_Godmode[id])
    {
        b_Godmode[id] = false;
        fm_set_user_godmode(id, 0);
    }
    if (b_Spawns[id] == 3)
    {
        command_Buy(id);
        write_colored(id, "%s %L", xPrefix, LANG_PLAYER, "SURF_BEGGIN_INFO");
        write_colored(id, "%s %L", xPrefix, LANG_PLAYER, "SURF_BEGGIN_INFO");
    }
    if (b_Unlimitedclip[id])
    {
        b_Unlimitedclip[id] = false;
    }
    if (g_GodmodeCount[id])
    {
        g_GodmodeCount[id] = 0;
    }
    if (g_NoclipCount[id])
    {
        g_NoclipCount[id] = 0;
    }
    if (b_Shotguns[id])
    {
        b_Shotguns[id] = false;
        fm_give_item(id, "weapon_m3");
        fm_give_item(id, "weapon_xm1014");
        cs_set_user_bpammo(id, CSW_M3, 999);
        cs_set_user_bpammo(id, CSW_XM1014, 999);
    }
}

// Damage multiplier
public ham_TakeDamage(victim, inflictor, attacker, Float:damage)
{
    if (victim == attacker || !is_user_connected(attacker))
    {
        return HAM_IGNORED;
    }
    if (b_Damage[attacker])
    {
        damage *= 2.0;
        SetHamParamFloat(4, damage);
    }
    return HAM_IGNORED;
}

// When client joining
public client_putinserver(id)
{
    set_task(25.0, "task_Announce", id);
}

// When client disconnect
public client_disconnect(id)
{
    if (b_Speed[id])
    {
        b_Speed[id] = false;
    }
    if (b_Invisibility[id])
    {
        b_Invisibility[id] = false;
    }
    if (b_Gravity[id])
    {
        b_Gravity[id] = false;
    }
    if (b_Damage[id])
    {
        b_Damage[id] = false;
    }
    if (b_Noclip[id])
    {
        b_Noclip[id] = false;
    }
    if (b_Godmode[id])
    {
        b_Godmode[id] = false;
    }
    if (b_Spawns[id])
    {
        b_Spawns[id] = 0;
    }
    if (b_Unlimitedclip[id])
    {
        b_Unlimitedclip[id] = false;
    }
    if (g_GodmodeCount[id])
    {
        g_GodmodeCount[id] = 0;
    }
    if (g_NoclipCount[id])
    {
        g_NoclipCount[id] = 0;
    }
    if (b_Shotguns[id])
    {
        b_Shotguns[id] = false;
    }
}

// Remove Noclip task
public task_RemoveNoclip(id)
{
    if (!is_user_connected(id))
    {
        return;
    }
    if (fm_get_user_noclip(id))
    {
        b_Noclip[id] = false;
        fm_set_user_noclip(id, 0);
        new Float:origin[3], hulltype;
        pev(id, pev_origin, origin);
        hulltype = (pev(id, pev_flags) & FL_DUCKING) ? HULL_HEAD : HULL_HUMAN;
        if (!hattrick_hull_vacant(id, origin, hulltype))
        {
            user_kill(id);
            write_colored(id, "%s %L", xPrefix, LANG_PLAYER, "SURF_NOCLIP_DIED");
        }
        if (is_user_alive(id))
        {
            write_colored(id, "%s %L", xPrefix, LANG_PLAYER, "SURF_NOCLIP_REMOVED");
        }
    }
}

// Remove Godmode task
public task_RemoveGodmode(id)
{
    if (!is_user_connected(id))
    {
        return;
    }
    if (fm_get_user_godmode(id))
    {
        b_Godmode[id] = false;
        fm_set_user_godmode(id, 0);
        write_colored(id, "%s %L", xPrefix, LANG_PLAYER, "SURF_GODMODE_REMOVED");
    }
}

// Announce the player
public task_Announce(id)
{
    if (is_user_connected(id))
    {
        write_colored(id, "%s %L", xPrefix, LANG_PLAYER, "SURF_WELCOME");
    }
}

// Countdown player noclip
public task_NoclipCountDown(id)
{
    if (!is_user_connected(id) || !is_user_alive(id))
    {
        return;
    }
    g_NoclipCount[id]--;
    set_hudmessage(0, 255, 0, 0.35, 0.8, _, _, 7.0);
    show_hudmessage(id, "%L", LANG_PLAYER, "SURF_YOU_HAVE", "noclip", g_NoclipCount[id]);
}

// Countdown player godmode
public task_GodmodeCountDown(id)
{
    if (!is_user_connected(id) || !is_user_alive(id))
    {
        return;
    }
    g_GodmodeCount[id]--;
    set_hudmessage(0, 255, 0, 0.35, 0.8, _, _, 7.0);
    show_hudmessage(id, "%L", LANG_PLAYER, "SURF_YOU_HAVE", "godmode", g_GodmodeCount[id]);
}

// Write colored function
public write_colored(const id, const string[], {Float, Sql, Resul,_}:...)
{
    new msg[191], players[32], count = 1;
    vformat(msg, 190, string, 3);
    replace_all(msg, 190, "!n", "^1");
    replace_all(msg, 190, "!t", "^3");
    replace_all(msg, 190, "!g", "^4");
    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();
        }
    }
}

// Is hull vacant stock (credits ==> VEN)
stock bool:hattrick_hull_vacant(id, const Float:origin[3], hullType = HULL_HEAD, &hitent = 0)
{
    engfunc(EngFunc_TraceHull, origin, origin, 0, hullType, id, 0);
    hitent = get_tr2(0, TraceResult:TR_pHit);
    if (!get_tr2(0, TraceResult:TR_StartSolid) && !get_tr2(0, TraceResult:TR_AllSolid) && get_tr2(0, TraceResult:TR_InOpen))
    {
        return true;
    }
    return false;
}

// Unlimited clip stuff
public message_cur_weapon(msg_id, msg_dest, msg_entity)
{
    if (!b_Unlimitedclip[msg_entity])
    {
        return;
    }
    if (!is_user_alive(msg_entity) || get_msg_arg_int(1) != 1)
    {
        return;
    }
    static weapon, clip;
    weapon = get_msg_arg_int(2);
    clip = get_msg_arg_int(3);
    if (MAXCLIP[weapon] > 2)
    {
        set_msg_arg_int(3, get_msg_argtype(3), MAXCLIP[weapon]);
        if (clip < 2)
        {
            static wname[32], weapon_ent;
            get_weaponname(weapon, wname, 31);
            weapon_ent = fm_find_ent_by_owner(-1, wname, msg_entity);
            fm_set_weapon_ammo(weapon_ent, MAXCLIP[weapon]);
        }
    }
}

stock fm_set_weapon_ammo(entity, amount)
{
    set_pdata_int(entity, OFFSET_CLIPAMMO, amount, OFFSET_LINUX_WEAPONS);
}

// Open jail function
public open_jail(id)
{
    // Get the user name
    new name[32];
    get_user_name(id, name, 31);
    
    new ent, target[32], ent2;
    for (new i = 0; i < sizeof entlist; i++)
    {
        ent = 0;
        ent2 = 0;
        while((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", entlist[i])))
        {
            if (pev_valid(ent))
            {
                pev(ent, pev_target, target, 31);
                while((ent2 = engfunc(EngFunc_FindEntityByString, ent2, "targetname", target)))
                {
                    dllfunc(DLLFunc_Use, ent2, id);
                    write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_CHAT_INFO_X", name, "Jail Opener");
                    return PLUGIN_HANDLED;
                }
            }
        }
    }
    write_colored(id, "%s %L", xPrefix, LANG_PLAYER, "SURF_CANT_FIND");
    return PLUGIN_HANDLED;
}

surf_main_points.sma
Код
// Includes
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>

// Pragma
#pragma semicolon 1

// Plugin info
new const PLUGIN[] = "Surf Main Points";
new const VERSION[] = "1.0";
new const AUTHOR[] = "Hattrick";

/*************************************************
***************** [ Customization ] *******************
**************************************************
---===[[[ You can choose only one! ]]]===---
**************************************************/

///////#define STEAM
#define NICK
///////#define IP


// Spectator target
const PEV_SPEC_TARGET = pev_iuser2;

// Bool
new g_Points[33];

// Hudmessage
new g_HudSterVVVXXXxyz;

// Init
public plugin_init()
{
// Register the plugin
register_plugin(PLUGIN, VERSION, AUTHOR);

// Register the events
register_event("ResetHUD", "event_ResetHud", "be");

// Forwards
RegisterHam(Ham_Killed, "player", "ham_PlayerKilled");
RegisterHam(Ham_Killed, "player", "ham_PlayerKilled1");
RegisterHam(Ham_Killed, "player", "ham_PlayerKilled2");
RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawned_Post", 1);

// Hudmessage
g_HudSterVVVXXXxyz = CreateHudSyncObj();
}

// Register natives
public plugin_natives()
{
register_native("surf_get_user_points", "native_get_user_points", 1);
register_native("surf_set_user_points", "native_set_user_points", 1);
register_native("surf_add_user_points", "native_add_user_points", 1);
register_native("surf_del_user_points", "native_del_user_points", 1);
}





// When player died
public ham_PlayerKilled2(victim, attacker)
{
static selfkill;
selfkill = (victim == attacker || !is_user_connected(attacker)) ? true : false;
if (!selfkill)
{
if(get_user_flags(attacker) & ADMIN_LEVEL_G) g_Points[attacker]+=9; // для гл админа на флаг s
}
else if(get_user_flags(attacker) & ADMIN_LEVEL_E) g_Points[attacker] +=3; //для супер админа на флаг q
}


public ham_PlayerKilled1(victim, attacker)
{
static selfkill;
selfkill = (victim == attacker || !is_user_connected(attacker)) ? true : false;
if (!selfkill)
{
g_Points[attacker]++;
}
}
public ham_PlayerKilled(victim, attacker)
{
static selfkill;
selfkill = (victim == attacker || !is_user_connected(attacker)) ? true : false;
if (!selfkill)
{
if(get_user_flags(attacker) & ADMIN_LEVEL_D) g_Points[attacker]+=2; // для админа на флаг p
}
else if(get_user_flags(attacker) & ADMIN_LEVEL_B) g_Points[attacker] +=1; //для випа на флаг n
}


// After player spawns
public ham_PlayerSpawned_Post(id)
{
if (is_user_connected(id) && is_user_alive(id))
{
set_task(1.0, "ShowHud", id, _, _, "b");
}
}

// Resethud Event
public event_ResetHud(id)
{
ShowHud(id);
}

// Show Hud function
public ShowHud(id)
{
if (is_user_connected(id) && is_user_alive(id) && (get_user_team(id) == 1 || get_user_team(id) == 2))
{
set_hudmessage(0, 255, 0, 0.01, 0.23, 0, 0.5, 15.0, 2.0, 2.0, -1);
ShowSyncHudMsg(id, g_HudSterVVVXXXxyz, " Поинтов: %d^n^n Жизни: %d^n Броня: %d", g_Points[id], get_user_health(id), get_user_armor(id));
}
else
{
new idSpec;
new iPlayerName[32];
idSpec = pev(id, PEV_SPEC_TARGET);
get_user_name(idSpec, iPlayerName, 31);
set_hudmessage(0, 255, 0, 0.01, 0.22, 0, 0.5, 15.0, 2.0, 2.0, -1);
ShowSyncHudMsg(id, g_HudSterVVVXXXxyz, " Игрок: %s^n^n Поинтов: %d^n^n Жизни: %d^n Броня: %d", iPlayerName, g_Points[idSpec], get_user_health(idSpec), get_user_armor(idSpec));
}
}

// Save data function
public SaveData(id)
{
#if defined STEAM
new steamid[35];
get_user_authid(id, steamid, 34);
new vaultkey[64], vaultdata[328];
format(vaultkey, 63, "SURFS_%s", steamid);
format(vaultdata, 327, "%i#", g_Points[id]);
set_vaultdata(vaultkey, vaultdata);
#endif

#if defined NICK
new name[35];
get_user_name(id, name, 34);
new vaultkey[64], vaultdata[328];
format(vaultkey, 63, "SURFS_%s", name);
format(vaultdata, 327, "%i#", g_Points[id]);
set_vaultdata(vaultkey, vaultdata);
#endif

#if defined IP
new ip[35];
get_user_ip(id, ip, 34, 1);
new vaultkey[64], vaultdata[328];
format(vaultkey, 63, "SURFS_%s", name);
format(vaultdata, 327, "%i#", g_Points[id]);
set_vaultdata(vaultkey, vaultdata);
#endif
}

// Load data function
public LoadData(id)
{
#if defined STEAM
new steamid[35];
get_user_authid(id, steamid, 34);
new vaultkey[64], vaultdata[328];
format(vaultkey, 63, "SURFS_%s", steamid);
format(vaultdata, 327, "%i#", g_Points[id]);
get_vaultdata(vaultkey, vaultdata, 327);
replace_all(vaultdata, 327, "#", " ");
new g_point[32];
parse(vaultdata, g_point, 31);
g_Points[id] = str_to_num(g_point);
#endif

#if defined NICK
new name[35];
get_user_name(id, name, 34);
new vaultkey[64], vaultdata[328];
format(vaultkey, 63, "SURFS_%s", name);
format(vaultdata, 327, "%i#", g_Points[id]);
get_vaultdata(vaultkey, vaultdata, 327);
replace_all(vaultdata, 327, "#", " ");
new g_point[32];
parse(vaultdata, g_point, 31);
g_Points[id] = str_to_num(g_point);
#endif

#if defined IP
new ip[35];
get_user_ip(id, ip, 34, 1);
new vaultkey[64], vaultdata[328];
format(vaultkey, 63, "SURFS_%s", ip);
format(vaultdata, 327, "%i#", g_Points[id]);
get_vaultdata(vaultkey, vaultdata, 327);
replace_all(vaultdata, 327, "#", " ");
new g_point[32];
parse(vaultdata, g_point, 31);
g_Points[id] = str_to_num(g_point);
#endif
}

// Plugin natives
// Native: surf_get_user_points
public native_get_user_points(id)
{
return g_Points[id];
}

// Native: surf_set_user_points
public native_set_user_points(id, amount)
{
g_Points[id] = amount;
}

// Native: surf_add_user_points
public native_add_user_points(id, amount)
{
g_Points[id] += amount;
}

// Native: surf_del_user_points
public native_del_user_points(id, amount)
{
g_Points[id] -= amount;
}

// When client enter on server
public client_putinserver(id)
{
LoadData(id);
}

// When client disconnect
public client_disconnect(id)
{
SaveData(id);
}

surf_points_manager.sma
Код
// Includes
#include <amxmodx>
#include <amxmisc>
#include <surf>

// Pragma
#pragma semicolon 1

// Plugin info
new const PLUGIN[] =    "Surf Points Manager";
new const VERSION[] =    "1.0";
new const AUTHOR[] =    "Hattrick";

// Customization
new const xPrefix[] =    "!g[Surf Points Manager]";
new const xLogFile[] = "surf_points_manager.log";

// Init
public plugin_init()
{
    // Register the plugin
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    // Register the plugin dictionary
    register_dictionary("surf_points_manager.txt");
    
    // Admin commands
    register_concmd("amx_give_points", "command_GivePoints", ADMIN_LEVEL_C, "<^"name^" or #userid> <amount>");
    register_concmd("amx_remove_points", "command_RemovePoints", ADMIN_LEVEL_C, "<^"name^" or #userid> <amount>");
}

// Give points command
public command_GivePoints(id, level, cid)
{
    if (!cmd_access(id, level, cid, 2))
    {
        return PLUGIN_HANDLED;
    }
    new arg[32], arg2[6];
    read_argv(1, arg, 31);
    read_argv(2, arg2, 5);
    new target = cmd_target(id, arg, CMDTARGET_ALLOW_SELF | CMDTARGET_NO_BOTS);
    if (!target)
    {
        return PLUGIN_HANDLED;
    }
    new points;
    points = str_to_num(arg2);
    surf_add_user_points(target, points);
    new name[32], name2[32];
    get_user_name(id, name, 31);
    get_user_name(target, name2, 31);
    log_to_file(xLogFile, "%L", LANG_SERVER, "SURF_LOG_GIVE", name, points, name2);
    write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_GIVE_ANNOUNCE", name, points, name2);
    return PLUGIN_HANDLED;
}

// Remove points command
public command_RemovePoints(id, level, cid)
{
    if (!cmd_access(id, level, cid, 2))
    {
        return PLUGIN_HANDLED;
    }
    new arg[32], arg2[6];
    read_argv(1, arg, 31);
    read_argv(2, arg2, 5);
    new target = cmd_target(id, arg, CMDTARGET_ALLOW_SELF | CMDTARGET_NO_BOTS);
    if (!target)
    {
        return PLUGIN_HANDLED;
    }
    new points;
    points = str_to_num(arg2);
    surf_del_user_points(target, points);
    new name[32], name2[32];
    get_user_name(id, name, 31);
    get_user_name(target, name2, 31);
    log_to_file(xLogFile, "%L", LANG_SERVER, "SURF_LOG_REMOVE", name, points, name2);
    write_colored(0, "%s %L", xPrefix, LANG_PLAYER, "SURF_REMOVE_ANNOUNCE", name, points, name2);
    return PLUGIN_HANDLED;
}

// Write colored function
public write_colored(const id, const string[], {Float, Sql, Resul,_}:...)
{
    new msg[191], players[32], count = 1;
    vformat(msg, 190, string, 3);
    replace_all(msg, 190, "!n", "^1");
    replace_all(msg, 190, "!t", "^3");
    replace_all(msg, 190, "!g", "^4");
    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();
        }
    }
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
ChKOChKO
сообщение 21.6.2015, 13:59
Сообщение #2
Стаж: 11 лет

Сообщений: 13
Благодарностей: 1
Полезность: 0

Нашел проблему, тему Closed.
Проблема была заключена в кодировке, нужно было перейти на UTF-8
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 2 гостей читают эту тему: