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

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

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

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

Top 15

Статус пользователя Katowice
сообщение 6.4.2015, 5:14
Сообщение #1
Стаж: 11 лет

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

Нужен хелп дописать плагин чтоб когда игрок который находиться в топ 15 заходил на сервер его оповещало сообщением в чат
Вы находитесь в Топ-15, за это получаете щит на спину!

Скрытый текст
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <csstats>

#define PLUGIN "TOP Hats"
#define VERSION "0.1"
#define AUTHOR "TTuCTOH"

new g_topEnt[33]
new MODEL_TOP15[] = ""
new g_CachedStringInfoTarget

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

RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);
g_CachedStringInfoTarget = engfunc( EngFunc_AllocString, "info_target" );
}

public plugin_precache()
{
precache_model(MODEL_TOP15)
}

public fwHamPlayerSpawnPost(id)
{
new stats[8], bodyhits[8]
new iRank;
iRank = get_user_stats(id, stats, bodyhits)

if(1 <= iRank <= 15)
{
if(is_user_alive(id))
{
new iEnt = g_topEnt[id]
if( !pev_valid(iEnt))
{
g_topEnt[id] = iEnt = engfunc(EngFunc_CreateNamedEntity, g_CachedStringInfoTarget)
set_pev(iEnt, pev_movetype, MOVETYPE_FOLLOW)
set_pev(iEnt, pev_aiment, id)
engfunc(EngFunc_SetModel, iEnt, MODEL_TOP15)
}
}
}
else
{
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}


Отредактировал: Katowice, - 6.4.2015, 5:16
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя dialyabev
сообщение 6.4.2015, 5:59
Сообщение #2


Стаж: 11 лет

Сообщений: 243
Благодарностей: 120
Полезность: 596

в client_putinserver кидай:
Код:
new stats[8], bodyhits[8]
new iRank;
iRank = get_user_stats(id, stats, bodyhits)

if(1 <= iRank <= 15)
{
// тут запиливай мессагу.
}


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Katowice
сообщение 6.4.2015, 6:26
Сообщение #3
Стаж: 11 лет

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

Цитата(dialyabev @ 6.4.2015, 5:59) *
в client_putinserver кидай:
Код:
new stats[8], bodyhits[8]
new iRank;
iRank = get_user_stats(id, stats, bodyhits)

if(1 <= iRank <= 15)
{
// тут запиливай мессагу.
}

Скрытый текст
public client_putinserver(id)
{
new stats[8], bodyhits[8]
new iRank;
iRank = get_user_stats(id, stats, bodyhits)

if(1 <= iRank <= 15)
{
client_print_color(id, 0, "^1[^4NightMode^1] ^4RTV не работает в ^3Ночном режиме!");
}
}

сделал вот так вот скомпилил захожу в чат не чего не пишет
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя dialyabev
сообщение 6.4.2015, 6:52
Сообщение #4


Стаж: 11 лет

Сообщений: 243
Благодарностей: 120
Полезность: 596

потому что функция срабатывает быстрей , чем игрок заходит, если тебе надо самому себе мессагу заслать, то либо таск, либо ловить момент как игрок выбрал скин или команду и отсылать мессагу.

Отредактировал: dialyabev, - 6.4.2015, 6:53


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

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

Актуально.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя dialyabev
сообщение 6.4.2015, 7:24
Сообщение #6


Стаж: 11 лет

Сообщений: 243
Благодарностей: 120
Полезность: 596

Код:
register_clcmd("joinclass","j_class");

public j_class(id)
{
new stats[8], bodyhits[8]
new iRank;
iRank = get_user_stats(id, stats, bodyhits)

if(1 <= iRank <= 15)
{
client_print_color(id, 0, "ТЫ В ТОП15, УРА!");
}
}


или же

Код:
public client_putinserver(id)
{
new stats[8], bodyhits[8]
new iRank;
iRank = get_user_stats(id, stats, bodyhits)

if(1 <= iRank <= 15)
{
set_task(2.0, "msg", id)
}
}

public client_disconnect(id) remove_task(id)
public msg(id) client_print_color(id, 0, "ТЫ В ТОП15, УРА!");


лучше используй 1й вариант, я не сторонник тасков.

Отредактировал: dialyabev, - 6.4.2015, 7:28


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Katowice
сообщение 6.4.2015, 9:10
Сообщение #7
Стаж: 11 лет

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

В твоих вариантах не пишет сообщения в чат
Попытался сделать сам, сделать сделал но теперь сервер падает после 2 - 3 с играных раундов
Скрытый текст
public client_putinserver(id)
{
set_task( 5.0, "taskCheck", id )
SayText = get_user_msgid("SayText")
}

public taskCheck(id)
{
new sOsef[8];
new iRank = get_user_stats(id, sOsef, sOsef);

static szName[34];
if(1 <= iRank <= 15)
{
get_user_name(id, szName, 32);
ChatColor ( 0 , "!g[CS-FRAGS]!team %s !yВы находитесь в !gТоп-15, !yза это получаете щит на спину!", szName );
}
}

stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!team", "^3")
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, SayText, _, players[i])
write_byte(players[i])
write_string(msg)
message_end()
}
}
return PLUGIN_CONTINUE
}


Отредактировал: Bloo, - 6.4.2015, 9:12
Причина: Выдано устное предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kokc
сообщение 6.4.2015, 10:40
Сообщение #8


Стаж: 12 лет

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

Код:
#include <amxmodx> 
#include <fakemeta>
#include <hamsandwich>
#include <csstats>

#define PLUGIN "TOP Hats"
#define VERSION "0.1"
#define AUTHOR "TTuCTOH"

new g_topEnt[33]
new MODEL_TOP15[] = ""
new g_CachedStringInfoTarget

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

register_clcmd("joinclass","j_class")

RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);
g_CachedStringInfoTarget = engfunc( EngFunc_AllocString, "info_target" )
}

public plugin_precache()
{
precache_model(MODEL_TOP15)
}

public fwHamPlayerSpawnPost(id)
{
new stats[8], bodyhits[8]
new iRank;
iRank = get_user_stats(id, stats, bodyhits)

if(1 <= iRank <= 15)
{
if(is_user_alive(id))
{
new iEnt = g_topEnt[id]
if( !pev_valid(iEnt))
{
g_topEnt[id] = iEnt = engfunc(EngFunc_CreateNamedEntity, g_CachedStringInfoTarget)
set_pev(iEnt, pev_movetype, MOVETYPE_FOLLOW)
set_pev(iEnt, pev_aiment, id)
engfunc(EngFunc_SetModel, iEnt, MODEL_TOP15)
}
}
}
else
{
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}

public j_class(id)
{
new stats[8], bodyhits[8]
new iRank;
iRank = get_user_stats(id, stats, bodyhits)

if(1 <= iRank <= 15)
{
ChatColor(id, "Ты в !gтоп15")
}
}

stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4") // Зеленый цвет
replace_all(msg, 190, "!y", "^1") // Дефолтный цвет
replace_all(msg, 190, "!t", "^3") // Цвет команды

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()
}
}
}
}

так пробуй
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Katowice
сообщение 30.8.2015, 15:53
Сообщение #9
Стаж: 11 лет

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

Все выше варианты не работают. Подкажите пожалуйста ещё что-нибудь!
Спасибо!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kolobok1
сообщение 31.8.2015, 9:58
Сообщение #10


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

Цитата(dialyabev @ 6.4.2015, 8:20) *
Код:
public client_putinserver(id)
{
new stats[8], bodyhits[8]
new iRank;
iRank = get_user_stats(id, stats, bodyhits)

if(1 <= iRank <= 15)
{
set_task(2.0, "msg", id)
}
}

public client_disconnect(id) remove_task(id)
public msg(id) client_print_color(id, 0, "ТЫ В ТОП15, УРА!");


лучше используй 1й вариант, я не сторонник тасков.

Зачем в putinserver пихать переменные и т.д?Легче вывести set_task туда,а в set_task'e вывести паблик который и будет выводить и определять игрока top15.

Отредактировал: kolobok1, - 31.8.2015, 9:58
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Katowice
сообщение 7.9.2015, 5:58
Сообщение #11
Стаж: 11 лет

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

Цитата(kolobok1 @ 31.8.2015, 9:53) *
Зачем в putinserver пихать переменные и т.д?Легче вывести set_task туда,а в set_task'e вывести паблик который и будет выводить и определять игрока top15.

Тему можно закрыть.
Всем спасибо.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Katowice
сообщение 7.9.2015, 7:11
Сообщение #12
Стаж: 11 лет

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

Цитата(Katowice @ 7.9.2015, 5:53) *
Тему можно закрыть.
Всем спасибо.

Не буду создавать новую тему напишу тут. Помогите добавить модель ножа за топ 15 я как не пытался так и не получилось модель просто на просто не отображается.
Cкрытый текст
/*
:: Суть плагина ::
- Надевает на игроков шапочки

:: Модули ::
<amxmodx>
<fakemeta>
<hamsandwich>
<csstats>

:: Автор :: - я
:: Версия :: - 0.2

:: Настройки ::

Можете поставить свои модельки, если те которые я выбрал - слишком уродливы :)
Редактируйте следующее строчки:
( 39-40 строчки )
new MODEL_TOP15[] = "models/pp_top15.mdl"
new MODEL_TOP3[] = "models/pp_top3.mdl"

:: ChangeLog ::

* 0.2 - оптимизирован код (Сделал так как мне посоветовали)
* 0.1 - первый релиз
*/

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <csstats>

#define PLUGIN "TOP Hats"
#define VERSION "0.2"
#define AUTHOR "TTuCTOH"

new g_topEnt[33]

new MODEL_TOP15[] = "models/pp_top15.mdl"
new MODEL_TOP3[] = "models/pp_top3.mdl"
new g_CachedStringInfoTarget

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

RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);
g_CachedStringInfoTarget = engfunc( EngFunc_AllocString, "info_target" );
}

public plugin_precache()
{
precache_model(MODEL_TOP15)
precache_model(MODEL_TOP3)
}

public fwHamPlayerSpawnPost(id)
{
new stats[8], bodyhits[8]
new iRank;
iRank = get_user_stats(id, stats, bodyhits)

if(1 <= iRank <= 3)
{
GiveHat(id, MODEL_TOP3)
}
else if(4 <= iRank <= 15)
{
GiveHat(id, MODEL_TOP15)
}
}

public GiveHat(id, const s_Model[])
{
if(is_user_alive(id))
{
new iEnt = g_topEnt[id]
if( !pev_valid(iEnt))
{
g_topEnt[id] = iEnt = engfunc(EngFunc_CreateNamedEntity, g_CachedStringInfoTarget)
set_pev(iEnt, pev_movetype, MOVETYPE_FOLLOW)
set_pev(iEnt, pev_aiment, id)
engfunc(EngFunc_SetModel, iEnt, s_Model)
}
else if(pev_valid(iEnt))
{
engfunc( EngFunc_RemoveEntity, iEnt)
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя tenb63rus
сообщение 7.9.2015, 9:21
Сообщение #13


Стаж: 12 лет

Сообщений: 817
Благодарностей: 476
Полезность: 850

Цитата(Katowice @ 7.9.2015, 7:06) *
Не буду создавать новую тему напишу тут. Помогите добавить модель ножа за топ 15 я как не пытался так и не получилось модель просто на просто не отображается.
Cкрытый текст
/*
:: Суть плагина ::
- Надевает на игроков шапочки

:: Модули ::
<amxmodx>
<fakemeta>
<hamsandwich>
<csstats>

:: Автор :: - я
:: Версия :: - 0.2

:: Настройки ::

Можете поставить свои модельки, если те которые я выбрал - слишком уродливы :)
Редактируйте следующее строчки:
( 39-40 строчки )
new MODEL_TOP15[] = "models/pp_top15.mdl"
new MODEL_TOP3[] = "models/pp_top3.mdl"

:: ChangeLog ::

* 0.2 - оптимизирован код (Сделал так как мне посоветовали)
* 0.1 - первый релиз
*/

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <csstats>

#define PLUGIN "TOP Hats"
#define VERSION "0.2"
#define AUTHOR "TTuCTOH"

new g_topEnt[33]

new MODEL_TOP15[] = "models/pp_top15.mdl"
new MODEL_TOP3[] = "models/pp_top3.mdl"
new g_CachedStringInfoTarget

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

RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);
g_CachedStringInfoTarget = engfunc( EngFunc_AllocString, "info_target" );
}

public plugin_precache()
{
precache_model(MODEL_TOP15)
precache_model(MODEL_TOP3)
}

public fwHamPlayerSpawnPost(id)
{
new stats[8], bodyhits[8]
new iRank;
iRank = get_user_stats(id, stats, bodyhits)

if(1 <= iRank <= 3)
{
GiveHat(id, MODEL_TOP3)
}
else if(4 <= iRank <= 15)
{
GiveHat(id, MODEL_TOP15)
}
}

public GiveHat(id, const s_Model[])
{
if(is_user_alive(id))
{
new iEnt = g_topEnt[id]
if( !pev_valid(iEnt))
{
g_topEnt[id] = iEnt = engfunc(EngFunc_CreateNamedEntity, g_CachedStringInfoTarget)
set_pev(iEnt, pev_movetype, MOVETYPE_FOLLOW)
set_pev(iEnt, pev_aiment, id)
engfunc(EngFunc_SetModel, iEnt, s_Model)
}
else if(pev_valid(iEnt))
{
engfunc( EngFunc_RemoveEntity, iEnt)
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/

В этом плагине нужный флаг выставить, и его уже топам выдавать

Отредактировал: tenb63rus, - 7.9.2015, 9:22
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Katowice
сообщение 24.9.2015, 5:38
Сообщение #14
Стаж: 11 лет

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

Цитата(tenb63rus @ 7.9.2015, 9:17) *
В этом плагине нужный флаг выставить, и его уже топам выдавать

Вы не так меня видимо поняли, мне нужно чтоб за топ 15 выдавало модель ножа, а не скорость,демаг и тд.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 24.9.2015, 8:32
Сообщение #15
Стаж: 11 лет

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

Цитата(Katowice @ 24.9.2015, 6:34) *
Вы не так меня видимо поняли, мне нужно чтоб за топ 15 выдавало модель ножа, а не скорость,демаг и тд.

вот сделал может понравится!
Убрал дамаг (скороста там не было)

Квар:
knife_prize_top Количество лучших игроков, получающих золотой нож! (по ум. 15)

модель ножа который сделал специально для этого плагина (cz руки.! если нужны cs руки напишите)

насчет оптимизации не знаю проверил amx profile вроде нормально! пусть опытные скриптеры проверят
Прикрепленные файлы:
Прикрепленный файл  prize_knife.sma ( 2,65 килобайт ) Кол-во скачиваний: 8
Прикрепленный файл  My_Models.7z ( 274,78 килобайт ) Кол-во скачиваний: 7
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: