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

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

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

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

Выполнение функции при кол-ве игроков

Flash
сообщение 22.2.2011, 12:04
Сообщение #1
Стаж: 16 лет

Сообщений: 793
Благодарности: выкл.

Вообщем нужно сделать так что бы при определеном кол-ве игроков (в моем случае фул сервер 18 слотов) выполнялась функция, как это реализовать? thank_you2.gif

Собственно в чем соль?
Хочу сделать плагин что бы при фул сервере, плагин искал игроков с STEAM_ID_LAN (47 протокол) и кикал сообщая что нужно обновиться psych.gif
Тем самым освобождаем слоты для потенциальных игроков с 48 протоколом :)

За ранее спасибо :wink:

Отредактировал: xxxFlasHxxx, - 22.2.2011, 12:19
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Senjkee
сообщение 22.2.2011, 15:34
Сообщение #2


Стаж: 16 лет

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

Если портал качественный и онлайн норм зачем мудрить не проще закрыть версии без эмулятора ???
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Flash
сообщение 22.2.2011, 18:34
Сообщение #3
Стаж: 16 лет

Сообщений: 793
Благодарности: выкл.

До 6*6 набирается довольно таки долговато) минут 10 - 15 может быть 2*2/3*3 только потом 6*6. А после 6*6, 9*9 набирается за 1 минуту). И всетаки нужно плавно переводить игроков на 48 протокол

Отредактировал: xxxFlasHxxx, - 22.2.2011, 18:34
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 23.2.2011, 17:01
Сообщение #4


Стаж: 16 лет

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

Тут не пишут плагины а дают инфу а дальше сам выпиливай :)

hpk - в нём есть кусок скрипта который врубает проверку только при определённом количестве игроков что Тебе и нужно :)

Ну и вот :
steam_id_lan
Код
#include <amxmodx>

public plugin_init()
{
    register_plugin("1111", "1.0", "1111")
}

public client_putinserver(id)
{
    new aID[32]
    
    get_user_authid(id, aID, 31)
    
    if(equali(aID,"STEAM_ID_LAN"))
    
    server_cmd("kick #%d",get_user_userid(id))
    
}


Отредактировал: Senjkee, - 23.2.2011, 17:01
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Flash
сообщение 23.2.2011, 18:32
Сообщение #5
Стаж: 16 лет

Сообщений: 793
Благодарности: выкл.

Senjkee,
Спасибо конечно, но я вроде как и прошу инфу, а собстна как запустить функцию при опр. кол-ве игроков)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 24.2.2011, 2:39
Сообщение #6
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

xxxFlasHxxx,
get_playersnum
get_players
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Flash
сообщение 24.2.2011, 9:30
Сообщение #7
Стаж: 16 лет

Сообщений: 793
Благодарности: выкл.

спасибо большое, ушел тестить
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 24.2.2011, 9:52
Сообщение #8


Стаж: 16 лет

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

Цитата(STR@TEG @ 24.2.2011, 3:39) *


А вот что нужно было! Ну прошу прощения я не умею четко отвечать на поставленный вопрос :)


Если что получится ты хоть тему приподними почитаю что вышло из этого..(пожалуйста)!!!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Flash
сообщение 24.2.2011, 10:18
Сообщение #9
Стаж: 16 лет

Сообщений: 793
Благодарности: выкл.

Скажите еще в модуле hamsandwich как зарегистрировать событи нового раунда?)

сделаю проще, если получится отпишу

Отредактировал: xxxFlasHxxx, - 24.2.2011, 10:43
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Flash
сообщение 24.2.2011, 11:31
Сообщение #10
Стаж: 16 лет

Сообщений: 793
Благодарности: выкл.

Код
#include <amxmodx>
#include <amxmisc>

new aID[32]
new Players[32]

public plugin_init() {
    register_plugin("only48p","0.1","Flash")
}

public client_putinserver(id){
    new playerCount, i, player
    get_players(Players, playerCount, "h")
    for (i=0; i<playerCount; i++)
        player = Players[i]
    if (player<14)
        return PLUGIN_HANDLED
    else {
        get_user_authid(id, aID, 31)
        if(equali(aID,"STEAM_ID_LAN"))
            server_cmd("kick #%d ^"Update your client^"",get_user_userid(id))
    }
    return PLUGIN_HANDLED
}


в чем ошибка?)) Не работает sad.gif

p.s
игроков было больше 16

Отредактировал: xxxFlasHxxx, - 24.2.2011, 11:32
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 24.2.2011, 18:22
Сообщение #11
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

xxxFlasHxxx,
Не проверял:
Код
#include <amxmodx>
#include <amxmisc>

public plugin_init()
{
    register_plugin("Only 48p", "0.1", "Flash")
}

public client_authorized(id)
{
    new i_PlayersNum = get_playersnum(1)
    
    if (i_PlayersNum == 18)
    {
        for (new i = 1; i <= i_PlayersNum; i++)
        {
            new authid[24]
            get_user_authid(i, authid, charsmax(authid))
            
            if (equal(authid, "STEAM_ID_LAN"))
            {
                server_cmd("kick #%d ^"Update your client^"", get_user_userid(i))
                break
            }
        }
    }
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 25.2.2011, 6:22
Сообщение #12


Стаж: 16 лет

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

Получается что-бы не заморачиваться значения dproto :
cid_NoSteam47 = 8 STEAM_ID_LAN
cid_NoSteam48 = 8 STEAM_ID_LAN
cid_SteamPending = 8 STEAM_ID_LAN
Или лучше плагином выставить данные квары ???

Отредактировал: Senjkee, - 25.2.2011, 6:27
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 25.2.2011, 10:30
Сообщение #13
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Цитата(Senjkee @ 25.2.2011, 7:22) *
Получается что-бы не заморачиваться значения dproto :
cid_NoSteam47 = 8 STEAM_ID_LAN
cid_NoSteam48 = 8 STEAM_ID_LAN
Можно так, можно отредактировать плагин.

Цитата(Senjkee @ 25.2.2011, 7:22) *
cid_SteamPending = 8 STEAM_ID_LAN
Необязательно.

Цитата(Senjkee @ 25.2.2011, 7:22) *
Или лучше плагином выставить данные квары ???
Как ты это сделаешь?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Flash
сообщение 25.2.2011, 10:54
Сообщение #14
Стаж: 16 лет

Сообщений: 793
Благодарности: выкл.

Код
#include <amxmodx>
#include <amxmisc>

public plugin_init()
{
    register_plugin("Only 48p", "0.1", "Flash")
}

public client_authorized(id)
{
    new i_PlayersNum = get_playersnum(1)
    
    if (i_PlayersNum > 13) // Можно вот так? :)
    {
        for (new i = 1; i <= i_PlayersNum; i++)
        {
            new authid[24]
            get_user_authid(i, authid, charsmax(authid))
            
            if (equal(authid, "STEAM_ID_LAN"))
            {
                server_cmd("kick #%d ^"Update your client^"", get_user_userid(i))
                break
            }
        }
    }
}


Так можно? if (i_PlayersNum > 13)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Flash
сообщение 25.2.2011, 11:18
Сообщение #15
Стаж: 16 лет

Сообщений: 793
Благодарности: выкл.

Кстати. Пробывал написать плагин небольшой, вроде получилось. Суть в том что любой игрок может кикнуть игрока если у того 47 протокол.

Код
#include <amxmodx>
#include <amxmisc>

public plugin_init() {
    register_plugin("Kick47p","0.1","Flash")
    register_clcmd("47p_kick","kickfunc")
}

public kickfunc(id,level,cid) {
    new name[32]
    new authid[24]
    read_argv(1, name, 31)
    new player = cmd_target(id, name, 5)
    get_user_authid(id, authid, charsmax(authid))
    if ((player>0) && equal(authid, "STEAM_ID_LAN")) {
        server_cmd("kick #%d ^"Update your client^"", get_user_userid(id))
    }
    else {
        client_print(id,print_console,"Player '%s' not found or client have 48p",name)
    }
}


Посмотрите кто шарит, все идеально?)))
И еще 1. в консоль пишет якобы kick_47p не является командой хотя все работает)

Отредактировал: xxxFlasHxxx, - 25.2.2011, 11:18
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 26.2.2011, 2:26
Сообщение #16
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Цитата(xxxFlasHxxx @ 25.2.2011, 11:54) *
Так можно? if (i_PlayersNum > 13)
Можно.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Flash
сообщение 26.2.2011, 14:01
Сообщение #17
Стаж: 16 лет

Сообщений: 793
Благодарности: выкл.

STR@TEG,
Посмотри мой предыдущий пост пожалуйста)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Flash
сообщение 28.2.2011, 5:58
Сообщение #18
Стаж: 16 лет

Сообщений: 793
Благодарности: выкл.

Цитата(xxxFlasHxxx @ 25.2.2011, 12:18) *
Кстати. Пробывал написать плагин небольшой, вроде получилось. Суть в том что любой игрок может кикнуть игрока если у того 47 протокол.

Код
#include <amxmodx>
#include <amxmisc>

public plugin_init() {
    register_plugin("Kick47p","0.1","Flash")
    register_clcmd("47p_kick","kickfunc")
}

public kickfunc(id,level,cid) {
    new name[32]
    new authid[24]
    read_argv(1, name, 31)
    new player = cmd_target(id, name, 5)
    get_user_authid(id, authid, charsmax(authid))
    if ((player>0) && equal(authid, "STEAM_ID_LAN")) {
        server_cmd("kick #%d ^"Update your client^"", get_user_userid(id))
    }
    else {
        client_print(id,print_console,"Player '%s' not found or client have 48p",name)
    }
}


Посмотрите кто шарит, все идеально?)))
И еще 1. в консоль пишет якобы kick_47p не является командой хотя все работает)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 15 гостей читают эту тему: