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

zp оптимизация ice cube

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

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

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

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

zp оптимизация ice cube

Сообщение Егор Жануев » 31 окт 2017, 20:49

Всем привет. Можете подсказать есть ли тут что-то лишнее, или же тут всё хорошо.

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

#define ice_model "models/cub_ice.mdl"

new iceent[33]

public 
plugin_init() 
{
    
RegisterHam(Ham_Killed"player""kill_player")
    
RegisterHam(Ham_Spawn"player""spawn_player"1)
    
RegisterHam(Ham_Think"grenade""grenade_think")

    
register_logevent("round_end_new"2"1=Round_End")
}

public 
plugin_precache() 
{
    
precache_model(ice_model)
}

public 
round_end_new()
{
    static 
a
    
    
for(133a++) 
    {
        
ice_entity(a0)
    }
}

public 
kill_player(id
{    
    
ice_entity(id0)
}

public 
client_disconnect(id
{
    
ice_entity(id0)
}

public 
zp_user_infected_pre(id
{    
    
ice_entity(id0)
}
    
public 
zp_user_humanized_pre(id
{    
    
ice_entity(id0)
}

public 
zp_user_unfrozen(id
{    
    
ice_entity(id0)
}

public 
spawn_player(id
{
    
ice_entity(id0)
}

public 
grenade_think(entity)
{
    if (!
pev_valid(entity)) 
    {
        return 
HAM_IGNORED
    
}
    
    static 
Float:mgs_newFloat:tmp_new
    
    pev
(entitypev_dmgtimemgs_new)
    
    
tmp_new get_gametime()
    
    if (
mgs_new tmp_new
    {    
        return 
HAM_IGNORED
    
}
    
    if(
pev(entitypev_flTimeStepSound) == 3333)
    {
        static 
Float:origin[3], victimvictim = -1
        
        pev
(entitypev_originorigin)
        
        while ((
victim engfunc(EngFunc_FindEntityInSpherevictimorigin240.0)) != 0)
        {
            if (!
is_user_alive(victim) || !zp_get_user_zombie(victim)) 
            {
                continue
            }

            
set_task(0.1"frozen"victim
        }
    }
    
    return 
HAM_IGNORED
}

public 
frozen(id)
{
    static 
Float:m
    
    pev
(idpev_maxspeedm)
    
    if(
== 1.0
    {
        
ice_entity(id1
    }
}

stock ice_entity(idstatus
{
    if(
status)
    {
        static 
entFloat:cube_ice[3]
        
        if(!
is_user_alive(id) || !zp_get_user_zombie(id))
        {
            
ice_entity(id0)
            
            return
        }
        
        if(
is_valid_ent(iceent[id]))
        {
            if(
pev(iceent[id], pev_iuser3) != id)
            {
                if(
pev(iceent[id], pev_team) == 6969
                {
                    
remove_entity(iceent[id])
                }
            }
            else
            {
                
pev(idpev_origincube_ice)
                
                if(
pev(idpev_flags) & FL_DUCKING
                {
                    
cube_ice[2] -= 15.0
                
}
                else 
                {
                    
cube_ice[2] -= 35.0
                
}
        
                
entity_set_origin(iceent[id], cube_ice)
                
                return
            }
        }
        
        
pev(idpev_origincube_ice)
        
        if(
pev(idpev_flags) & FL_DUCKING
        {
            
cube_ice[2] -= 15.0
        
}
        else 
        {
            
cube_ice[2] -= 35.0
        
}
        
        
ent create_entity("info_target")
        
        
set_pev(entpev_classname"cube_ice_model")
        
        
entity_set_model(entice_model)
        
        
dllfunc(DLLFunc_Spawnent)
        
        
set_pev(entpev_solidSOLID_NOT)
        
set_pev(entpev_movetypeMOVETYPE_FLY)
        
        
entity_set_origin(entcube_ice)
        
entity_set_size(entFloat: { -3.0, -3.0, -3.0 }, Float:{ 3.03.03.0 })
        
        
set_pev(entpev_iuser3id)
        
set_pev(entpev_team6969)
        
        
set_rendering(entkRenderFxNone255255255kRenderTransAdd255)
        
        
iceent[id] = ent
    
}
    else
    {
        if(
is_valid_ent(iceent[id]))
        {
            if(
pev(iceent[id], pev_team) == 6969
            {
                
remove_entity(iceent[id])
            }
            
            
iceent[id] = -1
        
}
    }
Аватара пользователя
Егор Жануев
 
Сообщения: 11
Зарегистрирован: 08 окт 2017, 21:47
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.
Языки программирования: Pawn

Re: zp оптимизация ice cube

Сообщение артист666 » 31 окт 2017, 21:30

Работает? Ошибки есть?
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: zp оптимизация ice cube

Сообщение Егор Жануев » 31 окт 2017, 21:45

артист666 писал(а):Работает? Ошибки есть?


Работает. Ошибок нет.
Аватара пользователя
Егор Жануев
 
Сообщения: 11
Зарегистрирован: 08 окт 2017, 21:47
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.
Языки программирования: Pawn

Re: zp оптимизация ice cube

Сообщение артист666 » 31 окт 2017, 22:41

Значит всё нормально.
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn


Вернуться в Скриптинг

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

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