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

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

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

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

Вопросы по энтити

Статус пользователя Butterfly
сообщение 6.7.2017, 18:13
Сообщение #1


Стаж: 9 лет 4 месяца

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

В общем, нарыл данную статью: Редактирование энтити на карте
Заинтересовался на счёт данного пункта
1.7 Вывод текста на экран : "classname" "game_text"

Что чаще всего хотят?
"Убрать/добавить копирайт или какую-то свою инфу"- пожалуйста. Но во втором случае нам понадобится дополнительная энтити:
{
"origin" "1111 -953 -624"
"target" "message"
"triggerstate" "1"
"delay" "1.6"
"classname" "trigger_auto"
}
которая активирует нашу через указанное время (в секундах) после начала раунда ("delay").
Пример (35hp_2):
{
"origin" "1111 -953 -632"
"message" " .:35hp_v2 by L0m3r & Godlike"
"targetname" "message"
"channel" "1"
"fxtime" "0.25"
"holdtime" "5"
"fadeout" "0.5"
"fadein" "1.5"
"color2" "240 110 0"
"color" "100 100 100"
"y" "0.8"
"x" "-1"
"classname" "game_text"
}
"message" - собственно, то, что выводится на экран


Хотелось бы у вас уточнить, каким образом, можно сделать так, чтобы, если игрок нажал какую-то кнопку - в худ выводилось сообщение, кто именно нажал данную кнопку?
С выводом сообщения при нажатии кнопки - разобрался. А вот, как сделать так, чтобы никнейм отображался - понятия не имею. Мб кто-то объяснит?
И ещё, кое-что важное. Как сделать так вывод сообщения на русском?(при вводе русских слов - они тупо пропадают)

UPD: с русским языком разобрался. Помогла программа Ripent.

Отредактировал: Butterfly, - 6.7.2017, 18:29
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Butterfly
сообщение 9.7.2017, 17:21
Сообщение #2


Стаж: 9 лет 4 месяца

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

Понял, что надо это делать, с помощью плагина.
Нашёл на форуме код.
Код:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>

public plugin_init()
{
RegisterHam(Ham_Use, "func_button", "nice_use")
}
public nice_use(ent, idcaller, idactivator, use_type, Float:value)
{
new name[32]
get_user_name(idactivator, name, 31)
client_print(0 ,print_center,"%s нажал кнопку" , name)
}

Всё работает, при нажатии кнопки всё выводится.
Но, в чём соль...
Это сообщение выводится при нажатии любых кнопок на карте, а мне надо, чтобы оно выводилось, только при нажатии конкретной кнопки.
Ну, а при нажатии на другие - должно выскакивать немного другое.
Подскажите, кто знает, пожалуйста. derisive.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя JIuXeP
сообщение 9.7.2017, 18:14
Сообщение #3


Стаж: 10 лет

Сообщений: 338
Благодарностей: 205
Полезность: 792

https://forums.alliedmods.net/showthread.php?t=283308
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя steelzzz
сообщение 9.7.2017, 18:26
Сообщение #4


Стаж: 10 лет

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

Butterfly, Код:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
public plugin_init() RegisterHam(Ham_Use, "func_button", "fw_HamUse")
public fw_HamUse(ent, idcaller, idactivator, use_type, Float:value)
{
new name[32]; get_user_name(idactivator, name, charsmax(name))
new classname[32]; pev(ent, pev_classname, classname, charsmax(classname))
if(equal(classname, "YourEntity"))
{
client_print(0, print_center, "%s нажал на кнопку", name)
}
return PLUGIN_CONTINUE
}
хз будет ли вообще рабоать xD

Отредактировал: steelzzz, - 9.7.2017, 18:36


Нужна помощь в настройке сервера или плагина? (Платно) -> Тык
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Butterfly
сообщение 11.7.2017, 15:36
Сообщение #5


Стаж: 9 лет 4 месяца

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

Возник новый вопрос.
При нажатии на одну из кнопок, должен запускаться таймер , по истечении которого, поезд отправится.
Как можно:
1. Изменить это самое время
2. Вывести всё это чудо в худ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DeMNiX
сообщение 11.7.2017, 15:56
Сообщение #6


Стаж: 11 лет

Сообщений: 263
Благодарностей: 113
Полезность: 646

Offtop:
жаба не давит с кснетовского zombie escape идеи подчистую слизывать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Butterfly
сообщение 11.7.2017, 17:00
Сообщение #7


Стаж: 9 лет 4 месяца

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

Да, даже , если и так, то, что в этом такого?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Butterfly
сообщение 13.7.2017, 17:25
Сообщение #8


Стаж: 9 лет 4 месяца

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

Сделал таким образом.
Код:
public nice_use(ent, idcaller, idactivator, use_type, Float:value)
{
new name[32]
get_user_name(idactivator, name, 31)
new szClass[32]; pev(ent, pev_classname, szClass, charsmax(szClass))
new szClass2[32]; pev(ent, pev_target, szClass2, charsmax(szClass2))
new szTime[32]; pev(ent, pev_impacttime, szTime, charsmax(szTime))
if(equal(szClass, "func_button"))
{
if(equal(szClass2, "doormedio") )
{
if(!canusebutton1[idactivator])
{
set_hudmessage(HUD_STATS_COLOR_R, HUD_STATS_COLOR_G, HUD_STATS_COLOR_B, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.1, 0.0, 0.0, false)
ShowSyncHudMsg(0, g_MsgSync, "%s закрыл окно", name)
}
else
{
client_print(idcaller, print_center, "Окно уже закрыто")
return HAM_SUPERCEDE
}
canusebutton1[idactivator] = true
}
else if(equal(szClass2, "train_escape_2"))
{
if(!canusebutton2[idactivator])
{

set_dhudmessage(HUD_STATS_COLOR_R, HUD_STATS_COLOR_G, HUD_STATS_COLOR_B, HUD_STATS_X2, HUD_STATS_Y2, 0, 6.0, 1.1, 0.0, 0.0, false)
show_dhudmessage(0, "%s вызвал поезд для эвакуации ", name)

client_print(idcaller, print_center, "До отправки поезда: %d", szTime)
}
else
{
client_print(idcaller, print_center, "Транспорт уже вызван")
return HAM_SUPERCEDE
}
canusebutton2[idactivator] = true
}
}
return HAM_IGNORED
}


Но... Сообщение показывается и исчезает с экрана, а должно по идее обновляться время...
Что здесь не так?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Butterfly
сообщение 13.7.2017, 19:28
Сообщение #9


Стаж: 9 лет 4 месяца

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

Разобрался. Можно закрывать
Cкрытый текст
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>
#include <cstrike>
#include <dhudmessage>
#include <fun>

new bool:canusebutton1[32]
new bool:canusebutton2[32]

new g_second;

const HUD_STATS_COLOR_R = 0
const HUD_STATS_COLOR_G = 255
const HUD_STATS_COLOR_B = 0
const HUD_STATS_COLOR_R2 = 255
const HUD_STATS_COLOR_G2 = 0
const HUD_STATS_COLOR_B2 = 0
const Float:HUD_STATS_X = 0.03
const Float:HUD_STATS_Y = 0.7
const Float:HUD_STATS_X2 = -1.0
const Float:HUD_STATS_Y2 = 0.13

new g_MsgSync , g_MsgSync2// message sync objects

public plugin_init()
{
RegisterHam(Ham_Use, "func_button", "nice_use")

register_event("HLTV", "on_round_start", "a", "1=0", "2=0")

g_MsgSync = CreateHudSyncObj()
g_MsgSync2 = CreateHudSyncObj()
}
public nice_use(ent, idcaller, idactivator, use_type, Float:value)
{
new name[32]
get_user_name(idactivator, name, 31)
new szClass[32]; pev(ent, pev_classname, szClass, charsmax(szClass))
new szClass2[32]; pev(ent, pev_target, szClass2, charsmax(szClass2))

if(equal(szClass, "func_button"))
{
if(equal(szClass2, "doormedio") )
{
if(!canusebutton1[idactivator])
{
set_hudmessage(HUD_STATS_COLOR_R, HUD_STATS_COLOR_G, HUD_STATS_COLOR_B, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.1, 0.0, 0.0, false)
ShowSyncHudMsg(0, g_MsgSync, "%s закрыл окно", name)
}
else
{
client_print(idcaller, print_center, "Окно уже закрыто")
return HAM_SUPERCEDE
}
canusebutton1[idactivator] = true
}
else if(equal(szClass2, "train_escape_2"))
{
g_second = 38;
task();
if(!canusebutton2[idactivator] )
{

set_dhudmessage(HUD_STATS_COLOR_R, HUD_STATS_COLOR_G, HUD_STATS_COLOR_B, HUD_STATS_X2, HUD_STATS_Y2, 0, 6.0, 1.1, 0.0, 0.0, false)
show_dhudmessage(0, "%s вызвал поезд для эвакуации ", name)
}
else
{
client_print(idcaller, print_center, "Транспорт уже вызван")
return HAM_SUPERCEDE
}
canusebutton2[idactivator] = true
}
}
return HAM_IGNORED
}

public on_round_start()
{
for(new i=1;i<=get_maxplayers();i++)
{
if(is_user_connected(i) && is_user_alive(i))
{
canusebutton1[i] = false
canusebutton2[i] = false
}
}
}

public task()
{
if(!g_second) return;

if(g_second < 21)
{
set_hudmessage(HUD_STATS_COLOR_R2, HUD_STATS_COLOR_G2, HUD_STATS_COLOR_B2, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.1, 0.0, 0.0, false)
}
else
{
set_hudmessage(HUD_STATS_COLOR_R, HUD_STATS_COLOR_G, HUD_STATS_COLOR_B, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.1, 0.0, 0.0, false)
}
ShowSyncHudMsg(0, g_MsgSync2, "До отправки поезда: %d", g_second)
g_second--;

set_task(1.0, "task");
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: