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

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

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

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

> Информационная доска

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

1. Во время создания новой темы аккуратно оформляйте её, не допускайте грамматических ошибок.
2. Описывая проблему старайтесь, как можно больше рассказать о ней, а так же о действиях с сервером после которых она возникла, по возможности подкрепите информацию логами.
3. Если вопрос касается проблемы в работе сервера, то обязательно прикрепляйте список плагинов (введите в консоли сервера: meta list и amxx plugins), настройки server.cfg, логи. Так же указывайте операционную систему, версию HLDS (введите к консоли сервера: version) и где хостится сервер.

Длинную информацию скрывайте под спойлер.
2 страниц V   1 2

ОШИБКА СЕРВЕРА: Sz_getspace: Overflow Without Fsb_allowoverflow Set On Server Reliable Datagram

, SZ_GetSpace: overflow without FSB_ALLOWOVERFLOW set on Server Reliable
Статус пользователя bravo
сообщение 4.1.2009, 19:49
Сообщение #21


Стаж: 19 лет

Сообщений: 2650
Благодарностей: 865
Полезность: 879

Меценат Меценат

задай вопрос там... можно заюзать переводчик и извиниться за кривой английский
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Matrix.AZ
сообщение 5.1.2009, 0:18
Сообщение #22


Стаж: 19 лет

Сообщений: 124
Благодарностей: 7
Полезность: 52

а за что должен извиниться я? и я говорю же что я там все посмотрел и не нашел аткой проблемы!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя bravo
сообщение 5.1.2009, 1:14
Сообщение #23


Стаж: 19 лет

Сообщений: 2650
Благодарностей: 865
Полезность: 879

Меценат Меценат

Matrix.AZ, задай вопрос! а не ищи его там
извиняться надо за то, что ты не бельмекаешь по английски а просишь их помочь, тем самым заставляя пробовать воткнуть в твою ахинею из переводчика...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Matrix.AZ
сообщение 5.1.2009, 14:18
Сообщение #24


Стаж: 19 лет

Сообщений: 124
Благодарностей: 7
Полезность: 52

я уже там написал ) , только пока не закрывай тему)
Пишем кто что знает про это!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
holoc
сообщение 5.1.2009, 15:25
Сообщение #25
Стаж: 19 лет

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

Плагин hns.sma
кусок кода отвечающий за смену команд
Код
SwapTeams()
{
    for(new i = 1; i <= gMaxPlayers; i++)
    {
        switch(get_user_team(i))
        {
            case 1: cs_set_user_team(i, 2)
            case 2: cs_set_user_team(i, 1)
        }
    }
}
Нужно поставить задержку в 0.1 сек что ли
Код
SwapTeams()
{
    for(new i = 1; i <= gMaxPlayers; i++)
    {
        //тут должна быть пауза 0.1 сек
        switch(get_user_team(i))
        {
            case 1: cs_set_user_team(i, 2)
            case 2: cs_set_user_team(i, 1)
        }
    }
}
Я не знаю, есть ли такая команда. Не встречал. Банального sleep или wait.

Можно сделать например так:
Код
SwapTeams()
{
    for(new i = 1; i <= gMaxPlayers; i++)
    {
        set_task(i/10,"Swap_Teams",i)
    }
}

public Swap_Teams(iii)
{
    switch(get_user_team(iii))
    {
        case 1: cs_set_user_team(iii, 2)
        case 2: cs_set_user_team(iii, 1)
    }
}

Но тут 2 момента:
1) Я понятия не имею будет ли работать такая конструкция, никогда не пробовал
set_task(i/10,"Swap_Teams",i);
2) Для того чтобы все игроки поменяли команду, нужно 3.2 секунды для 32 игроков, может не хватить времени до начала нового раунда.

Вот готовый плагин, можешь пробовать, это версия 3.3 переделанная, как написано выше.
Прикрепленный файл  hns.rar ( 26,72 килобайт ) Кол-во скачиваний: 13
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 10 раз
   + Цитировать сообщение
Статус пользователя Matrix.AZ
сообщение 5.1.2009, 18:07
Сообщение #26


Стаж: 19 лет

Сообщений: 124
Благодарностей: 7
Полезность: 52

Я вот примерно че такое читал про задержку, а так у ТЕров и кс хватит времени , так как СТ 10 секунд на респе ждут а у Т без разницы , а так спасибо сейчас попробую и напишу , если все пойдет с меня плюс +
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Matrix.AZ
сообщение 5.1.2009, 21:26
Сообщение #27


Стаж: 19 лет

Сообщений: 124
Благодарностей: 7
Полезность: 52

Не работает все равно , я постаивл и все равно такая ошибка выходит! ((
а Может как ниубдь подругому!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
holoc
сообщение 6.1.2009, 9:17
Сообщение #28
Стаж: 19 лет

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

Значит не в этом проблема :)
_____
edited


Вот в чем дело.
Код
...
register_event("ResetHUD", "eventResetHud", "be");
...

public eventResetHud(id)
{
...
    eventPlayerSpawn(id);
}
...
public eventPlayerSpawn(id)
    set_task(0.1, "GiveItems", id);
...
public GiveItems(id)
{
    тут здоровый кусок кода, отвечающий за выдачу/отбирание оружия
    раздача проходит одновременно у всех игроков
    то есть большое количество информации единовременно
}

Попробуй вот так
Прикрепленный файл  hns_new.rar ( 26,55 килобайт ) Кол-во скачиваний: 13


Отредактировал: holoc, - 6.1.2009, 9:40
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 10 раз
   + Цитировать сообщение
Статус пользователя Matrix.AZ
сообщение 7.1.2009, 10:46
Сообщение #29


Стаж: 19 лет

Сообщений: 124
Благодарностей: 7
Полезность: 52

поставлю посмотрю ) если че скажу поможет или нет)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Matrix.AZ
сообщение 8.1.2009, 6:36
Сообщение #30


Стаж: 19 лет

Сообщений: 124
Благодарностей: 7
Полезность: 52

Не помогло опять (( а что ниубдь еще ожно сделать, надо намодельки игрково что то делат ь. мне какжется, так как в моде оруия такого количества нету чтобы от оружий сервер падал
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Matrix.AZ
сообщение 10.1.2009, 13:08
Сообщение #31


Стаж: 19 лет

Сообщений: 124
Благодарностей: 7
Полезность: 52

Ест скриптеры ? помогите плз
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Matrix.AZ
сообщение 13.1.2009, 23:43
Сообщение #32


Стаж: 19 лет

Сообщений: 124
Благодарностей: 7
Полезность: 52

Ну че нкито не знает?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
holoc
сообщение 14.1.2009, 22:05
Сообщение #33
Стаж: 19 лет

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

Я был занят неделю, сейчас есть свободное время, посмотрю еще что можно сделать, мне самому интересно. Чтобы ошибку искать, буду тестировать на ботах. Напиши подробнее какими плагинами ты увеличил количество респов. А лучше скинь исходник плагина и настройки к нему(я так понимаю это Spawn Creator v1.2). С респами мне заморачиваться лень.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 10 раз
   + Цитировать сообщение
Статус пользователя Matrix.AZ
сообщение 15.1.2009, 7:06
Сообщение #34


Стаж: 19 лет

Сообщений: 124
Благодарностей: 7
Полезность: 52

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

ТАм короче когда СТ убивает Т там сразу модельки меняються то есть СТ - > Т а Т -> СТ и вот наверно мод не успевает или не может поменять все сразу и сервер падает , я где то читал на английском и там чел просто напсиал что надо задержку сделать на 0.4-0.5 , то есть половина меняеться сразу а половиная через 0.4 - 0.5 ( это вреям дял нас не так чувствительна)

Вот ИСХОДНИК hns.sma
Код
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#tryinclude <fakemeta_util>

#if !defined _fakemeta_util_included
        #assert Fakemeta Utilities function library required! Read the below instructions:   \
                1. Download it at forums.alliedmods.net/showthread.php?t=28284   \
                2. Put it into amxmodx/scripting/include/ folder   \
                3. Compile this plugin locally, details: wiki.amxmodx.org/index.php/Compiling_Plugins_%28AMX_Mod_X%29   \
                4. Install compiled plugin, details: wiki.amxmodx.org/index.php/Configuring_AMX_Mod_X#Installing
#endif
#define PLUGIN     "Hide N Seek"
#define VERSION "3.3"
#define AUTHOR     "Jon"
#define HUDCHANNEL 1

#define BIT_BUYZONE (1<<0)
#define CS_GET_USER_MAPZONES(%1) get_pdata_int(%1, OFFSET, OFFSET_LINUX_DIFF)
#define CS_SET_USER_MAPZONES(%1,%2) set_pdata_int(%1, OFFSET, %2, OFFSET_LINUX_DIFF)
#define OFFSET_32BIT 235
#define OFFSET_64BIT 268
#define OFFSET_LINUX_DIFF 5
//#define PROCESSOR_TYPE 0
#if !defined PROCESSOR_TYPE // is automatic 32/64bit processor detection?
    #if cellbits == 32 // is the size of a cell 32 bits?
        // then considering processor as 32 bit
        #define OFFSET OFFSET_32BIT
    #else // in other case considering the size of a cell as 64 bits
        // and then considering processor as 64 bit
        #define OFFSET OFFSET_64BIT
    #endif
#else // processor type is specified by PROCESSOR_TYPE define
    #if PROCESSOR_TYPE == 0 // 32bit processor defined
        #define OFFSET OFFSET_32BIT
    #else // considering that defined 64bit processor
        #define OFFSET OFFSET_64BIT
    #endif
#endif

new gCvarEnabled;
new gCvarGameName;
new gCvarSkyName;
new gCvarLights;
new gCvarVoice;
new gCvarTimer;
new gCvarSwitch;
new gCvarSlash;
new gCvarFootsteps;
new gCvarNoFlash;
new gCvarRemoveWeapons;
new gCvarRemoveObjects;
new gCvarBlockKill;
new gCvarBlockChooseTeam;
new gCvarHudColor;
new gCvarHudPosition;
new gCvarFadeColor;
new gCvarTextColor;
new gCvarHidersKnife;
new gCvarHidersArmor;
new gCvarHidersFlashbangs;
new gCvarHidersSmokegrenade;
new gCvarHidersHegrenade;
new gCvarSeekersArmor;
new gCvarSeekersFlashbangs;
new gCvarSeekersSmokegrenade;
new gCvarSeekersHegrenade;
new gCvarMsgTimer;
new gCvarMsgTimesUp;
new gCvarMsgHiders;
new gCvarMsgSeekers;
new gCvarMsgSwitch;

new gTimer;
new gHostage;
new gBuyzone;
new gFakeEnt;
new gHudSyncObj;
new gRound;
new gMaxPlayers;
new gSwitch;
new gSlash;

new gMsgSendAudio;
new gMsgHudTextArgs;
new gMsgTextMsg;
new gMsgStatusIcon;
new gMsgScreenFade;
new gMsgTeamInfo;
new gMsgSayText;

enum {TA_T, TA_CT, TA_SIZE}

new const gIconC4[] = "c4";
new const gWeaponC4[]     = "weapon_c4";
new const gSpawnedWithBomb[] = "triggered ^"Spawned_With_The_Bomb^"";
new const gHaveBomb[] = "#Hint_you_have_the_bomb";
new const gHostagesRescued[] = "#Hostages_Not_Rescued";
new const gTeamNames[TA_SIZE][] = {"TERRORIST", "CT"};
new const gTeamNames2[][] = {"", "TERRORIST", "CT", "SPECTATOR"}
new const gCounterSounds[][] = {"zero","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen"}
new const gEntityClassNames[][] = {"func_breakable", "func_door_rotating", "func_door", "func_vip_safetyzone", "func_escapezone", "hostage_entity", "monster_scientist", "func_bomb_target", "info_bomb_target"}

new Float:gBuyzoneMin[3] = {-8192.0, -8192.0, -8192.0}
new Float:gBuyzoneMax[3] = {-8191.0, -8191.0, -8191.0}
new Float:gHostageOrigin[3] = {0.0, 0.0, -55000.0}
new Float:gHostageMin[3] = {-1.0, -1.0, -1.0}
new Float:gHostageMax[3] = {1.0, 1.0, 1.0}

new bool:gIsConnected[33];
new bool:gRestartAttempt[33];
new bool:gAllowSlash;

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_cvar("hns_version", VERSION, FCVAR_SERVER)
    
    gCvarEnabled = register_cvar("hns_enabled", "1")
    
    if(!get_pcvar_num(gCvarEnabled))
        return;
    
    new GameNameCvarValue[96];
    format(GameNameCvarValue, 95, "Hide N Seek %s", VERSION)
    
    gCvarGameName = register_cvar("hns_gamename", GameNameCvarValue)
    gCvarSkyName = register_cvar("hns_skyname", "backalley")
    gCvarLights = register_cvar("hns_lights", "m")
    gCvarVoice = register_cvar("hns_voice", "vox")
    gCvarTimer = register_cvar("hns_timer", "10")
    gCvarSwitch = register_cvar("hns_switch", "5")
    gCvarSlash = register_cvar("hns_slash", "3")
    gCvarNoFlash = register_cvar("hns_noflash", "1")
    gCvarFootsteps = register_cvar("hns_footsteps", "1")
    gCvarRemoveWeapons = register_cvar("hns_removeweapons", "1")
    gCvarRemoveObjects = register_cvar("hns_removeobjects", "1")
    gCvarBlockKill = register_cvar("hns_block_kill", "1")
    gCvarBlockChooseTeam = register_cvar("hns_block_chooseteam", "1")
    gCvarHudColor = register_cvar("hns_hudcolor", "0 100 255")
    gCvarHudPosition = register_cvar("hns_hudposition", "-1.0 0.85")
    gCvarFadeColor = register_cvar("hns_fadecolor", "100 120 150 225")
    gCvarTextColor = register_cvar("hns_textcolor", "red")
    gCvarHidersKnife = register_cvar("hns_hiders_knife", "0")
    gCvarHidersArmor = register_cvar("hns_hiders_armor", "100")
    gCvarHidersFlashbangs = register_cvar("hns_hiders_flashbangs", "2")
    gCvarHidersSmokegrenade = register_cvar("hns_hiders_smokegrenade", "1")
    gCvarHidersHegrenade = register_cvar("hns_hiders_hegrenade", "0")
    gCvarSeekersArmor = register_cvar("hns_seekers_armor", "0")
    gCvarSeekersFlashbangs = register_cvar("hns_seekers_flashbangs", "0")
    gCvarSeekersSmokegrenade = register_cvar("hns_seekers_smokegrenade", "0")
    gCvarSeekersHegrenade = register_cvar("hns_seekers_hegrenade", "0")
    gCvarMsgTimer = register_cvar("hns_msg_timer", "seconds to hide..")
    gCvarMsgTimesUp = register_cvar("hns_msg_timesup", "Ready or not, time's up!")
    gCvarMsgHiders = register_cvar("hns_msg_hiders", "Hiders win!")
    gCvarMsgSeekers = register_cvar("hns_msg_seekers", "Seekers win!")
    gCvarMsgSwitch = register_cvar("hns_msg_switch", "rounds have passed, switching teams..")
    
    gMaxPlayers = get_maxplayers();
    gSwitch = get_pcvar_num(gCvarSwitch)
    gSlash = get_pcvar_num(gCvarSlash)
    gMsgSendAudio = get_user_msgid("SendAudio")
    gMsgHudTextArgs = get_user_msgid("HudTextArgs")
    gMsgTextMsg = get_user_msgid("TextMsg")
    gMsgStatusIcon = get_user_msgid("StatusIcon")
    gMsgScreenFade = get_user_msgid("ScreenFade")
    gMsgTeamInfo = get_user_msgid("TeamInfo")
    gMsgSayText = get_user_msgid("SayText")
    gFakeEnt = fm_create_entity("info_target")
    
    register_logevent("eventStartRound",2,"0=World triggered", "1=Round_Start");
    register_logevent("eventEndRound"  ,2,"0=World triggered", "1=Round_Draw", "1=Round_End");
    register_event("HLTV", "eventNewRound", "a", "1=0", "2=0");
    register_event("TextMsg", "eventRestartAttempt", "a", "2=#Game_will_restart_in");
    register_event("ResetHUD", "eventResetHud", "be");
    register_event("DeathMsg", "eventDeathMsg", "a")
    
    register_message(gMsgHudTextArgs, "msgHudTextArgs");
    register_message(gMsgStatusIcon, "msgStatusIcon");
    register_message(gMsgSendAudio,"msgSendAudio");
    register_message(gMsgTextMsg,"msgTextMsg");
    register_message(gMsgScreenFade, "msgScreenFade");
    
    register_forward(FM_PlayerPreThink,"fwdPlayerPreThink");
    register_forward(FM_PlayerPostThink, "fwdPlayerPostThink")
    register_forward(FM_CmdStart, "fwdCmdStart");
    register_forward(FM_Think,"fwdThink");
    register_forward(FM_Touch, "fwdTouch");
    register_forward(FM_AlertMessage, "fwdAlertMessage");
    register_forward(FM_CreateNamedEntity, "fwdCreateNamedEntity");
    register_forward(FM_GetGameDescription,"fwdGetGameDescription");
    register_forward(FM_ClientKill, "fwdClientKill");
    
    register_clcmd("chooseteam", "clcmd_chooseteam")
    register_clcmd("fullupdate", "clcmd_fullupdate")
    register_clcmd("buy", "clcmd_buy");
    register_clcmd("buyequip", "clcmd_buy");
    
    set_task(1.0, "SetSky")
    set_task(1.0, "SetLights")
}

public plugin_cfg()
{
    new file[64];
    
    get_configsdir(file, 63)
    format(file, 63, "%s/hns.cfg", file)
    
    if(file_exists(file))
        server_cmd("exec %s", file), server_exec()
}

public plugin_precache()
{
    gHudSyncObj = CreateHudSyncObj();
    
    gHostage = fm_create_entity("hostage_entity");
    engfunc(EngFunc_SetOrigin, gHostage, gHostageOrigin);
    engfunc(EngFunc_SetSize, gHostage, gHostageMin, gHostageMax);
    dllfunc(DLLFunc_Spawn, gHostage);
    
    gBuyzone =  fm_create_entity("func_buyzone");
    engfunc(EngFunc_SetSize, gBuyzone, gBuyzoneMin, gBuyzoneMax)
    dllfunc(DLLFunc_Spawn, gBuyzone)
}    

public SetSky()
{
    set_cvar_num("sv_skycolor_r", 0)
    set_cvar_num("sv_skycolor_g", 0)
    set_cvar_num("sv_skycolor_b", 0)
    
    new SkyName[32]
    get_pcvar_string(gCvarSkyName, SkyName, 31)
    
    if(strlen(SkyName) > 0)
        server_cmd("sv_skyname %s", SkyName)
}

public SetLights()
{
    new Lights[32]
    get_pcvar_string(gCvarLights, Lights, 31)
    
    if(strlen(Lights) > 0)
        engfunc(EngFunc_LightStyle, 0, Lights)
        
    set_task(10.0, "SetLights")
}

public eventStartRound()
{
    if(gRound == 0 || !PlayersInBothTeams())
        return PLUGIN_CONTINUE;
        
    gTimer = get_pcvar_num(gCvarTimer)
    set_pev(gFakeEnt, pev_nextthink, get_gametime() + 0.09);
        
    if(gSlash <= 0)
        gAllowSlash = true;
        
    return PLUGIN_CONTINUE;
}


public eventEndRound()
{
    if(gRound == 0)
        return PLUGIN_CONTINUE;
        
    new WinMsg[192], HudR, HudG, HudB, Float:HudX, Float:HudY;
        
    switch(GetWinningTeam())
    {
        case 1:
        {
            get_pcvar_string(gCvarMsgHiders, WinMsg, 191)
            GetHudColor(HudR, HudG, HudB)
            GetHudPosition(HudX, HudY)
            
            set_hudmessage(HudR, HudG, HudB, HudX, HudY, 0, 0.0, 5.0, 0.0, 0.0, HUDCHANNEL);
            ShowSyncHudMsg(0, gHudSyncObj, "%s", WinMsg)
            
            gSlash--;
            gSwitch--;
            client_cmd(0, "spk radio/terwin.wav")
        }
        
        case 2:
        {
            get_pcvar_string(gCvarMsgSeekers, WinMsg, 191)
            GetHudColor(HudR, HudG, HudB)
            GetHudPosition(HudX, HudY)
            
            set_hudmessage(HudR, HudG, HudB, HudX, HudY, 0, 0.0, 5.0, 0.0, 0.0, HUDCHANNEL);
            ShowSyncHudMsg(0, gHudSyncObj, "%s", WinMsg)
            
            SwapTeams();
            gAllowSlash = false;
            gSwitch = get_pcvar_num(gCvarSwitch)
            gSlash = get_pcvar_num(gCvarSlash)
            client_cmd(0, "spk radio/ctwin.wav")
        }
        
        case 3:
        {
            get_pcvar_string(gCvarMsgSwitch, WinMsg, 191)
            GetHudColor(HudR, HudG, HudB)
            GetHudPosition(HudX, HudY)
            
            set_hudmessage(HudR, HudG, HudB, HudX, HudY, 0, 0.0, 5.0, 0.0, 0.0, HUDCHANNEL);
            ShowSyncHudMsg(0, gHudSyncObj, "%d %s", get_pcvar_num(gCvarSwitch), WinMsg)
                
            SwapTeams();
            gAllowSlash = false;
            gSwitch = get_pcvar_num(gCvarSwitch)
            gSlash = get_pcvar_num(gCvarSlash)
            client_cmd(0, "spk radio/terwin.wav")
        }
    }
    
    return PLUGIN_CONTINUE;
}

public eventNewRound()
{    
    if(get_pcvar_num(gCvarRemoveObjects) && gRound == 0)
        RemoveEntities();

    gRound++
    return PLUGIN_CONTINUE;
}

public eventRestartAttempt()
{
    new players[32], num;
    get_players(players, num, "a");
    
    for (new i; i < num; ++i)
        gRestartAttempt[players[i]] = true;
}

public eventResetHud(id)
{
    if(gRestartAttempt[id])
    {
        gRestartAttempt[id] = false;
        return;
    }
    
    eventPlayerSpawn(id);
}

public eventPlayerSpawn(id)
    set_task(0.1, "GiveItems", id);

public eventDeathMsg()
{
    new id = read_data(2)
    
    if(gTimer > 0 && get_user_team(id) == 2)
        set_pev(id, pev_flags, pev(id, pev_flags) & ~FL_FROZEN);
}

public GiveItems(id)
{
    if(!is_user_connected(id))
        return;
        
    cs_reset_user_model(id)
    fm_strip_user_weapons(id)
    
    switch(get_user_team(id))
    {
        case 1:
        {
            if(get_pcvar_num(gCvarHidersKnife))
                fm_give_item(id, "weapon_knife")
                
            if(get_pcvar_num(gCvarHidersFlashbangs))
            {
                fm_give_item(id, "weapon_flashbang")
                cs_set_user_bpammo(id, CSW_FLASHBANG, get_pcvar_num(gCvarHidersFlashbangs))
            }
            
            if(get_pcvar_num(gCvarHidersSmokegrenade))
                fm_give_item(id, "weapon_smokegrenade")
                
            if(get_pcvar_num(gCvarHidersHegrenade))
                fm_give_item(id, "weapon_hegrenade")
                
            if(get_pcvar_num(gCvarHidersArmor))
                cs_set_user_armor(id, get_pcvar_num(gCvarHidersArmor), CS_ARMOR_KEVLAR)
        }
        
        case 2:
        {
            fm_give_item(id, "weapon_knife")
                
            if(get_pcvar_num(gCvarSeekersFlashbangs))
            {
                fm_give_item(id, "weapon_flashbang")
                cs_set_user_bpammo(id, CSW_FLASHBANG, get_pcvar_num(gCvarSeekersFlashbangs))
            }
            
            if(get_pcvar_num(gCvarSeekersSmokegrenade))
                fm_give_item(id, "weapon_smokegrenade")
                
            if(get_pcvar_num(gCvarSeekersHegrenade))
                fm_give_item(id, "weapon_hegrenade")
                
            if(get_pcvar_num(gCvarSeekersArmor))
                cs_set_user_armor(id, get_pcvar_num(gCvarSeekersArmor), CS_ARMOR_KEVLAR)
        }
    }
}

public msgSendAudio(msg_id, msg_dest, msg_entity)
{
    static message[10];
    get_msg_arg_string( 2, message, sizeof message - 1 );
        
    switch(message[7])
    {
        case 'c', 't', 'r': return PLUGIN_HANDLED;
    }
    
    return PLUGIN_CONTINUE;
}

public msgTextMsg(msg_id, msg_dest, msg_entity)
{
    static message[3];
    get_msg_arg_string( 2, message, sizeof message - 1 );
        
    switch(message[1])
    {
        case 'C', 'T', 'R': return PLUGIN_HANDLED;
    }
        
    static buffer[32];
    get_msg_arg_string(2, buffer, sizeof buffer - 1);
    
    if(equali(buffer, gHostagesRescued))
        return 1;
        
    return PLUGIN_CONTINUE;
}

public msgHudTextArgs()
{
    static arg[24];
    get_msg_arg_string(1, arg, 23);
    
    if (equal(arg, gHaveBomb))
        return PLUGIN_HANDLED;
    
    return PLUGIN_CONTINUE;
}

public msgStatusIcon()
{
    if (get_msg_arg_int(1) == 0)
        return PLUGIN_CONTINUE;
    
    static arg[4];
    new icon[8];
    get_msg_arg_string(2, icon, 7)
    get_msg_arg_string(2, arg, 3);
    
    if (equal(arg, gIconC4) || equal(icon, "buyzone"))
        return PLUGIN_HANDLED;
    
    return PLUGIN_CONTINUE;
}

public msgScreenFade(msgid, dest, id)
{
    if(is_user_alive(id) && get_pcvar_num(gCvarNoFlash) == get_user_team(id))
    {
        static data[4];
        data[0] = get_msg_arg_int(4);
        data[1] = get_msg_arg_int(5)
        data[2] = get_msg_arg_int(6);
        data[3] = get_msg_arg_int(7)
            
        if(data[0] == 255 && data[1] == 255 && data[2] == 255 && data[3] > 199)
            return PLUGIN_HANDLED;
    }
        
    return PLUGIN_CONTINUE
}

public fwdPlayerPreThink(id)
{
    if(!is_user_alive(id))
        return FMRES_IGNORED;
        
    if(get_pcvar_num(gCvarFootsteps) == get_user_team(id))
        set_pev(id, pev_flTimeStepSound, 999);
    
    return FMRES_IGNORED;
}

public fwdPlayerPostThink(id)
{
    if(is_user_alive(id))
        CS_SET_USER_MAPZONES(id, CS_GET_USER_MAPZONES(id) & ~BIT_BUYZONE)
}


public fwdCmdStart(id, handle)
{
    if(!is_user_alive(id))
        return FMRES_IGNORED;
        
    static temp, weapon;
    weapon = get_user_weapon(id, temp, temp);
    
    if(weapon == CSW_KNIFE && get_user_team(id) == 1)
    {
        static button
        button = get_uc(handle, UC_Buttons);
                
        if((button & IN_ATTACK))
            button &= ~IN_ATTACK
                
        if((button & IN_ATTACK2))
            button &= ~IN_ATTACK2
                
        set_uc(handle, UC_Buttons, button);
        
        return FMRES_SUPERCEDE;
    }
            
    else if(weapon == CSW_KNIFE && get_user_team(id) == 2)
    {
        static button
        button = get_uc(handle, UC_Buttons);
                    
        if(button & IN_ATTACK && !gAllowSlash)
            button = (button & ~IN_ATTACK) | IN_ATTACK2;
        
        set_uc(handle, UC_Buttons, button);
        
        return FMRES_SUPERCEDE;
    }
    
    return FMRES_IGNORED;
}

public fwdTouch(ptr, ptd)
{
    if(!get_pcvar_num(gCvarRemoveWeapons) || !pev_valid(ptr) || !is_user_connected(ptd))
        return FMRES_IGNORED;
        
    new classname[32];
    pev(ptr, pev_classname, classname, 31);
            
    if(equali(classname,"weaponbox"))
    {        
        new ents = engfunc(EngFunc_NumberOfEntities);
                
        for(new inum=0; inum <= ents; inum++)
        {
            if(!pev_valid(inum))
                continue;
                    
            new class[32];
            pev(inum, pev_classname, class,31)
                    
            if(containi(class, "weapon_") == -1)
                continue;
                    
            new owner = pev(inum, pev_owner);
                
            if(ptr == owner)
                engfunc(EngFunc_RemoveEntity,inum);
        }
        
        engfunc(EngFunc_RemoveEntity, ptr);
        
    }
    
    else if(containi(classname,"weapon_") != -1)
        engfunc(EngFunc_RemoveEntity, ptr);
        
    return FMRES_IGNORED;
}


public fwdCreateNamedEntity(iClassname)
{
    static szClassname[sizeof gWeaponC4 + 1];
    
    engfunc(EngFunc_SzFromIndex, iClassname, szClassname, sizeof gWeaponC4);
    
    if (equal(szClassname, gWeaponC4))
        return FMRES_SUPERCEDE;
        
    return FMRES_IGNORED;
}

public fwdAlertMessage(at_type, message[])
{
    if(at_type != _:at_logged)
        return FMRES_IGNORED;
    
    if(contain(message, gSpawnedWithBomb) != -1)
    {
        static players[32], num;
        get_players(players, num, "ae", gTeamNames[TA_T]);
        
        for (new i; i < num; ++i)
            set_pev(players[i], pev_body, 0);
            
        return FMRES_SUPERCEDE;
    }
    
    return FMRES_IGNORED;
}

public fwdGetGameDescription()
{
    new GameName[32]
    get_pcvar_string(gCvarGameName, GameName, 31);
    forward_return(FMV_STRING, GameName)
    
    return FMRES_SUPERCEDE;
}

public fwdClientKill(id)
{
    if(get_pcvar_num(gCvarBlockKill))
        return FMRES_SUPERCEDE;
    
    return FMRES_IGNORED;
}
    
public fwdThink(ent)
{
    if(!pev_valid(ent))
        return FMRES_IGNORED;
    
    if(ent == gFakeEnt)
        FakeFrame(ent);
    
    return FMRES_IGNORED;
}

public client_connect(id)
    gIsConnected[id] = true;
    
public client_disconnect(id)
    gIsConnected[id] = false;

public clcmd_chooseteam(id)
{
    if(get_pcvar_num(gCvarBlockChooseTeam))
        return PLUGIN_HANDLED;
        
    return PLUGIN_CONTINUE;
}

public clcmd_buy(id)
    return PLUGIN_HANDLED;
    
public clcmd_fullupdate(id)
    return PLUGIN_HANDLED_MAIN;
    
GetWinningTeam()
{
    new WinId;
    
    for(new i = 1; i <= gMaxPlayers; i++)
    {
        if(is_user_alive(i) && get_user_team(i) == 1)
        {
            WinId = 1;
            
            if(get_pcvar_num(gCvarSwitch) && gSwitch <= 0)
                WinId = 3
            
            return WinId;
        }
        
        else if(is_user_alive(i) && get_user_team(i) == 2)
            WinId = 2;
    }
    
    return WinId;
}

PlayersInBothTeams()
{
    new Count;
    
    for(new i = 1; i <= gMaxPlayers; i++)
    {
        if(get_user_team(i) == 1)
            Count = 1
            
        if(get_user_team(i) == 2)
            Count = 2
            
        if(Count == 2)
            return 1;
    }
    
    return 0;
}

GetHudPosition(&Float:x, &Float:y)
{
    new Position[19], PositionX[6], PositionY[6]
    
    get_pcvar_string(gCvarHudPosition, Position, 18)
    parse(Position, PositionX, 6, PositionY, 6)
    
    x = str_to_float(PositionX)
    y = str_to_float(PositionY)
}
    
GetHudColor(&r, &g, &b)
{
    new Color[16], Red[4], Green[4], Blue[4]
    get_pcvar_string(gCvarHudColor, Color, 15)    
    
    parse(Color, Red, 3, Green, 3, Blue, 3)
    r = str_to_num(Red)
    g = str_to_num(Green)
    b = str_to_num(Blue)
}

GetFadeColor(&r, &g, &b, &a)
{
    new Color[16], Red[4], Green[4], Blue[4], Alpha[4];
    get_pcvar_string(gCvarFadeColor, Color, 15)
    
    parse(Color, Red, 3, Green, 3, Blue, 3, Alpha, 3)
    r = str_to_num(Red)
    g = str_to_num(Green)
    b = str_to_num(Blue)
    a = str_to_num(Alpha)
}
    
SwapTeams()
{
    for(new i = 1; i <= gMaxPlayers; i++)
    {
        switch(get_user_team(i))
        {
            case 1: cs_set_user_team(i, 2)
            case 2: cs_set_user_team(i, 1)
        }
    }
}

FakeFrame(entid)
{
    if(gTimer > 0)
    {
        new TimerMsg[192], HudR, HudG, HudB, Float:HudX, Float:HudY;
        get_pcvar_string(gCvarMsgTimer, TimerMsg, 31)
        GetHudColor(HudR, HudG, HudB)
        GetHudPosition(HudX, HudY)
            
        set_hudmessage(HudR, HudG, HudB, HudX, HudY, 0, 0.0, 1.0, 0.0, 0.0, HUDCHANNEL);
        ShowSyncHudMsg(0, gHudSyncObj, "%i %s", gTimer, TimerMsg);
        
        if(get_pcvar_num(gCvarTimer) <= 15)
        {
            switch(GetVoiceType())
            {
                case 1: client_cmd(0, "spk vox/%s.wav", gCounterSounds[gTimer])
                case 2: client_cmd(0, "spk fvox/%s", gCounterSounds[gTimer]);
            }
        }
            
        for(new i = 1; i <= gMaxPlayers; i++)
        {
            if(get_user_team(i) == 2 && is_user_alive(i))
            {
                FadeScreen(i, 1)
                set_pev(i, pev_flags, pev(i, pev_flags) | FL_FROZEN)
                set_pev(i, pev_velocity, Float:{0.0,0.0,0.0})
            }
        }
    }
        
    else if(gTimer == 0)
    {
        if(get_pcvar_num(gCvarTimer) > 0)
        {
            new TimesUpMsg[192], HudR, HudG, HudB, Float:HudX, Float:HudY;
            get_pcvar_string(gCvarMsgTimesUp, TimesUpMsg, 31)
            GetHudColor(HudR, HudG, HudB)
            GetHudPosition(HudX, HudY)
                
            set_hudmessage(HudR, HudG, HudB, HudX, HudY, 0, 0.0, 2.0, 0.0, 0.0, HUDCHANNEL);
            ShowSyncHudMsg(0, gHudSyncObj, "%s", TimesUpMsg);
                
            for(new i = 1; i <= gMaxPlayers; i++)
            {
                if(get_user_team(i) == 2 && is_user_alive(i))
                {
                    FadeScreen(i, 0)
                    set_pev(i, pev_flags, pev(i, pev_flags) & ~FL_FROZEN);
                }
            }
        }
        
        if(gSlash == 0)
            PrintColor(0, "[HNS] Seekers have lost %d rounds in a row, they can now use slash!", get_pcvar_num(gCvarSlash))
    }
    
    gTimer--;
    set_pev(entid, pev_nextthink, get_gametime() + 1.0);
    return PLUGIN_HANDLED;
}
            
GetVoiceType()
{
    new Type[5]
    get_pcvar_string(gCvarVoice, Type, 4)
    
    if(equal(Type, "vox"))
        return 1;
        
    else if(equal(Type, "fvox"))
        return 2;
        
    return 0;
}

FadeScreen(id, amount)
{
    new Red, Green, Blue, Alpha
    GetFadeColor(Red, Green, Blue, Alpha)
    
    message_begin(MSG_ONE, gMsgScreenFade, {0, 0, 0}, id);
    write_short(1 << amount * 15);
    write_short(1 << amount * 15);
    write_short(1 << 12);
    write_byte(Red);
    write_byte(Green);
    write_byte(Blue);
    write_byte(Alpha);
    message_end();
}

RemoveEntities()
{
    for(new i; i < sizeof gEntityClassNames; i++)
    {
        new ent;
        
        while((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", gEntityClassNames[i])) != 0)
        {
            if(!pev_valid(ent) || ent == gHostage)
                continue;
                
            else
                engfunc(EngFunc_RemoveEntity, ent);
        }
    }
}

PrintColor(id, const msg[], any:...)
{
    static message[256];
    new colortype[32];
    get_pcvar_string(gCvarTextColor, colortype, 31)
    
    if(equali(colortype, "yellow"))
        message[0] = 0x01;
        
    else if(equali(colortype, "green"))
        message[0] = 0x04;
        
    else
        message[0] = 0x03;

    vformat(message[1], 251, msg, 3);
    message[192] = '^0';

    new team, ColorChange, index, MSG_Type;
    
    if(!id)
    {
        index = FindPlayer();
        MSG_Type = MSG_ALL;
    
    }
    
    else
    {
        MSG_Type = MSG_ONE;
        index = id;
    }
    
    team = get_user_team(index);    
    ColorChange = ColorSelection(index, MSG_Type, colortype);

    ShowColorMessage(index, MSG_Type, message);
        
    if(ColorChange)
        TeamInfo(index, MSG_Type, gTeamNames2[team]);
}

ShowColorMessage(id, type, message[])
{
    message_begin(type, gMsgSayText, _, id);
    write_byte(id)        
    write_string(message);
    message_end();    
}

TeamInfo(id, type, team[])
{
    message_begin(type, gMsgTeamInfo, _, id);
    write_byte(id);
    write_string(team);
    message_end();

    return 1;
}

ColorSelection(index, type, const colortype[])
{
    if(equali(colortype, "red"))
        return TeamInfo(index, type, gTeamNames2[1]);
        
    if(equali(colortype, "blue"))
        return TeamInfo(index, type, gTeamNames2[2]);
        
    if(equali(colortype, "grey"))
        return TeamInfo(index, type, gTeamNames2[0]);
    
    return 0;
}

FindPlayer()
{
    new i = -1;

    while(i <= gMaxPlayers)
    {
        if(gIsConnected[++i])
            return i;
    }

    return -1;
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Matrix.AZ
сообщение 16.1.2009, 12:10
Сообщение #35


Стаж: 19 лет

Сообщений: 124
Благодарностей: 7
Полезность: 52

holoc жду помощи от тебя)
посмотри исходник может там че то надо поменять ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Matrix.AZ
сообщение 19.1.2009, 23:08
Сообщение #36


Стаж: 19 лет

Сообщений: 124
Благодарностей: 7
Полезность: 52

ПРОШУ СКРИПТЕРОВ НАПИСАТЬ В АСЬКУ - 100100501
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Matrix.AZ
сообщение 30.1.2009, 20:02
Сообщение #37


Стаж: 19 лет

Сообщений: 124
Благодарностей: 7
Полезность: 52

Кто нибудь знает как исправить эту ошибку
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя torz
сообщение 30.1.2009, 21:09
Сообщение #38
Стаж: 17 лет

Сообщений: 31
Благодарностей: 2
Полезность: 50

Цитата(Matrix.AZ @ 30.1.2009, 20:02) *
Кто нибудь знает как исправить эту ошибку

Присоединяйся к теме: https://c-s.net.ua/forum/index.php?showtopic=14295&st=0
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: