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

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

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

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

Изменить пару плагинов

, Instant Autoteambalance and Nice Live
Статус пользователя Chilly_Willy
сообщение 14.11.2012, 14:06
Сообщение #1


Стаж: 17 лет

Сообщений: 394
Благодарностей: 45
Полезность: 119

Всем привет! :) Помогите нубу :)

В первом, если возможно, надо убрать надпись по центру которая, когда делается баланс, auto-team balance next round вроде :)
Скрытый текст
Код
/*    Copyright © 2008, ConnorMcLeod

    Instant AutoTeamBalance is free software;
    you can redistribute it and/or modify it under the terms of the
    GNU General Public License as published by the Free Software Foundation.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Instant AutoTeamBalance; if not, write to the
    Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.
*/

#include <amxmodx>
#include <cstrike>

#define PLUGIN "Instant AutoTeamBalance"
#define AUTHOR "ConnorMcLeod"
#define VERSION "1.2.0"

#define BALANCE_IMMUNITY        ADMIN_RCON

#define MAX_PLAYERS    32

enum {
    aTerro,
    aCt
}

new bool:g_bImmuned[MAX_PLAYERS+1]

new Float:g_fJoinedTeam[MAX_PLAYERS+1] = {-1.0, ...}

new g_iMaxPlayers
new g_pcvarEnable, g_pcvarImmune, g_pCvarMessage

// true when connected and not a HLTV
new bool:g_bValid[MAX_PLAYERS+1]

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)

    g_pcvarEnable = register_cvar("iatb_active", "1")
    g_pcvarImmune = register_cvar("iatb_admins_immunity", "1")
    g_pCvarMessage = register_cvar("iatb_message", "Teams Auto Balanced")

    register_logevent("LogEvent_JoinTeam", 3, "1=joined team")

    register_event("TextMsg", "Auto_Team_Balance_Next_Round", "a", "1=4", "2&#Auto_Team")

    g_iMaxPlayers = get_maxplayers()
}

public LogEvent_JoinTeam()
{
    new loguser[80], name[32], id
    read_logargv(0, loguser, 79)
    parse_loguser(loguser, name, 31)
    id = get_user_index(name)

    g_fJoinedTeam[id] = get_gametime()
}

public client_authorized(id)
{
    g_bImmuned[id] = bool:(get_user_flags(id) & BALANCE_IMMUNITY)
}

public client_putinserver(id)
{
    g_bValid[id] = bool:!is_user_hltv(id)
}

public client_disconnect(id)
{
    g_bValid[id] = false
}

public Auto_Team_Balance_Next_Round()
{
    if(!get_pcvar_num(g_pcvarEnable))
        return

    if( balance_teams()  )
    {
        new szMessage[128]
        get_pcvar_string(g_pCvarMessage, szMessage, charsmax(szMessage))
        client_print(0, print_center, szMessage)
    }
}

cs_set_user_team_custom(id, CsTeams:iTeam)
{
    switch(iTeam)
    {
        case CS_TEAM_T:
        {
            if( cs_get_user_defuse(id) )
            {
                cs_set_user_defuse(id, 0)
                // set body to 0 ?
            }
        }
        case CS_TEAM_CT:
        {
            if( user_has_weapon(id, CSW_C4) )
            {
                engclient_cmd(id, "drop", "weapon_c4")
            }
        }
    }

    cs_set_user_team(id, iTeam)

    return 1
}

balance_teams()
{
    new aTeams[2][MAX_PLAYERS], aNum[2], id

    for(id = 1; id <= g_iMaxPlayers; id++)
    {
        if(!g_bValid[id])
        {
            continue
        }

        switch( cs_get_user_team(id) )
        {
            case CS_TEAM_T:
            {
                aTeams[aTerro][aNum[aTerro]++] = id
            }
            case CS_TEAM_CT:
            {
                aTeams[aCt][aNum[aCt]++] = id
            }
            default:
            {
                continue
            }
        }
    }

    new iCheck
    new iTimes = aNum[aCt] - aNum[aTerro]

    if(iTimes > 0)
    {
        iCheck = aCt
    }
    else if(iTimes < 0)
    {
        iCheck = aTerro
    }
    else
    {
        return 0
    }

    iTimes = abs(iTimes/2)

    new bool:bTransfered[MAX_PLAYERS+1],
        bool:bAdminsImmune = bool:get_pcvar_num(g_pcvarImmune)

    new iLast, iCount
    while( iTimes > 0 )
    {
        iLast = 0
        for(new i=0; i <aNum[iCheck]; i++)
        {
            id = aTeams[iCheck][i]
            if( g_bImmuned[id] && bAdminsImmune )
            {
                continue
            }
            if(bTransfered[id])
            {
                continue
            }
            if(g_fJoinedTeam[id] > g_fJoinedTeam[iLast])
            {
                iLast = id
            }
        }

        if(!iLast)
        {
            return 0
        }

        cs_set_user_team_custom(iLast, iCheck ? CS_TEAM_T : CS_TEAM_CT)

        bTransfered[iLast] = true
        iCount++
        iTimes--
    }
    return 1
}

Во втором нужно, вместо hud сообщений, разминочный раунд и live live live, вывести обычным текстом по центру :)
Скрытый текст
Код
/*
Created Nice Live by sector for www.chatbox.do.am
Web Help - www.chatbox.do.am

All ingenious is simple - Nice. Made in Russia.
*/

#include <amxmodx>
#include <hamsandwich>

new nRound = 0
new nHud

public plugin_init()
{
    register_plugin("Nice Live", "1.0", "sector")
    
    RegisterHam(Ham_Spawn, "player", "nice_live_spawn", 1)
    
    register_event("SendAudio", "nice_live_round", "a", "2&%!MRAD_terwin", "2&%!MRAD_ctwin")
    
    nHud = CreateHudSyncObj()
}


public nice_live_round()
{
    nRound++
    
    if(nRound == 1)
    {
        set_task(3.0, "nice_live_restart", _, _, _, "a", 1)
        set_task(12.0, "nice_live_message")
    }
}

public nice_live_restart()
{
    server_cmd("sv_restart 1")
}

public nice_live_spawn(i)
{
    if(nRound == 0)
    {
        new nColor = random_num(0, 255)
        
        set_hudmessage(nColor, nColor, nColor, -1.0, 0.65, 2, 6.0, 10.0)
        ShowSyncHudMsg(i, nHud, "Разминочный раунд!")
    }
}

public nice_live_message()
{
    set_hudmessage(0, 255, 0, -1.0, 0.65, 2, 6.0, 10.0)
    ShowSyncHudMsg(0, nHud, "LIVE! LIVE! LIVE!")
}

Благодарю thank_you2.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
underwoker
сообщение 14.11.2012, 15:14
Сообщение #2
Стаж: 56 лет


Благодарностей:

1.
Скрытый текст
#include <amxmodx>
#include <cstrike>

#define PLUGIN "Instant AutoTeamBalance"
#define AUTHOR "ConnorMcLeod"
#define VERSION "1.2.0"

#define BALANCE_IMMUNITY ADMIN_RCON

#define MAX_PLAYERS 32

enum {
aTerro,
aCt
}

new bool:g_bImmuned[MAX_PLAYERS+1]

new Float:g_fJoinedTeam[MAX_PLAYERS+1] = {-1.0, ...}

new g_iMaxPlayers
new g_pcvarEnable, g_pcvarImmune

// true when connected and not a HLTV
new bool:g_bValid[MAX_PLAYERS+1]

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

g_pcvarEnable = register_cvar("iatb_active", "1")
g_pcvarImmune = register_cvar("iatb_admins_immunity", "1")

register_logevent("LogEvent_JoinTeam", 3, "1=joined team")

register_event("TextMsg", "Auto_Team_Balance_Next_Round", "a", "1=4", "2&#Auto_Team")

g_iMaxPlayers = get_maxplayers()
}

public LogEvent_JoinTeam()
{
new loguser[80], name[32], id
read_logargv(0, loguser, 79)
parse_loguser(loguser, name, 31)
id = get_user_index(name)

g_fJoinedTeam[id] = get_gametime()
}

public client_authorized(id)
{
g_bImmuned[id] = bool:(get_user_flags(id) & BALANCE_IMMUNITY)
}

public client_putinserver(id)
{
g_bValid[id] = bool:!is_user_hltv(id)
}

public client_disconnect(id)
{
g_bValid[id] = false
}

public Auto_Team_Balance_Next_Round()
{
if(!get_pcvar_num(g_pcvarEnable))
return

}

cs_set_user_team_custom(id, CsTeams:iTeam)
{
switch(iTeam)
{
case CS_TEAM_T:
{
if( cs_get_user_defuse(id) )
{
cs_set_user_defuse(id, 0)
// set body to 0 ?
}
}
case CS_TEAM_CT:
{
if( user_has_weapon(id, CSW_C4) )
{
engclient_cmd(id, "drop", "weapon_c4")
}
}
}

cs_set_user_team(id, iTeam)

return 1
}

balance_teams()
{
new aTeams[2][MAX_PLAYERS], aNum[2], id

for(id = 1; id <= g_iMaxPlayers; id++)
{
if(!g_bValid[id])
{
continue
}

switch( cs_get_user_team(id) )
{
case CS_TEAM_T:
{
aTeams[aTerro][aNum[aTerro]++] = id
}
case CS_TEAM_CT:
{
aTeams[aCt][aNum[aCt]++] = id
}
default:
{
continue
}
}
}

new iCheck
new iTimes = aNum[aCt] - aNum[aTerro]

if(iTimes > 0)
{
iCheck = aCt
}
else if(iTimes < 0)
{
iCheck = aTerro
}
else
{
return 0
}

iTimes = abs(iTimes/2)

new bool:bTransfered[MAX_PLAYERS+1],
bool:bAdminsImmune = bool:get_pcvar_num(g_pcvarImmune)

new iLast, iCount
while( iTimes > 0 )
{
iLast = 0
for(new i=0; i <aNum[iCheck]; i++)
{
id = aTeams[iCheck][i]
if( g_bImmuned[id] && bAdminsImmune )
{
continue
}
if(bTransfered[id])
{
continue
}
if(g_fJoinedTeam[id] > g_fJoinedTeam[iLast])
{
iLast = id
}
}

if(!iLast)
{
return 0
}

cs_set_user_team_custom(iLast, iCheck ? CS_TEAM_T : CS_TEAM_CT)

bTransfered[iLast] = true
iCount++
iTimes--
}
return 1
}
Перейти в начало страницы     
Поблагодарили 1 раз
   +
Статус пользователя iLLuSioN
сообщение 14.11.2012, 15:18
Сообщение #3
Иконка группы

Стаж: 19 лет

Сообщений: 6911
Благодарностей: 7990
Полезность: 1639

2
Код
#include <amxmodx>
#include <hamsandwich>

new nRound = 0

public plugin_init()
{
    register_plugin("Nice Live", "1.0", "sector")
    RegisterHam(Ham_Spawn, "player", "nice_live_spawn", 1)
    register_event("SendAudio", "nice_live_round", "a", "2&%!MRAD_terwin", "2&%!MRAD_ctwin")
}


public nice_live_round()
{
    nRound++
    
    if(nRound == 1)
    {
        set_task(3.0, "nice_live_restart", _, _, _, "a", 1)
        set_task(12.0, "nice_live_message")
    }
}

public nice_live_restart() server_cmd("sv_restart 1")

public nice_live_spawn(i) if(nRound == 0) client_print(i, print_center, "Разминочный раунд!")

public nice_live_message() client_print(0, print_center, "LIVE! LIVE! LIVE!")


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
underwoker
сообщение 14.11.2012, 15:27
Сообщение #4
Стаж: 56 лет


Благодарностей:

