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

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

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

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

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер
2 страниц V   1 2

Глючит HUD

Simbo
сообщение 26.6.2012, 19:17
Сообщение #1
Стаж: 14 лет

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

Что в этом плагене такого что серв падает? вроде же обычное HUD сообщение!
HUD
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "PLUGIN "
#define VERSION "VERSION"
#define AUTHOR "AUTHOR"

#define HUD_FORMAT 000, 255, 000, 0.02, 0.21, 0, 1.0, 1.0, 0.1, 0.2, 1

new iMaxplayers

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
set_task(1.0, "function", _, _, _, "b")
iMaxplayers = get_maxplayers()
}

public function()
{
for(new i = 1; i <= iMaxplayers; i++)
{
if(!is_user_alive(i) && is_user_connected(i))
{
set_hudmessage(HUD_FORMAT)
show_hudmessage(i, "Текст сообщения")
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
noskill
сообщение 26.6.2012, 19:22
Сообщение #2
Стаж: 14 лет

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

дебаг включи и узнаешь
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fred Perry
сообщение 26.6.2012, 19:23
Сообщение #3


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

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Код
#define HUD_FORMAT 000, 255, 000, 0.02, 0.21, 0, 1.0, 1.0, 0.1, 0.2, 1

Зачем изобретать велосипед?
Код
set_task(1.0, "function", _, _, _, "b")

Сделай проверку, если пользователь отключился (ремув таск)


You become responsible, forever, for what you have tamed
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя RedL1ne
сообщение 26.6.2012, 19:24
Сообщение #4


Стаж: 15 лет

Сообщений: 3828
Благодарностей: 1854
Полезность: 876

страшновато написан плаг
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
noskill
сообщение 26.6.2012, 19:25
Сообщение #5
Стаж: 14 лет

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

Fred Perry, чтобы не рыться в плагине, если что-то поменять нужно
для таких плагинов несущественно, но иногда по привычке вписываешь в дефайны что нужно и что ненужно:D

и да, в plugin_init таск не нужен
лучше в client_putinserver
и проверка is_user_connected(i) не нужна

Отредактировал: csnetua, - 26.6.2012, 19:29
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Simbo
сообщение 26.6.2012, 19:29
Сообщение #6
Стаж: 14 лет

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

Эм... плагин мне дал один из топовых форумчан... сам я только некоторые изменения в скрипт могу вносить...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
noskill
сообщение 26.6.2012, 19:35
Сообщение #7
Стаж: 14 лет

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

Цитата(csnetua @ 26.6.2012, 20:22) *
дебаг включи и узнаешь
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Andrei
сообщение 26.6.2012, 19:35
Сообщение #8


Стаж: 15 лет

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

Цикл и не нужен.

show_hudmessage(0, "Текст сообщения")
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fred Perry
сообщение 26.6.2012, 19:37
Сообщение #9


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

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Цитата(csnetua @ 26.6.2012, 20:25) *
Fred Perry, чтобы не рыться в плагине, если что-то поменять нужно
для таких плагинов несущественно, но иногда по привычке вписываешь в дефайны что нужно и что ненужно:D

Поэтому я и написал. Тут всего один ХУД, вообще плагин в 15 строк, по-этому не вижу в этом никакого смысла.


You become responsible, forever, for what you have tamed
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
noskill
сообщение 26.6.2012, 19:38
Сообщение #10
Стаж: 14 лет

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

Bos93,
Цитата
!is_user_alive(i)


Отредактировал: csnetua, - 26.6.2012, 19:38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fred Perry
сообщение 26.6.2012, 19:44
Сообщение #11


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

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Типа так
Код
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "PLUGIN "
#define VERSION "VERSION"
#define AUTHOR "AUTHOR"

new iMaxplayers

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
iMaxplayers = get_maxplayers()
}

public client_putinserver(i){
set_task(1.0, "function", _, _, _, "b")
}

public function(i)
{
for(new i = 1; i <= iMaxplayers; i++)
{
if(!is_user_alive(i) && is_user_connected(i))
{
set_hudmessage(000, 255, 000, 0.02, 0.21, 0, 1.0, 1.0, 0.1, 0.2, 1)
show_hudmessage(i, "Текст сообщения")
}
}
}


You become responsible, forever, for what you have tamed
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 26.6.2012, 19:51
Сообщение #12


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

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


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

Fred Perry,
скорее как-то так:
Скрытый текст
Код
#include <amxmodx>

#define PLUGIN "PLUGIN"
#define VERSION "VERSION"
#define AUTHOR "AUTHOR"

#define TID_HUD 14888

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

public client_putinserver( id )
{
    set_task( 1.0, "function",  id + TID_HUD, _, _, "b" )
}

public client_disconnect( id )
{
    remove_task( id + TID_HUD )
}

public function( id )
{
    id -= TID_HUD
    if( !is_user_alive( id ) )
    {
        set_hudmessage( 0, 255, 0, 0.02, 0.21, 0, 1.0, 1.0, 0.1, 0.2, 1 )
        show_hudmessage( id, "Текст сообщения" )
    }
}


хотя тут лучше synchud юзать

Отредактировал: AndrewZ, - 26.6.2012, 19:56
Причина: ошибчка


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


Стаж: 15 лет

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

Скорее так:D

Код
#include < amxmodx >

#define HUD_FORMAT 000, 255, 000, 0.02, 0.21, 0, 1.0, 1.0, 0.1, 0.2, 1

public plugin_init()
{
    register_plugin("x", "x", "x");
}

public client_putinserver( pPlayer )
{
    set_task( 1.0, "Show__HUD", pPlayer, _, _, "b" );
}

public client_disconnect( pPlayer )
{
    remove_task( pPlayer );
}

public Show__HUD( pPlayer )
{
    if( !is_user_alive( pPlayer) && is_user_connected( pPlayer ) )
    {
        set_hudmessage(HUD_FORMAT);
        show_hudmessage( pPlayer , "Текст сообщения" );
    }
}

Если один таск в плагине,то TID_HUD твой и не нужен.

Просто с проверкой на if( !is_user_alive( i ) ) Будут ошибки invalid player поэтому необходимость в этой проверке + на законнекченность.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fred Perry
сообщение 26.6.2012, 19:57
Сообщение #14


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

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

А это надо? Вдруг несколько каналов ХУД. А так будет искать свободный и не будет перекрытия.
Кое-что
Цитата
set_hudmessage( 0, 255, 0, 0.02, 0.21, 0, 1.0, 1.0, 0.1, 0.2, 1 )

=>
Цитата
set_hudmessage( 0, 255, 0, 0.02, 0.21, 0, 1.0, 1.0, 0.1, 0.2, -1 )


You become responsible, forever, for what you have tamed
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 26.6.2012, 19:59
Сообщение #15


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

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


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

Цитата
Если один таск в плагине,то TID_HUD твой и не нужен.

Это да, но вдруг там появится еще таск, кто знает :D

Цитата
Просто с проверкой на if( !is_user_alive( i ) ) Будут ошибки invalid player поэтому необходимость в этой проверке + на законнекченность.

никогда не видел такого.


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

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

Fred Perry, так он забьёт все каналы
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Simbo
сообщение 26.6.2012, 20:01
Сообщение #17
Стаж: 14 лет

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

Форумчане, дайте пазялусто исходник, плагина, который бы не ложил сервер спати, и искал свободный канал для сообщения!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
noskill
сообщение 26.6.2012, 20:02
Сообщение #18
Стаж: 14 лет

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

Цитата(Simbo @ 26.6.2012, 21:01) *
и искал свободный канал для сообщения!

это нереально, у тебя кроме этого сообщения ничего не будет отображаться
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fred Perry
сообщение 26.6.2012, 20:02
Сообщение #19


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

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Цитата(Simbo @ 26.6.2012, 21:01) *
и искал свободный канал для сообщения!

На это забей.
Я так к слову, просто сам не очень, поэтому интересуюсь.


You become responsible, forever, for what you have tamed
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 26.6.2012, 20:03
Сообщение #20


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

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


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

Мне так больше нравится:
Скрытый текст
Код
#include <amxmodx>

#define PLUGIN "PLUGIN"
#define VERSION "VERSION"
#define AUTHOR "AUTHOR"

#define TID_HUD 14888

new g_MsgSync

public plugin_init()
{
    register_plugin( PLUGIN, VERSION, AUTHOR )
    g_MsgSync = CreateHudSyncObj()
}

public client_putinserver( id )
{
    set_task( 1.0, "function",  id + TID_HUD, _, _, "b" )
}

public client_disconnect( id )
{
    remove_task( id + TID_HUD )
}

public function( id )
{
    id -= TID_HUD

    if( !is_user_alive( id ) )
    {
        set_hudmessage( 0, 255, 0, 0.02, 0.21, 0, 1.0, 1.0, 0.1, 0.2, -1 )
        ShowSyncHudMsg( id, g_MsgSync, "Текст сообщения" )
    }
}


Отредактировал: AndrewZ, - 26.6.2012, 20:03


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