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

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

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

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

ResetScore

, команды видны только себе.
Статус пользователя Crazy*
сообщение 6.6.2012, 10:08
Сообщение #1


Стаж: 19 лет

Сообщений: 213
Благодарностей: 49
Полезность: 192

в общем, когда много игроков начинают писать /rs, получается спам =) весь чат забит, кто-то может подсказать как сделать сообщение (комманды, в общем все что относится к этому плагину) скрытым для всех.

сам код:
Скрытый текст
Код
/*
This is a simple plugin I made that will just restart a players score
making their deaths and kills set to 0, this is to help players out a
little bit because they no longer have to reconnect or retry if they
want their score to start over, they can just type a simple command

---------------------------------
--------- MADE BY SILENTTT -----
------ MADE BY SILENTTT ------
-- MADE BY SILENTTT -------
------ MADE BY SILENTTT ------
--------- MADE BY SILENTTT -----
---------------------------------
*/

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>

#define adtime 600.0 //Default of 10 minuites

new pcvar_Advertise
new pcvar_Display

public plugin_init()
{
register_plugin("Reset Score", "1.0", "Silenttt")

//You may type /resetscore or /restartscore
register_clcmd("say /rs", "reset_score")
register_clcmd("say /resetscore", "reset_score")
register_clcmd("say /restartscore", "reset_score")

//This command by default will be set at 0
//Change it to 1 in server.cfg if you want
//A message to be shown to advertise this.
pcvar_Advertise = register_cvar("sv_rsadvertise", "0")
//This command by default is also 0
//Change it to 1 in server.cfg if you want
//It to show who reset their scores when they do it
pcvar_Display = register_cvar("sv_rsdisplay", "0")

if(get_cvar_num("sv_rsadvertise") == 1)
{
set_task(adtime, "advertise", _, _, _, "b")
}
}

public reset_score(id)
{
//These both NEED to be done twice, otherwise your frags wont
//until the next round
cs_set_user_deaths(id, 0)
set_user_frags(id, 0)
cs_set_user_deaths(id, 0)
set_user_frags(id, 0)

if(get_pcvar_num(pcvar_Display) == 1)
{
new name[33]
get_user_name(id, name, 32)
client_print(0, print_chat, "%s обнулил свой счёт", name)
}
else
{
client_print(id, print_chat, "Ваш счёт успешно обнулён")
}
}

public advertise()
{
set_hudmessage(255, 0, 0, -1.0, 0.20, 0, 0.2, 12.0)
show_hudmessage(0, "Напишите в чате /resetscore или /rs для обнуления вашего счёта")
}

public client_putinserver(id)
{
if(get_pcvar_num(pcvar_Advertise) == 1)
{
set_task(10.0, "connectmessage", id, _, _, "a", 1)
}
}

public connectmessage(id)
{
if(is_user_connected(id))
{
client_print(id, print_chat, "Напишите в чате /resetscore или /rs для обнуления вашего счёта")
}
}


буду очень благодарен. :ukraine:

Отредактировал: Crazy*, - 6.6.2012, 10:33
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Rejiser
сообщение 6.6.2012, 11:09
Сообщение #2


Стаж: 15 лет

Сообщений: 2261
Благодарностей: 1068
Полезность: 870

Если хочешь, чтобы команды "/rs" не было видно, то в конце функции public reset_score(id) добавь:

Код
return PLUGIN_HANDLED

Получится вот так:

Код
public reset_score(id)
{
    //These both NEED to be done twice, otherwise your frags wont
    //until the next round
    cs_set_user_deaths(id, 0)
    set_user_frags(id, 0)
    cs_set_user_deaths(id, 0)
    set_user_frags(id, 0)

    if(get_pcvar_num(pcvar_Display) == 1)
    {
        new name[33]
        get_user_name(id, name, 32)
        client_print(0, print_chat, "%s обнулил свой счёт", name)
    }
    else
    {
        client_print(id, print_chat, "Ваш счёт успешно обнулён")
    }
    return PLUGIN_HANDLED
}


Отредактировал: Rejiser, - 6.6.2012, 11:09
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Crazy*
сообщение 6.6.2012, 11:11
Сообщение #3


Стаж: 19 лет

Сообщений: 213
Благодарностей: 49
Полезность: 192

то есть просто заблокировав пересылку в движок?
а себе лично будут сообщение видны?

спасибо. буду пребывать.

Отредактировал: Crazy*, - 6.6.2012, 11:13
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Rejiser
сообщение 6.6.2012, 12:55
Сообщение #4


Стаж: 15 лет

Сообщений: 2261
Благодарностей: 1068
Полезность: 870

Цитата(Crazy* @ 6.6.2012, 12:11) *
то есть просто заблокировав пересылку в движок?
а себе лично будут сообщение видны?

спасибо. буду пребывать.

Нет, себе тоже не будет видно.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Crazy*
сообщение 6.6.2012, 12:59
Сообщение #5


Стаж: 19 лет

Сообщений: 213
Благодарностей: 49
Полезность: 192

ну как вариант, пусть побудет так пока.
Я так понял там нужно много переделывать в плагине? что бы отображало только себе?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 6.6.2012, 13:04
Сообщение #6


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

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


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

Crazy*,
дак не, можно сделать что-то типо:

Код
for( new i = 1; i <= get_maxplayers(); i++ )
{
     if( i != id )
     {
          return PLUGIN_HANDLED
     }
}


но смысл? Лишняя нагрузка


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Surf
сообщение 6.6.2012, 15:12
Сообщение #7


Стаж: 14 лет

Сообщений: 1089
Благодарностей: 501
Полезность: 583

Цитата(AndrewZ @ 6.6.2012, 14:04) *
Crazy*,
дак не, можно сделать что-то типо:

Код
for( new i = 1; i <= get_maxplayers(); i++ )
{
     if( i != id )
     {
          return PLUGIN_HANDLED
     }
}


но смысл? Лишняя нагрузка

бред такой написал))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
noskill
сообщение 6.6.2012, 15:14
Сообщение #8
Стаж: 14 лет

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

Surf,
и в чём бред?
еще можно иммитировать сообщение чата, принтколором
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Surf
сообщение 6.6.2012, 15:15
Сообщение #9


Стаж: 14 лет

Сообщений: 1089
Благодарностей: 501
Полезность: 583

Цитата(csnetua @ 6.6.2012, 16:14) *
Surf,
и в чём бред?
еще можно иммитировать сообщение чата, принтколором

в том что его вариант не сработает, а вот твой да, потянет
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Crazy*
сообщение 6.6.2012, 15:55
Сообщение #10


Стаж: 19 лет

Сообщений: 213
Благодарностей: 49
Полезность: 192

хм.. может кто-то допишет?) :WallKiller:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 6.6.2012, 15:57
Сообщение #11


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

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


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

Surf,
пфф, с чего это не сработает

хм, или да, я кажется понял... наверно.

Все же идея бред ):

Отредактировал: AndrewZ, - 6.6.2012, 16:01


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
noskill
сообщение 6.6.2012, 16:15
Сообщение #12
Стаж: 14 лет

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

Скрытый текст
Код
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>

#define adtime 600.0 //Default of 10 minuites

new pcvar_Advertise
new pcvar_Display
new SayText

public plugin_init()
{
    
SayText = get_user_msgid("SayText")

register_plugin("Reset Score", "1.0", "Silenttt")

//You may type /resetscore or /restartscore
register_clcmd("say /rs", "reset_score")
register_clcmd("say /resetscore", "reset_score")
register_clcmd("say /restartscore", "reset_score")

//This command by default will be set at 0
//Change it to 1 in server.cfg if you want
//A message to be shown to advertise this.
pcvar_Advertise = register_cvar("sv_rsadvertise", "0")
//This command by default is also 0
//Change it to 1 in server.cfg if you want
//It to show who reset their scores when they do it
pcvar_Display = register_cvar("sv_rsdisplay", "0")

if(get_cvar_num("sv_rsadvertise") == 1)
{
set_task(adtime, "advertise", _, _, _, "b")
}
}

public reset_score(id)
{
    new name[33]
    //These both NEED to be done twice, otherwise your frags wont
    //until the next round
    cs_set_user_deaths(id, 0)
    set_user_frags(id, 0)
    cs_set_user_deaths(id, 0)
    set_user_frags(id, 0)
    get_user_name(id, name, 32)
    new msg[192]

    if(get_pcvar_num(pcvar_Display) == 1)
    {
        client_print(0, print_chat, "%s обнулил свой счёт", name)
    }
    else
    {
    format(msg, 191, "^3%s^1: /rs \n Ваш счёт успешно обнулён", name)
    message_begin(MSG_ONE_UNRELIABLE, SayText, _, id)
    write_byte(id);
    write_string(msg);
    message_end();
    }
    return PLUGIN_HANDLED
}

public advertise()
{
set_hudmessage(255, 0, 0, -1.0, 0.20, 0, 0.2, 12.0)
show_hudmessage(0, "Напишите в чате /resetscore или /rs для обнуления вашего счёта")
}

public client_putinserver(id)
{
if(get_pcvar_num(pcvar_Advertise) == 1)
{
set_task(10.0, "connectmessage", id, _, _, "a", 1)
}
}

public connectmessage(id)
{
if(is_user_connected(id))
{
client_print(id, print_chat, "Напишите в чате /resetscore или /rs для обнуления вашего счёта")
}
}


как-то так Оо
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Surf
сообщение 6.6.2012, 16:52
Сообщение #13


Стаж: 14 лет

Сообщений: 1089
Благодарностей: 501
Полезность: 583

Цитата(AndrewZ @ 6.6.2012, 17:57) *
Surf,
пфф, с чего это не сработает

хм, или да, я кажется понял... наверно.

Все же идея бред ):

умничал бы по-меньше было бы вообще отлично)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
noskill
сообщение 6.6.2012, 17:02
Сообщение #14
Стаж: 14 лет

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

Цитата(Surf @ 6.6.2012, 17:52) *
умничал бы по-меньше было бы вообще отлично)

тебе то же самое могу сказать)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Surf
сообщение 6.6.2012, 19:32
Сообщение #15


Стаж: 14 лет

Сообщений: 1089
Благодарностей: 501
Полезность: 583

Цитата(csnetua @ 6.6.2012, 18:02) *
тебе то же самое могу сказать)

ну я прав как ни крути, не?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Andrei
сообщение 6.6.2012, 20:56
Сообщение #16


Стаж: 15 лет

Сообщений: 1335
Благодарностей: 693
Полезность: 740

Как вариант,после каждого использования делать интервал для всех.

Цитата
#include <amxmodx >
#include < cstrike >

#include < fun >



#define MAX_CLIENTS 32

#define NEXT_TIME_USE 10



#define adtime 600.0



new pcvar_Advertise,

pcvar_Display



new Float:g_flNextUse;



public plugin_init()

{

register_plugin("Reset Score", "1.0", "Silenttt")



register_clcmd("say /rs", "reset_score")

register_clcmd("say /resetscore", "reset_score")

register_clcmd("say /restartscore", "reset_score")





pcvar_Advertise = register_cvar("sv_rsadvertise", "0")

pcvar_Display = register_cvar("sv_rsdisplay", "0")



if(get_cvar_num("sv_rsadvertise") == 1)

set_task(adtime, "advertise", _, _, _, "b" )



}



public reset_score(id)

{

if( g_flNextUse > get_gametime( ) )

{

client_print( id , print_chat , "[SCORE] Ожидайте %f сек." , g_flNextUse - get_gametime( ) )
return
}



cs_set_user_deaths(id, 0)

set_user_frags(id, 0)

cs_set_user_deaths(id, 0)

set_user_frags(id, 0)



if(get_pcvar_num(pcvar_Display) == 1)

{

new name[33]

get_user_name(id, name, 32)

client_print(0, print_chat, "%s обнулил свой счёт", name)

}

else

{

client_print(id, print_chat, "Ваш счёт успешно обнулён")

}

g_flNextUse = get_gametime( ) + NEXT_TIME_USE;

}



public advertise()

{

set_hudmessage(255, 0, 0, -1.0, 0.20, 0, 0.2, 12.0)

show_hudmessage(0, "Напишите в чате /resetscore или /rs для обнуления вашего счёта")

}



public client_putinserver(id)

{

if(get_pcvar_num(pcvar_Advertise) == 1)

{

set_task(10.0, "connectmessage", id, _, _, "a", 1)

}

}



public connectmessage(id)

{

if(is_user_connected(id))

{

client_print(id, print_chat, "Напишите в чате /resetscore или /rs для обнуления вашего счёта")

}

}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Surf
сообщение 6.6.2012, 21:04
Сообщение #17


Стаж: 14 лет

Сообщений: 1089
Благодарностей: 501
Полезность: 583

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