2.
Скрытый текст
/*
Created Nice Live by sector for www.chatbox.do.am
Web Help - www.chatbox.do.am

All ingenious is simple - Nice. Made in Russia.
*/

#include <amxmodx>
#include <hamsandwich>

new nRound = 0

public plugin_init()
{
register_plugin("Nice Live", "1.0", "sector")

RegisterHam(Ham_Spawn, "player", "nice_live_spawn", 1)

register_event("SendAudio", "nice_live_round", "a", "2&%!MRAD_terwin", "2&%!MRAD_ctwin")

}


public nice_live_round()
{
nRound++

if(nRound == 1)
{
set_task(3.0, "nice_live_restart", _, _, _, "a", 1)
set_task(12.0, "nice_live_message")
}
}

public nice_live_restart()
{
server_cmd("sv_restart 1")
}

public nice_live_spawn(id)
{
if(nRound == 0)
{
client_print(id, print_center, "Разминочный раунд!")
}
}

public nice_live_message(id)
{
client_print(id, print_center, "LIVE! LIVE! LIVE!")
}


Цитата(iLLuSioN @ 14.11.2012, 16:18) *
2
Код
/*
Created Nice Live by sector for www.chatbox.do.am
Web Help - www.chatbox.do.am

All ingenious is simple - Nice. Made in Russia.
*/

#include <amxmodx>
#include <hamsandwich>

new nRound = 0
new nHud

public plugin_init()
{
    register_plugin("Nice Live", "1.0", "sector")
    
    RegisterHam(Ham_Spawn, "player", "nice_live_spawn", 1)
    
    register_event("SendAudio", "nice_live_round", "a", "2&%!MRAD_terwin", "2&%!MRAD_ctwin")
    
    nHud = CreateHudSyncObj()
}


public nice_live_round()
{
    nRound++
    
    if(nRound == 1)
    {
        set_task(3.0, "nice_live_restart", _, _, _, "a", 1)
        set_task(12.0, "nice_live_message")
    }
}

public nice_live_restart()
{
    server_cmd("sv_restart 1")
}

public nice_live_spawn(i)
{
    if(nRound == 0)
    {
        
        client_print(i, print_center, "Разминочный раунд!")
    }
}

public nice_live_message()
{
    client_print(0, print_center, "LIVE! LIVE! LIVE!")
}

Хах. Не правильно чуток.
У тебя Hud текстов нет, а инфа о них есть
Код
nHud = CreateHudSyncObj()
new nHud

варнинги будут. Мой получше будет. :)

Отредактировал: underwoker, - 14.11.2012, 15:28
Перейти в начало страницы     
Поблагодарили 1 раз
   +
Статус пользователя AndrewZ
сообщение 14.11.2012, 15:29
Сообщение #5


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

Цитата(underwoker @ 14.11.2012, 15:27) *
2.
Скрытый текст
/*
Created Nice Live by sector for www.chatbox.do.am
Web Help - www.chatbox.do.am

All ingenious is simple - Nice. Made in Russia.
*/

#include <amxmodx>
#include <hamsandwich>

new nRound = 0

public plugin_init()
{
register_plugin("Nice Live", "1.0", "sector")

RegisterHam(Ham_Spawn, "player", "nice_live_spawn", 1)

register_event("SendAudio", "nice_live_round", "a", "2&%!MRAD_terwin", "2&%!MRAD_ctwin")

}


public nice_live_round()
{
nRound++

if(nRound == 1)
{
set_task(3.0, "nice_live_restart", _, _, _, "a", 1)
set_task(12.0, "nice_live_message")
}
}

public nice_live_restart()
{
server_cmd("sv_restart 1")
}

public nice_live_spawn(id)
{
if(nRound == 0)
{
client_print(id, print_center, "Разминочный раунд!")
}
}

public nice_live_message(id)
{
client_print(id, print_center, "LIVE! LIVE! LIVE!")
}



Хах. Не правильно чуток.
У тебя Hud текстов нет, а инфа о них есть
Код
nHud = CreateHudSyncObj()
new nHud

варнинги будут. Мой получше будет. :)

у тебя-то и неправильно. никакого id там нет.


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
underwoker
сообщение 14.11.2012, 15:36
Сообщение #6
Стаж: 56 лет


Благодарностей:

Цитата(AndrewZ @ 14.11.2012, 16:29) *
у тебя-то и неправильно. никакого id там нет.

Я i на id изменил чтобы понянее было. boast.gif .

Цитата(AndrewZ @ 14.11.2012, 16:29) *
у тебя-то и неправильно. никакого id там нет.

И если сомневаешься, лучше проверь, чем нести бред. Надеюсь ты не отвергнешь этот совет.
Перейти в начало страницы     
Поблагодарили 1 раз
   +
Статус пользователя Chilly_Willy
сообщение 14.11.2012, 15:44
Сообщение #7


Стаж: 17 лет

Сообщений: 394
Благодарностей: 45
Полезность: 119

Ну так у кого 2ой правильнее? :)
В 1ом warning есть

Отредактировал: Chilly_Willy, - 14.11.2012, 15:46
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя iLLuSioN
сообщение 14.11.2012, 15:47
Сообщение #8
Иконка группы

Стаж: 19 лет

Сообщений: 6911
Благодарностей: 7990
Полезность: 1639

2 fix
Код
#include <amxmodx>
#include <hamsandwich>

new nRound = 0

public plugin_init()
{
    register_plugin("Nice Live", "1.0", "sector")
    RegisterHam(Ham_Spawn, "player", "nice_live_spawn", 1)
    register_event("SendAudio", "nice_live_round", "a", "2&%!MRAD_terwin", "2&%!MRAD_ctwin")
}


public nice_live_round()
{
    nRound++
    
    if(nRound == 1)
    {
        set_task(3.0, "nice_live_restart", _, _, _, "a", 1)
        set_task(12.0, "nice_live_message")
    }
}

public nice_live_restart() server_cmd("sv_restart 1")

public nice_live_spawn(i) if(nRound == 0) client_print(i, print_center, "Разминочный раунд!")

public nice_live_message() client_print(0, print_center, "LIVE! LIVE! LIVE!")


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Chilly_Willy
сообщение 14.11.2012, 15:58
Сообщение #9


Стаж: 17 лет

Сообщений: 394
Благодарностей: 45
Полезность: 119

underwoker,
2ой работает четко! Блин, а надпись по центру Auto-team balance in next round же совсем не зависит от плагина instant autoteambalance? и как от нее можно избавиться :)) не подскажите? :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
underwoker
сообщение 14.11.2012, 16:04
Сообщение #10
Стаж: 56 лет


Благодарностей:

Не зависит, попробуй в server.cfg прописать
mp_autoteambalance 0
Перейти в начало страницы     
   + Цитировать сообщение
Статус пользователя Chilly_Willy
сообщение 14.11.2012, 16:07
Сообщение #11


Стаж: 17 лет

Сообщений: 394
Благодарностей: 45
Полезность: 119

Цитата(underwoker @ 14.11.2012, 21:04) *
Не зависит, попробуй в server.cfg прописать
mp_autoteambalance 0

Тогда баланс уберется :) А так он делается сразу, и пишет, что в след раунде будет баланс. А где эту надпись можно найти?

Отредактировал: Chilly_Willy, - 14.11.2012, 16:08
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
underwoker
сообщение 14.11.2012, 16:08
Сообщение #12
Стаж: 56 лет


Благодарностей:

Хм...Тогда никак. Это стандартная функция hlds
Перейти в начало страницы     
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Chilly_Willy
сообщение 14.11.2012, 16:17
Сообщение #13


Стаж: 17 лет

Сообщений: 394
Благодарностей: 45
Полезность: 119

Цитата(underwoker @ 14.11.2012, 21:08) *
Хм...Тогда никак. Это стандартная функция hlds

А то ее бы перевел и не парился :) Спасибо и на этом! :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: