Русское сообщество по скриптингу

Граната телепорт / краш сервера

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только вопросов по AMX Mod X и его плагинам.

Граната телепорт / краш сервера

Сообщение dvahitov95 » 23 сен 2017, 16:21

Всем привет. Что не так с этим плагином? Сервер падает, после того как кидаешь дымовую гранату.

Код: Выделить всё
#include <amxmodx>
#include <fakemeta>

#define SMOKE_SCALE 30
#define SMOKE_FRAMERATE 12
#define SMOKE_GROUND_OFFSET 6

new const g_sound_explosion[] = "weapons/sg_explode.wav"
new const g_classname_grenade[] = "grenade"

new const Float:g_sign[4][2] = {{1.01.0}, {1.0, -1.0}, {-1.0, -1.0}, {-1.01.0}}

new 
g_spriteid_steam1g_eventid_createsmoke

public plugin_init()
{
    
register_plugin("Teleport grenade""0.1""VEN")
    
register_forward(FM_EmitSound"forward_emitsound")
    
register_forward(FM_PlaybackEvent"forward_playbackevent")
    
g_spriteid_steam1 engfunc(EngFunc_PrecacheModel"sprites/steam1.spr")
    
g_eventid_createsmoke engfunc(EngFunc_PrecacheEvent1"events/createsmoke.sc")
}

public 
forward_emitsound(entchannel, const sound[])
{
    if(!
equal(soundg_sound_explosion) || !is_grenade(ent))
    {
        return 
FMRES_IGNORED
    
}

    static 
idFloat:origin[3]
    
id pev(entpev_owner)
    
pev(entpev_originorigin)
    
engfunc(EngFunc_EmitSoundentCHAN_WEAPONg_sound_explosionVOL_NORMATTN_NORM0PITCH_NORM)
    
engfunc(EngFunc_RemoveEntityent)
    
origin[2] += SMOKE_GROUND_OFFSET
    create_smoke
(origin)
    if(
is_user_alive(id))
    {
        static 
Float:mins[3], hull
        pev
(idpev_minsmins)
        
origin[2] -= mins[2] + SMOKE_GROUND_OFFSET
        hull 
pev(idpev_flags) & FL_DUCKING HULL_HEAD HULL_HUMAN
        
if(is_hull_vacant(originhull))
        {
            
engfunc(EngFunc_SetOriginidorigin)
        }
        else
        {
            static 
Float:vec[3]
            
vec[2] = origin[2]
            for(new 
isizeof g_sign; ++i)
            {
                
vec[0] = origin[0] - mins[0] * g_sign[i][0]
                
vec[1] = origin[1] - mins[1] * g_sign[i][1]
                if(
is_hull_vacant(vechull))
                {
                    
engfunc(EngFunc_SetOriginidvec)
                    break;
                }
            }
        }
    }
    return 
FMRES_SUPERCEDE
}

public 
forward_playbackevent(flagsinvokereventindex)
{
    if(
eventindex == g_eventid_createsmoke)
    {
        return 
FMRES_SUPERCEDE
    
}
    return 
FMRES_IGNORED
}

bool:is_grenade(ent)
{
    if(!
pev_valid(ent)) return false;
    static 
classname[sizeof g_classname_grenade 1]
    
pev(entpev_classnameclassnamesizeof g_classname_grenade)
    if(
equal(classnameg_classname_grenade)) return true;
    return 
false;
}

create_smoke(const Float:origin[3])
{
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYorigin0)
    
write_byte(TE_SMOKE)
    
engfunc(EngFunc_WriteCoordorigin[0])
    
engfunc(EngFunc_WriteCoordorigin[1])
    
engfunc(EngFunc_WriteCoordorigin[2])
    
write_short(g_spriteid_steam1)
    
write_byte(SMOKE_SCALE)
    
write_byte(SMOKE_FRAMERATE)
    
message_end()
}

stock bool:is_hull_vacant(const Float:origin[3], hull)
{
    new 
tr 0
    engfunc
(EngFunc_TraceHulloriginorigin0hull0tr)
    if(!
get_tr2(trTR_StartSolid) && !get_tr2(trTR_AllSolid) && get_tr2(trTR_InOpen)) return true;
    return 
false;


Вы должны зарегистрироваться, чтобы видеть ссылки.
Аватара пользователя
dvahitov95
 
Сообщения: 133
Зарегистрирован: 07 авг 2017, 17:48
Благодарил (а): 16 раз.
Поблагодарили: 1 раз.
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Граната телепорт / краш сервера

Сообщение Subb98 » 23 сен 2017, 17:07

А логи при падении сервера вы не хотите предоставить?
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Граната телепорт / краш сервера

Сообщение dvahitov95 » 24 сен 2017, 13:47

Subb98 писал(а):А логи при падении сервера вы не хотите предоставить?

А там ничего такого нет. Обычные логи.
Аватара пользователя
dvahitov95
 
Сообщения: 133
Зарегистрирован: 07 авг 2017, 17:48
Благодарил (а): 16 раз.
Поблагодарили: 1 раз.
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Граната телепорт / краш сервера

Сообщение Subb98 » 24 сен 2017, 13:47

dvahitov95, тогда нам нужен предсказатель.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Граната телепорт / краш сервера

Сообщение Lethargy » 24 сен 2017, 18:48

dvahitov95 писал(а):А там ничего такого нет. Обычные логи.

Попробуй в параметрах запуска добавить +log on +developer 3
Lawful evil ]:->

Были бы в языке pawn объекты, было бы круто. Почему нет объектов в павне?
Аватара пользователя
Lethargy
 
Сообщения: 179
Зарегистрирован: 12 мар 2017, 17:25
Благодарил (а): 34 раз.
Поблагодарили: 15 раз.
Языки программирования: За 3-4 часа любой язык

Re: Граната телепорт / краш сервера

Сообщение DeMNiX » 25 сен 2017, 13:03

facepalm

Код: Выделить всё
engfunc(EngFunc_RemoveEntityent)  


=>

Код: Выделить всё
set_pev(entpev_flagsFL_KILLME
Работа с моделями для кс 1.6
Telegram @DeMNiX
vk com/sbalburov
Аватара пользователя
DeMNiX
 
Сообщения: 177
Зарегистрирован: 24 сен 2011, 17:48
Благодарил (а): 25 раз.
Поблагодарили: 37 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6


Вернуться в Вопросы по AMXX и его плагинам

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 10