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

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

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

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

2 страниц V   1 2

SpawnMessage

, FAQ-hud-Spawn
Статус пользователя Legend21
сообщение 13.2.2015, 19:06
Сообщение #1
Стаж: 14 лет
Город: Винница

Сообщений: 604
Благодарностей: 229
Полезность: 561



Данный простой скрипт, воспроизводит сообщения в виде подсказки при спауне игрока. Плагин подходит для всех модов, но особенно для тех, у кого мод с респаунами или сам по себе сложный и требует подсказок в виде короткого FAQ. Плагин имеет гибкую настройку и все настройки и сообщения регулируются в конфигу Spawn_message.cfg Всего шесть сообщений, которые воспроизводятся рандомно. Колво строк в одном сообщении - ограниченно!
Данный скрипт очень простой (повторю еще раз) и возможно требует оптимизации, так как я не очень силен в pawno. Писал для своего ZM мода, решил и поделиться с вами.

Код
// Вывод сообщения
message_1 "[Подсказка] Ваше сообщение1"
message_2 "[Подсказка] Ваше сообщение2"
message_3 "[Подсказка] Ваше сообщение3"
message_4 "[Подсказка] Ваше сообщение4"
message_5 "[Подсказка] Ваше сообщение5"
message_6 "[Подсказка] Ваше сообщение6"

// Настройки HUD
pos_x "0.04"   // Координата позиции X
pos_y "0.71"   // Координата позиции Y

red   "000"   // Цвет
green "255"   // Цвет
blue  "255"   // Цвет


Код плагина
Код
#include <amxmodx>
#include <hamsandwich>

#define PLUGIN "PlayerSpawnMessage"
#define VERSION "1.0"
#define AUTHOR "I Am LeGenD"

new message_1, message_2, message_3, message_4, message_5, message_6
new position_x, position_y, red, green, blue

public plugin_init(){
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    RegisterHam( Ham_Spawn, "player", "PlayerSpawn", 1 )
    
    message_1 = register_cvar("message_1", "")
    message_2 = register_cvar("message_2", "")
    message_3 = register_cvar("message_3", "")
    message_4 = register_cvar("message_4", "")
    message_5 = register_cvar("message_5", "")
    message_6 = register_cvar("message_6", "")
    
    position_x = register_cvar("pos_x", "0.04")
    position_y = register_cvar("pos_y", "0.71")

    red   = register_cvar("red", "000")
    green = register_cvar("green", "255")
    blue  = register_cvar("blue", "255")
    
}

public plugin_cfg()
{
    server_cmd("exec addons/amxmodx/configs/Spawn_message.cfg")
}

public HudMessage(id)
{
    new starting_1[128], starting_2[128], starting_3[128], starting_4[128], starting_5[128], starting_6[128]
  
    get_pcvar_string(message_1,starting_1,128)
    get_pcvar_string(message_2,starting_2,128)
    get_pcvar_string(message_3,starting_3,128)
    get_pcvar_string(message_4,starting_4,128)
    get_pcvar_string(message_5,starting_5,128)
    get_pcvar_string(message_6,starting_6,128)
    
    set_hudmessage( get_pcvar_num(red), get_pcvar_num(green), get_pcvar_num(blue), get_pcvar_float(position_x), get_pcvar_float(position_y), 0, 5.5, 5.5, 0.5, 0.5, 3 )
    
    switch(random_num(0,5))
    {
    case 0:
    show_hudmessage(id, starting_1)

    case 1:
    show_hudmessage(id, starting_2)

    case 2:
    show_hudmessage(id, starting_3)

    case 3:
    show_hudmessage(id, starting_4)

    case 4:
    show_hudmessage(id, starting_5)

    case 5:
    show_hudmessage(id, starting_6)
    }
}

public PlayerSpawn(id)
{
   if(!is_user_alive(id))
   return
  
   set_task( 0.8, "HudMessage", id )
}


Прикрепленный файл  SpawnMessage.rar ( 1,4 килобайт ) Кол-во скачиваний: 125


Отредактировал: Legend21, - 23.2.2015, 14:26
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 7 раз
   Цитировать сообщение
Статус пользователя DezoKcu
сообщение 13.2.2015, 19:52
Сообщение #2


Стаж: 12 лет

Сообщений: 383
Благодарностей: 211
Полезность: 602

Зачем все так сложно?

Вариант1

Код
public plugin_init()
{
    register_dictionary("z_dez0_csdm.txt")
    register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
}


public event_round_start()
{
    set_task(2.0, "make_dhud")
}

