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

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

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

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

HUD по центру

, Помогите сделать HUD по центру
staff2517
сообщение 10.9.2014, 23:03
Сообщение #1
Стаж: 12 лет

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

Всем привет, использую плагин авто-рестарта, помогите сделать чтобы сообщение (Рестарт раунда через %i секунд!) было по центру чуть выше прицела.
Исходник
#include <amxmodx>

#define AUTORR_TIME 35 // Auto Restart Time
#define AUTORR_LIMIT 1 // Количество рестартов

#define TASK_ID_ARR_COUNTDOWN 8854

new message[128]

new g_arr_round
new g_arr_HudSync
new g_arr_countdown

public plugin_init()
{
register_plugin("AutoRestart", "1.0", "neygomon")

register_event("ResetHUD", "event_reset_hud", "be")
register_event("TextMsg", "event_start_game", "a", "2=#Game_Commencing")
register_event("HLTV", "event_start_round", "a", "1=0", "2=0")

g_arr_HudSync = CreateHudSyncObj()
}

public task_arr_countdown()
{
if(g_arr_countdown--)
{
format(message, sizeof(message) - 1, "Рестарт раунда через %i секунд!", g_arr_countdown)
if(g_arr_countdown < AUTORR_LIMIT) set_cvar_num("sv_restart", 1)
set_hudmessage(220, 160, 0, -1.0, 0.8, 0, 0.0, 1.03, 0.0, 0.0, 5)
show_hudmsg(0)
set_task(1.0, "task_arr_countdown", TASK_ID_ARR_COUNTDOWN)
}
else
{
format(message, sizeof(message) - 1, "LIVE! LIVE! LIVE!^nУдачи и весёлой игры!")
set_hudmessage(100, 200, 0, -1.0, 0.8, 0, 0.0, 3.0, 0.0, 2.0, 5)
set_task(1.0, "task_arr_countlast")
}
}

public task_arr_countlast()
{
if(task_exists(TASK_ID_ARR_COUNTDOWN)) remove_task(TASK_ID_ARR_COUNTDOWN)
show_hudmsg(0)
}

public event_start_game() g_arr_round = 0

public event_start_round()
{
if(++g_arr_round == 1)
{
if(task_exists(TASK_ID_ARR_COUNTDOWN)) return
g_arr_countdown = AUTORR_TIME
set_task(1.0, "task_arr_countdown", TASK_ID_ARR_COUNTDOWN)
}
return
}

public event_reset_hud(id)
{
if(task_exists(TASK_ID_ARR_COUNTDOWN)) show_hudmsg(id)
}

show_hudmsg(id)
{
ShowSyncHudMsg(id, g_arr_HudSync, "%s", message)
}

public plugin_end()
{
if(task_exists(TASK_ID_ARR_COUNTDOWN)) remove_task(TASK_ID_ARR_COUNTDOWN)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя l3x1s
сообщение 10.9.2014, 23:26
Сообщение #2


Стаж: 17 лет

Сообщений: 495
Благодарностей: 300
Полезность: 543

Держи, отредактируй под себя, музыку можешь вырезать
Код:
#include <amxmodx>
#include <amxmisc>

new nTimer, nMsg

public plugin_init()
{
register_plugin("Auto Restart", "1.0", "Jenek")

nTimer = 55
set_task(1.0, "rr_timer", _, _, _, "a", 55)

nMsg = CreateHudSyncObj()
}

public plugin_precache()
{
precache_sound("misc/3axoguHe6ouc9/s.wav")
precache_sound("misc/3axoguHe6ouc9/1.wav")
precache_sound("misc/3axoguHe6ouc9/2.wav")
precache_sound("misc/3axoguHe6ouc9/3.wav")
precache_sound("misc/3axoguHe6ouc9/4.wav")
precache_sound("misc/3axoguHe6ouc9/5.wav")
}

public rr_timer()
{
set_hudmessage(0, 255, 0, 0.70, 0.30, 0, 6.0, 2.0)
ShowSyncHudMsg(0, nMsg, "Заходи Не Бойся, Выходи Не Плачь!^nОжидание игроков!^nЕще %d сек...", nTimer)
switch(nTimer)
{
case 10: client_cmd(0, "spk misc/3axoguHe6ouc9/s.wav")
case 5: client_cmd(0, "spk misc/3axoguHe6ouc9/5.wav")
case 4: client_cmd(0, "spk misc/3axoguHe6ouc9/4.wav")
case 3: client_cmd(0, "spk misc/3axoguHe6ouc9/3.wav")
case 2: client_cmd(0, "spk misc/3axoguHe6ouc9/2.wav")
case 1: client_cmd(0, "spk misc/3axoguHe6ouc9/1.wav")

}
if(nTimer == 1)
{
server_cmd("sv_restartround 1")
set_task(1.0, "rr_end")
}
nTimer--
}

public rr_end()
{
set_hudmessage(0, 255, 0, 0.70, 0.30, 0, 6.0, 8.0)
ShowSyncHudMsg(0, nMsg, "Заходи Не Бойся, Выходи Не Плачь!^nОжидание завершено!^nПриятной игры!")
client_cmd(0, "mp3 play russian-hill/rus")
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1251\\ deff0\\ deflang1049{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 11.9.2014, 15:37
Сообщение #3
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

staff2517,
идеально по центру не выровнять. У каждого игрока разное разрешение в игре.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 11.9.2014, 15:44
Сообщение #4


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Цитата(Orty_Hart @ 11.9.2014, 15:37) *
staff2517,
идеально по центру не выровнять. У каждого игрока разное разрешение в игре.

Нельзя плагинами определить какое разрешение в игрока ?

На стиме то вроде как можно вставить скрипт в мотд окно определяющее размер окна, далее записать в БД ип и размер окна , далее плагином амхх брать данные и выставлять из основе местоположение ХУД окна. Извращение правда..


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 11.9.2014, 15:52
Сообщение #5
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(ssx @ 11.9.2014, 15:44) *
Нельзя плагинами определить какое разрешение в игрока ?

Нельзя


Цитата(ssx @ 11.9.2014, 15:44) *
Нельзя плагинами определить какое разрешение в игрока ?

далее записать в БД ип и размер окна

IP не является уникальным идентефикатором
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя admir
сообщение 11.9.2014, 16:37
Сообщение #6
Стаж: 13 лет

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

что значит нельзя hud по центру, издеваетесь? можно, никаким образом к разрешению экрана это не относиться. Координаты в hudmessage относительно центра и двигаются как-бы...
Код:
native set_hudmessage(red=200, green=100, blue=0, Float:x=-1.0, Float:y=0.35, effects=0, Float:fxtime=6.0, Float:holdtime=12.0, Float:fadeintime=0.1, Float:fadeouttime=0.2,channel=4);


Float:x=0.44 - Координата X, идёт слева направо, 0.0 слева, 1.0 справа, -1.0 по центру
Float:y=0.35 - Координата Y, идёт сверху вниз, 0.0 сверху, 1.0 снизу, -1.0 по центру

Отредактировал: admir, - 11.9.2014, 16:38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 11.9.2014, 16:44
Сообщение #7
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

admir,
Цитата(staff2517 @ 10.9.2014, 23:03) *
по центру чуть выше прицела.

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя admir
сообщение 11.9.2014, 16:49
Сообщение #8
Стаж: 13 лет

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

voed, берется и меняется координата Y, а X координата ставиться -1.0, в чем проблема? По вашему bullet damage, amx_killer как реализовано? :D наугад выводиться?

Отредактировал: admir, - 11.9.2014, 16:51
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 11.9.2014, 18:04
Сообщение #9
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

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