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

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

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

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

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

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

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

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

Damager

, Исправление ошибок в логах
Статус пользователя МУЖЫК
сообщение 3.12.2012, 19:28
Сообщение #1


Стаж: 18 лет

Сообщений: 210
Благодарностей: 21
Полезность: 77

Доброго времени суток, форумчане.

Сразу скажу - я пользовался поиском, гуглил, толкового ничего не нашел.

у меня есть плагин damager.amxx , который меня устраивает:

Код
#include <amxmodx>
#include <fakemeta>

new const PLUGIN[] = "Damager"
new const VERSION[] = "2.0"
new const AUTHOR[] = "Prayer"

new g_MsgSync
new g_MsgSync2

new pid
new damage

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_event("Damage", "EVENT_Damage", "b", "2!0", "3=0", "4!0")
    
    g_MsgSync = CreateHudSyncObj()
    g_MsgSync2 = CreateHudSyncObj()
}

public EVENT_Damage(id)
{
    if(pev_valid(id))
    {
        pid = get_user_attacker(id)
        damage = read_data(2)
        
        set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
        ShowSyncHudMsg(id, g_MsgSync2, "%i", damage)
        
        if(pev(pid, pev_flags) & FL_CLIENT)
        {
            set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
            ShowSyncHudMsg(pid, g_MsgSync, "%i", damage)
        }
    }
}


но изза него в логах есть ошибка :

Цитата
L 12/03/2012 - 17:16:24: Start of error session.
L 12/03/2012 - 17:16:24: Info (map "de_aztec") (file "addons/amxmodx/logs/error_20121203.log")
L 12/03/2012 - 17:16:24: [FAKEMETA] Invalid entity
L 12/03/2012 - 17:16:24: [AMXX] Displaying debug trace (plugin "damager.amxx")
L 12/03/2012 - 17:16:24: [AMXX] Run time error 10: native error (native "pev")
L 12/03/2012 - 17:16:24: [AMXX] [0] damager.sma::EVENT_Damage (line 34)


на одном из сайтов предложили поменять строку

if(pev_valid(id)) на if(!pev_valid(ent))

я в скриптинге не силен, но плагин после этого не компилируется.

так же, ктото писал, что дело в этой строке:

if(pev(pid, pev_flags) & FL_CLIENT) ну так то и я понимаю, что дело в ней, ибо это и есть та самая 34 строка. но что именно тут не так?

на другом форуме преложили другой код этого плагина:

Код
#include <amxmodx>

#define PLUGIN "Damager"
#define AUTHOR "2.0"
#define VERSION "Prayer"

#define MAX_PLAYERS    32

new const Float:g_flCoords[][] =
{
    {0.50, 0.40},
    {0.56, 0.44},
    {0.60, 0.50},
    {0.56, 0.56},
    {0.50, 0.60},
    {0.44, 0.56},
    {0.40, 0.50},
    {0.44, 0.44}
}

new g_iPlayerPos[MAX_PLAYERS+1]

new g_iMaxPlayers
new g_pCvarEnabled

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

    g_pCvarEnabled = register_cvar("bullet_damage", "1")

    register_event("Damage", "Event_Damage", "b", "2>0", "3=0")

    g_iMaxPlayers = get_maxplayers()
}

public Event_Damage( iVictim )
{
    if( get_pcvar_num(g_pCvarEnabled) && (read_data(4) || read_data(5) || read_data(6)) )
    {
        new id = get_user_attacker(iVictim)
        if( (1 <= id <= g_iMaxPlayers) && is_user_connected(id) )
        {
            new iPos = ++g_iPlayerPos[id]
            if( iPos == sizeof(g_flCoords) )
            {
                iPos = g_iPlayerPos[id] = 0
            }
            set_hudmessage(0, 40, 80, Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1)
            show_hudmessage(id, "%d", read_data(2))
        }
    }
}


по поводу ошибок ничего сказать не могу, т.к. пол часа назад его поставил, но отображение урона мне там вообще не нравится. в первом варианте отображение намного лучше и удобнее.

вопрос:

1. можно ли как-то исправить первый код. чтобы не было ошибки про которую я написал
2. или же во второй плагин запихать ту часть кода , которая отвечает за отображение урона, в первом плагине.

всем кто помог, заранее спасибо!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя МУЖЫК
сообщение 5.12.2012, 18:52
Сообщение #2


Стаж: 18 лет

Сообщений: 210
Благодарностей: 21
Полезность: 77

никто не знает?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 5.12.2012, 20:45
Сообщение #3


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

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(МУЖЫК @ 5.12.2012, 20:52) *
никто не знает?

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