public make_dhud()
{
    set_dhudmessage(0, 255, 50, -1.0, 0.7, 2, 5.0, 5.0, 0.02, 0.2)
    show_dhudmessage(0, "%L", LANG_PLAYER, "Z0_INFO1")
}



Вариант2

Код
public plugin_init()
{
    register_dictionary("z_dez0_csdm.txt")
}

public PlayerSpawn(id)
{
   if(!is_user_alive(id))
   return
  
   set_task(2.0, "make_dhud", id)
}

public make_dhud()
{
    set_dhudmessage(0, 255, 50, -1.0, 0.7, 2, 5.0, 5.0, 0.02, 0.2)
    show_dhudmessage(0, "%L", LANG_PLAYER, "Z0_INFO1")
}



Зачем лишние квары, когда все можно сделать через "мульти-ланг".

Отредактировал: DezoKcu, - 13.2.2015, 20:02
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legend21
сообщение 13.2.2015, 20:40
Сообщение #3
Стаж: 14 лет
Город: Винница

Сообщений: 604
Благодарностей: 229
Полезность: 561

Цитата(DezoKcu @ 13.2.2015, 19:52) *
Зачем лишние квары, когда все можно сделать через "мульти-ланг".


Специально для новичков, чтобы не использовать ^n
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 22.2.2015, 0:40
Сообщение #4


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

Цитата(DezoKcu @ 13.2.2015, 20:52) *
Зачем все так сложно?

Вариант1

Код
public plugin_init()
{
    register_dictionary("z_dez0_csdm.txt")
    register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
}


public event_round_start()
{
    set_task(2.0, "make_dhud")
}

public make_dhud()
{
    set_dhudmessage(0, 255, 50, -1.0, 0.7, 2, 5.0, 5.0, 0.02, 0.2)
    show_dhudmessage(0, "%L", LANG_PLAYER, "Z0_INFO1")
}



Вариант2

Код
public plugin_init()
{
    register_dictionary("z_dez0_csdm.txt")
}

public PlayerSpawn(id)
{
   if(!is_user_alive(id))
   return
  
   set_task(2.0, "make_dhud", id)
}

public make_dhud()
{
    set_dhudmessage(0, 255, 50, -1.0, 0.7, 2, 5.0, 5.0, 0.02, 0.2)
    show_dhudmessage(0, "%L", LANG_PLAYER, "Z0_INFO1")
}



Зачем лишние квары, когда все можно сделать через "мульти-ланг".

Можно полный исходник и где писать текст,а то немножко туплю :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя dima3113
сообщение 23.2.2015, 0:39
Сообщение #5
Стаж: 14 лет
Город: Днепр

Сообщений: 79
Благодарностей: 4
Полезность: 40

Цитата(ThePhoenix @ 22.2.2015, 1:40) *
Можно полный исходник и где писать текст,а то немножко туплю :)


Текст настраивается в отдельном конфиге.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя dima3113
сообщение 23.2.2015, 1:02
Сообщение #6
Стаж: 14 лет
Город: Днепр

Сообщений: 79
Благодарностей: 4
Полезность: 40

Забрал себе на csdm, сасибо
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Jlx7
сообщение 23.2.2015, 1:08
Сообщение #7


Стаж: 12 лет
Город: Moscow

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

Плагин отличный.
Было неплохо еще добавить:
Показ через время
Определенная подсказка с определенным звуком.
То есть например: !w[Внимание] Ляляля
!w будет проигрывать определенный звук и назначать цвет текста.(настройка через конфиг, а звуки bell1 bell2 bell3 lightswitch2).

(если уже плагин такой есть то сорри).


HI!!!!!!!!!!!!!!!!!!!!!!!!!!!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sdf
сообщение 13.8.2015, 16:43
Сообщение #8


Стаж: 13 лет

Сообщений: 721
Благодарностей: 208
Полезность: 466

как можно изменить время появления текста?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Immunity
сообщение 13.8.2015, 17:39
Сообщение #9
Стаж: 11 лет

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

Цитата(sdf @ 13.8.2015, 17:39) *
как можно изменить время появления текста?

Вот тут
set_task(2.0, "make_dhud", id) 2.0 - время в секундах.

Отредактировал: Immunity, - 13.8.2015, 17:39
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sashork
сообщение 4.9.2015, 22:08
Сообщение #10


Стаж: 16 лет

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

А можно как то сделать что бы каждый текст был своим цветом?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Starui
сообщение 6.9.2015, 14:13
Сообщение #11


Стаж: 11 лет

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

Можно сделать dhud?


Сделал сам, помоги другому.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 6.9.2015, 14:34
Сообщение #12


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

Starui, можно
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Starui
сообщение 6.9.2015, 14:46
Сообщение #13


Стаж: 11 лет

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

Цитата(Bloo @ 6.9.2015, 15:30) *
Starui, можно

Спасибо! А как? Можно код?


Сделал сам, помоги другому.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Starui
сообщение 6.9.2015, 14:54
Сообщение #14


Стаж: 11 лет

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

Пробовал сделать так, не получилось...
Код:
#include <amxmodx>
#include <hamsandwich>
#include <dhudmessage>

#define PLUGIN "PlayerSpawnMessage"
#define VERSION "1.0"
#define AUTHOR "I Am LeGenD"

new message_1, message_2, message_3, message_4, message_5, message_6
new position_x, position_y, red, green, blue

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

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

message_1 = register_cvar("message_1", "")
message_2 = register_cvar("message_2", "")
message_3 = register_cvar("message_3", "")
message_4 = register_cvar("message_4", "")
message_5 = register_cvar("message_5", "")
message_6 = register_cvar("message_6", "")

position_x = register_cvar("pos_x", "0.04")
position_y = register_cvar("pos_y", "0.71")

red = register_cvar("red", "000")
green = register_cvar("green", "255")
blue = register_cvar("blue", "255")

}

public plugin_cfg()
{
server_cmd("exec addons/amxmodx/configs/Spawn_message.cfg")
}

public hudMessage(id)
{
new starting_1[128], starting_2[128], starting_3[128], starting_4[128], starting_5[128], starting_6[128]

get_pcvar_string(message_1,starting_1,128)
get_pcvar_string(message_2,starting_2,128)
get_pcvar_string(message_3,starting_3,128)
get_pcvar_string(message_4,starting_4,128)
get_pcvar_string(message_5,starting_5,128)
get_pcvar_string(message_6,starting_6,128)

set_dhudmessage( get_pcvar_num(red), get_pcvar_num(green), get_pcvar_num(blue), get_pcvar_float(position_x), get_pcvar_float(position_y), 0, 5.5, 5.5, 0.5, 0.5, 3 )

switch(random_num(0,5))
{
case 0:
show_dhudmessage(id, starting_1)

case 1:
show_dhudmessage(id, starting_2)

case 2:
show_dhudmessage(id, starting_3)

case 3:
show_dhudmessage(id, starting_4)

case 4:
show_dhudmessage(id, starting_5)

case 5:
show_dhudmessage(id, starting_6)
}
}

public PlayerSpawn(id)
{
if(!is_user_alive(id))
return

set_task( 0.8, "HudMessage", id )
}


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


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

Код:
#include <amxmodx>
#include <hamsandwich>
#include <dhudmessage>

#define PLUGIN "PlayerSpawnMessage"
#define VERSION "1.0"
#define AUTHOR "I Am LeGenD"

new message_1, message_2, message_3, message_4, message_5, message_6
new position_x, position_y, red, green, blue

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

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

message_1 = register_cvar("message_1", "")
message_2 = register_cvar("message_2", "")
message_3 = register_cvar("message_3", "")
message_4 = register_cvar("message_4", "")
message_5 = register_cvar("message_5", "")
message_6 = register_cvar("message_6", "")

position_x = register_cvar("pos_x", "0.04")
position_y = register_cvar("pos_y", "0.71")

red = register_cvar("red", "000")
green = register_cvar("green", "255")
blue = register_cvar("blue", "255")

}

public plugin_cfg()
{
server_cmd("exec addons/amxmodx/configs/Spawn_message.cfg")
}

public HudMessage(id)
{
new starting_1[128], starting_2[128], starting_3[128], starting_4[128], starting_5[128], starting_6[128]

get_pcvar_string(message_1,starting_1,128)
get_pcvar_string(message_2,starting_2,128)
get_pcvar_string(message_3,starting_3,128)
get_pcvar_string(message_4,starting_4,128)
get_pcvar_string(message_5,starting_5,128)
get_pcvar_string(message_6,starting_6,128)

set_dhudmessage( get_pcvar_num(red), get_pcvar_num(green), get_pcvar_num(blue), get_pcvar_float(position_x), get_pcvar_float(position_y), 0, 5.5, 5.5, 0.5, 0.5, 3 )

switch(random_num(0,5))
{
case 0:
show_dhudmessage(id, starting_1)

case 1:
show_dhudmessage(id, starting_2)

case 2:
show_dhudmessage(id, starting_3)

case 3:
show_dhudmessage(id, starting_4)

case 4:
show_dhudmessage(id, starting_5)

case 5:
show_dhudmessage(id, starting_6)
}
}

public PlayerSpawn(id)
{
if(!is_user_alive(id))
return

set_task( 0.8, "HudMessage", id )
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Starui
сообщение 6.9.2015, 15:00
Сообщение #16


Стаж: 11 лет

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

Цитата(Bloo @ 6.9.2015, 15:50) *
Код:
#include <amxmodx>
#include <hamsandwich>
#include <dhudmessage>

#define PLUGIN "PlayerSpawnMessage"
#define VERSION "1.0"
#define AUTHOR "I Am LeGenD"

new message_1, message_2, message_3, message_4, message_5, message_6
new position_x, position_y, red, green, blue

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

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

message_1 = register_cvar("message_1", "")
message_2 = register_cvar("message_2", "")
message_3 = register_cvar("message_3", "")
message_4 = register_cvar("message_4", "")
message_5 = register_cvar("message_5", "")
message_6 = register_cvar("message_6", "")

position_x = register_cvar("pos_x", "0.04")
position_y = register_cvar("pos_y", "0.71")

red = register_cvar("red", "000")
green = register_cvar("green", "255")
blue = register_cvar("blue", "255")

}

public plugin_cfg()
{
server_cmd("exec addons/amxmodx/configs/Spawn_message.cfg")
}

public HudMessage(id)
{
new starting_1[128], starting_2[128], starting_3[128], starting_4[128], starting_5[128], starting_6[128]

get_pcvar_string(message_1,starting_1,128)
get_pcvar_string(message_2,starting_2,128)
get_pcvar_string(message_3,starting_3,128)
get_pcvar_string(message_4,starting_4,128)
get_pcvar_string(message_5,starting_5,128)
get_pcvar_string(message_6,starting_6,128)

set_dhudmessage( get_pcvar_num(red), get_pcvar_num(green), get_pcvar_num(blue), get_pcvar_float(position_x), get_pcvar_float(position_y), 0, 5.5, 5.5, 0.5, 0.5, 3 )

switch(random_num(0,5))
{
case 0:
show_dhudmessage(id, starting_1)

case 1:
show_dhudmessage(id, starting_2)

case 2:
show_dhudmessage(id, starting_3)

case 3:
show_dhudmessage(id, starting_4)

case 4:
show_dhudmessage(id, starting_5)

case 5:
show_dhudmessage(id, starting_6)
}
}

public PlayerSpawn(id)
{
if(!is_user_alive(id))
return

set_task( 0.8, "HudMessage", id )
}

Для корректной компиляции добавляйте в инклюиды dhudmessage.
Прикрепленный файл  dhudmessage.rar ( 1,12 килобайт ) Кол-во скачиваний: 14


Отредактировал: Starui, - 6.9.2015, 15:03


Сделал сам, помоги другому.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя OnlySteam
сообщение 6.9.2015, 16:05
Сообщение #17


Стаж: 11 лет

Сообщений: 420
Благодарностей: 96
Полезность: 178

Хороший плагин, побольше бы настроек (время показа подсказок,через какое время показываются подсказки 0 - при заходе и больше нет, тд). А сколько символов влезает в одну строку?

PS: как только разберусь с c-s.net как тут спасибо ставить). Обязательно поставлю, пока не нашел(
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Starui
сообщение 15.9.2015, 19:06
Сообщение #18


Стаж: 11 лет

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

Цитата(Immunity @ 13.8.2015, 18:34) *
Вот тут
set_task(2.0, "make_dhud", id) 2.0 - время в секундах.

Это не время показа hud!
Этот квар говорит о задержке в секундах перед показом.

Мне тоже нужно время показа.... Допишите кто нибудь код!


Сделал сам, помоги другому.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 15.9.2015, 19:34
Сообщение #19


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

Starui, время появления - когда будет появляться, так что непонятно какие претензии к ответу.
Время показа
Цитата
set_dhudmessage( get_pcvar_num(red), get_pcvar_num(green), get_pcvar_num(blue), get_pcvar_float(position_x), get_pcvar_float(position_y), 0, 5.5, 5.5, 0.5, 0.5, 3 )
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя shram47
сообщение 12.12.2015, 14:53
Сообщение #20


Стаж: 10 лет
Город: Москва

Сообщений: 222
Благодарностей: 68
Полезность: 173

Ошибочки при компиляции:
лог
Код:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team

Warning: Loose indentation on line 42
Warning: Loose indentation on line 48
Header size: 628 bytes
Code size: 2720 bytes
Data size: 2220 bytes
Stack/heap size: 16384 bytes; estimated max. usage=786 cells (3144 bytes)
Total requirements: 21952 bytes

2 Warnings.
Done.


Enough to hope for someone's help, I will do it myself and I will not ask anyone. I cope with children and can cope with amxx :thank_you:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: