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

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

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

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

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

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

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

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

Parachute

WMP
сообщение 24.11.2012, 21:10
Сообщение #1
Стаж: 13 лет

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

Возник вопрос, как сделать парашют для определенного флага? Имеется ввиду, игрок должен иметь данный флаг, чтобы он мог использовать парашют. Знаю, что нужно ADMIN_LEVEL_FLAG, но куда его вставлять?
Скрытый текст
/*
Created Fixed by sector specially for www.chatbox.do.am
Web. Help www.chatbox.do.am
*/

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <fun>

new para_ent[33]

public plugin_init()
{
register_plugin("Parachute", "1.3 Fixed", "sector")

register_event("ResetHUD", "newSpawn", "be")
register_event("DeathMsg", "death_event", "a")
}

public plugin_natives()
{
set_native_filter("native_filter")
}

public native_filter(const name[], index, trap)
{
if (!trap) return PLUGIN_HANDLED
return PLUGIN_CONTINUE
}

public plugin_precache()
{
precache_model("models/parachute.mdl")
}

public client_connect(id)
{
parachute_reset(id)
}

public client_disconnect(id)
{
parachute_reset(id)
}

public death_event()
{
new id = read_data(2)
parachute_reset(id)
}

parachute_reset(id)
{
if(para_ent[id] > 0)
{
if (is_valid_ent(para_ent[id]))
{
remove_entity(para_ent[id])
}
}

if(is_user_alive(id)) set_user_gravity(id, 1.0)
para_ent[id] = 0
}

public newSpawn(id)
{
if(para_ent[id] > 0)
{
remove_entity(para_ent[id])
set_user_gravity(id, 1.0)
para_ent[id] = 0
}
}

public client_PreThink(id)
{
if(!is_user_alive(id)) return

new Float:fallspeed = 100 * -1.0
new Float:frame
new button = get_user_button(id)
new oldbutton = get_user_oldbutton(id)
new flags = get_entity_flags(id)
if(para_ent[id] > 0 && (flags & FL_ONGROUND))
{
if(get_user_gravity(id) == 0.1) set_user_gravity(id, 1.0)
{
if(entity_get_int(para_ent[id],EV_INT_sequence) != 2)
{
entity_set_int(para_ent[id], EV_INT_sequence, 2)
entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
entity_set_float(para_ent[id], EV_FL_frame, 0.0)
entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
entity_set_float(para_ent[id], EV_FL_animtime, 0.0)
entity_set_float(para_ent[id], EV_FL_framerate, 0.0)
return
}
frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 2.0
entity_set_float(para_ent[id],EV_FL_fuser1,frame)
entity_set_float(para_ent[id],EV_FL_frame,frame)
if(frame > 254.0)
{
remove_entity(para_ent[id])
para_ent[id] = 0
}
else
{
remove_entity(para_ent[id])
set_user_gravity(id, 1.0)
para_ent[id] = 0
}
return
}
}
if (button & IN_USE)
{
new Float:velocity[3]
entity_get_vector(id, EV_VEC_velocity, velocity)
if(velocity[2] < 0.0)
{
if(para_ent[id] <= 0)
{
para_ent[id] = create_entity("info_target")
if(para_ent[id] > 0)
{
entity_set_string(para_ent[id],EV_SZ_classname,"parachute")
entity_set_edict(para_ent[id], EV_ENT_aiment, id)
entity_set_edict(para_ent[id], EV_ENT_owner, id)
entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)
entity_set_model(para_ent[id], "models/parachute.mdl")
entity_set_int(para_ent[id], EV_INT_sequence, 0)
entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
entity_set_float(para_ent[id], EV_FL_frame, 0.0)
entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
}
}
if(para_ent[id] > 0)
{
entity_set_int(id, EV_INT_sequence, 3)
entity_set_int(id, EV_INT_gaitsequence, 1)
entity_set_float(id, EV_FL_frame, 1.0)
entity_set_float(id, EV_FL_framerate, 1.0)
set_user_gravity(id, 0.1)
velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed
entity_set_vector(id, EV_VEC_velocity, velocity)
if(entity_get_int(para_ent[id],EV_INT_sequence) == 0)
{
frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 1.0
entity_set_float(para_ent[id],EV_FL_fuser1,frame)
entity_set_float(para_ent[id],EV_FL_frame,frame)
if (frame > 100.0)
{
entity_set_float(para_ent[id], EV_FL_animtime, 0.0)
entity_set_float(para_ent[id], EV_FL_framerate, 0.4)
entity_set_int(para_ent[id], EV_INT_sequence, 1)
entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
entity_set_float(para_ent[id], EV_FL_frame, 0.0)
entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
}
}
}
}
else if(para_ent[id] > 0)
{
remove_entity(para_ent[id])
set_user_gravity(id, 1.0)
para_ent[id] = 0
}
}
else if((oldbutton & IN_USE) && para_ent[id] > 0 )
{
remove_entity(para_ent[id])
set_user_gravity(id, 1.0)
para_ent[id] = 0
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
underwoker
сообщение 24.11.2012, 21:24
Сообщение #2
Стаж: 56 лет


Благодарностей:

Скрытый текст
Код
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <fun>

new para_ent[33]

public plugin_init()
{
    register_plugin("Parachute", "1.3 Fixed", "sector")

    register_event("ResetHUD", "newSpawn", "be")
    register_event("DeathMsg", "death_event", "a")
}

public plugin_natives()
{
    set_native_filter("native_filter")
}

public native_filter(const name[], index, trap)
{
    if (!trap) return PLUGIN_HANDLED
    return PLUGIN_CONTINUE
}

public plugin_precache()
{
    precache_model("models/parachute.mdl")
}

public client_connect(id)
{
    if(get_user_flags(id) & ADMIN_KICK)
    {
        parachute_reset(id)
    }

    public client_disconnect(id)
    {
        parachute_reset(id)
    }

    public death_event()
    {
        new id = read_data(2)
        parachute_reset(id)
    }

    parachute_reset(id)
    {
        if(para_ent[id] > 0)
        {
            if (is_valid_ent(para_ent[id]))
            {
                remove_entity(para_ent[id])
            }
        }

        if(is_user_alive(id)) set_user_gravity(id, 1.0)
        para_ent[id] = 0
    }

    public newSpawn(id)
    {
        if(para_ent[id] > 0)
        {
            remove_entity(para_ent[id])
            set_user_gravity(id, 1.0)
            para_ent[id] = 0
        }
    }

    public client_PreThink(id)
    {
        if(!is_user_alive(id)) return

        new Float:fallspeed = 100 * -1.0
        new Float:frame
        new button = get_user_button(id)
        new oldbutton = get_user_oldbutton(id)
        new flags = get_entity_flags(id)
        if(para_ent[id] > 0 && (flags & FL_ONGROUND))
        {
            if(get_user_gravity(id) == 0.1) set_user_gravity(id, 1.0)
            {
                if(entity_get_int(para_ent[id],EV_INT_sequence) != 2)
                {
                    entity_set_int(para_ent[id], EV_INT_sequence, 2)
                    entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
                    entity_set_float(para_ent[id], EV_FL_frame, 0.0)
                    entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
                    entity_set_float(para_ent[id], EV_FL_animtime, 0.0)
                    entity_set_float(para_ent[id], EV_FL_framerate, 0.0)
                    return
                }
                frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 2.0
                entity_set_float(para_ent[id],EV_FL_fuser1,frame)
                entity_set_float(para_ent[id],EV_FL_frame,frame)
                if(frame > 254.0)
                {
                    remove_entity(para_ent[id])
                    para_ent[id] = 0
                }
                else
                {
                    remove_entity(para_ent[id])
                    set_user_gravity(id, 1.0)
                    para_ent[id] = 0
                }
                return
            }
        }
        if (button & IN_USE)
        {
            new Float:velocity[3]
            entity_get_vector(id, EV_VEC_velocity, velocity)
            if(velocity[2] < 0.0)
            {
                if(para_ent[id] <= 0)
                {
                    para_ent[id] = create_entity("info_target")
                    if(para_ent[id] > 0)
                    {
                        entity_set_string(para_ent[id],EV_SZ_classname,"parachute")
                        entity_set_edict(para_ent[id], EV_ENT_aiment, id)
                        entity_set_edict(para_ent[id], EV_ENT_owner, id)
                        entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)
                        entity_set_model(para_ent[id], "models/parachute.mdl")
                        entity_set_int(para_ent[id], EV_INT_sequence, 0)
                        entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
                        entity_set_float(para_ent[id], EV_FL_frame, 0.0)
                        entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
                    }
                }
                if(para_ent[id] > 0)
                {
                    entity_set_int(id, EV_INT_sequence, 3)
                    entity_set_int(id, EV_INT_gaitsequence, 1)
                    entity_set_float(id, EV_FL_frame, 1.0)
                    entity_set_float(id, EV_FL_framerate, 1.0)
                    set_user_gravity(id, 0.1)
                    velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed
                    entity_set_vector(id, EV_VEC_velocity, velocity)
                    if(entity_get_int(para_ent[id],EV_INT_sequence) == 0)
                    {
                        frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 1.0
                        entity_set_float(para_ent[id],EV_FL_fuser1,frame)
                        entity_set_float(para_ent[id],EV_FL_frame,frame)
                        if (frame > 100.0)
                        {
                            entity_set_float(para_ent[id], EV_FL_animtime, 0.0)
                            entity_set_float(para_ent[id], EV_FL_framerate, 0.4)
                            entity_set_int(para_ent[id], EV_INT_sequence, 1)
                            entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
                            entity_set_float(para_ent[id], EV_FL_frame, 0.0)
                            entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
                        }
                    }
                }
            }
            else if(para_ent[id] > 0)
            {
                remove_entity(para_ent[id])
                set_user_gravity(id, 1.0)
                para_ent[id] = 0
            }
        }
        else if((oldbutton & IN_USE) && para_ent[id] > 0 )
        {
            remove_entity(para_ent[id])
            set_user_gravity(id, 1.0)
            para_ent[id] = 0
        }
    }
Перейти в начало страницы     
   +
Статус пользователя primm
сообщение 24.11.2012, 21:30
Сообщение #3


Стаж: 16 лет
Город: Москва

Сообщений: 517
Благодарностей: 140
Полезность: 520

флаги
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
WMP
сообщение 25.11.2012, 9:24
Сообщение #4
Стаж: 13 лет

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

Цитата(underwoker @ 24.11.2012, 22:24) *
Скрытый текст
Код
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <fun>

new para_ent[33]

public plugin_init()
{
    register_plugin("Parachute", "1.3 Fixed", "sector")

    register_event("ResetHUD", "newSpawn", "be")
    register_event("DeathMsg", "death_event", "a")
}

public plugin_natives()
{
    set_native_filter("native_filter")
}

public native_filter(const name[], index, trap)
{
    if (!trap) return PLUGIN_HANDLED
    return PLUGIN_CONTINUE
}

public plugin_precache()
{
    precache_model("models/parachute.mdl")
}

public client_connect(id)
{
    if(get_user_flags(id) & ADMIN_KICK)
    {
        parachute_reset(id)
    }

    public client_disconnect(id)
    {
        parachute_reset(id)
    }

    public death_event()
    {
        new id = read_data(2)
        parachute_reset(id)
    }

    parachute_reset(id)
    {
        if(para_ent[id] > 0)
        {
            if (is_valid_ent(para_ent[id]))
            {
                remove_entity(para_ent[id])
            }
        }

        if(is_user_alive(id)) set_user_gravity(id, 1.0)
        para_ent[id] = 0
    }

    public newSpawn(id)
    {
        if(para_ent[id] > 0)
        {
            remove_entity(para_ent[id])
            set_user_gravity(id, 1.0)
            para_ent[id] = 0
        }
    }

    public client_PreThink(id)
    {
        if(!is_user_alive(id)) return

        new Float:fallspeed = 100 * -1.0
        new Float:frame
        new button = get_user_button(id)
        new oldbutton = get_user_oldbutton(id)
        new flags = get_entity_flags(id)
        if(para_ent[id] > 0 && (flags & FL_ONGROUND))
        {
            if(get_user_gravity(id) == 0.1) set_user_gravity(id, 1.0)
            {
                if(entity_get_int(para_ent[id],EV_INT_sequence) != 2)
                {
                    entity_set_int(para_ent[id], EV_INT_sequence, 2)
                    entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
                    entity_set_float(para_ent[id], EV_FL_frame, 0.0)
                    entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
                    entity_set_float(para_ent[id], EV_FL_animtime, 0.0)
                    entity_set_float(para_ent[id], EV_FL_framerate, 0.0)
                    return
                }
                frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 2.0
                entity_set_float(para_ent[id],EV_FL_fuser1,frame)
                entity_set_float(para_ent[id],EV_FL_frame,frame)
                if(frame > 254.0)
                {
                    remove_entity(para_ent[id])
                    para_ent[id] = 0
                }
                else
                {
                    remove_entity(para_ent[id])
                    set_user_gravity(id, 1.0)
                    para_ent[id] = 0
                }
                return
            }
        }
        if (button & IN_USE)
        {
            new Float:velocity[3]
            entity_get_vector(id, EV_VEC_velocity, velocity)
            if(velocity[2] < 0.0)
            {
                if(para_ent[id] <= 0)
                {
                    para_ent[id] = create_entity("info_target")
                    if(para_ent[id] > 0)
                    {
                        entity_set_string(para_ent[id],EV_SZ_classname,"parachute")
                        entity_set_edict(para_ent[id], EV_ENT_aiment, id)
                        entity_set_edict(para_ent[id], EV_ENT_owner, id)
                        entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)
                        entity_set_model(para_ent[id], "models/parachute.mdl")
                        entity_set_int(para_ent[id], EV_INT_sequence, 0)
                        entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
                        entity_set_float(para_ent[id], EV_FL_frame, 0.0)
                        entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
                    }
                }
                if(para_ent[id] > 0)
                {
                    entity_set_int(id, EV_INT_sequence, 3)
                    entity_set_int(id, EV_INT_gaitsequence, 1)
                    entity_set_float(id, EV_FL_frame, 1.0)
                    entity_set_float(id, EV_FL_framerate, 1.0)
                    set_user_gravity(id, 0.1)
                    velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed
                    entity_set_vector(id, EV_VEC_velocity, velocity)
                    if(entity_get_int(para_ent[id],EV_INT_sequence) == 0)
                    {
                        frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 1.0
                        entity_set_float(para_ent[id],EV_FL_fuser1,frame)
                        entity_set_float(para_ent[id],EV_FL_frame,frame)
                        if (frame > 100.0)
                        {
                            entity_set_float(para_ent[id], EV_FL_animtime, 0.0)
                            entity_set_float(para_ent[id], EV_FL_framerate, 0.4)
                            entity_set_int(para_ent[id], EV_INT_sequence, 1)
                            entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
                            entity_set_float(para_ent[id], EV_FL_frame, 0.0)
                            entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
                        }
                    }
                }
            }
            else if(para_ent[id] > 0)
            {
                remove_entity(para_ent[id])
                set_user_gravity(id, 1.0)
                para_ent[id] = 0
            }
        }
        else if((oldbutton & IN_USE) && para_ent[id] > 0 )
        {
            remove_entity(para_ent[id])
            set_user_gravity(id, 1.0)
            para_ent[id] = 0
        }
    }

Не компилируется, аж 16 ерроров. Убрал твою строку, все норм стало. А если использовать #define ADMIN_LEVEL_F, то будет работать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
WMP
сообщение 25.11.2012, 9:33
Сообщение #5
Стаж: 13 лет

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

НЕ получается все таки сделать, забрал флаг у админа, всеровно летает с парашюта. Помогите )
Плагин

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <fun>

new para_ent[33]

public plugin_init()
{
register_plugin("Parachute", "1.0", "sector/edited WMP")

register_event("ResetHUD", "newSpawn", "be")
register_event("DeathMsg", "death_event", "a")
}

public plugin_natives()
{
set_native_filter("native_filter")
}

public native_filter(const name[], index, trap)
{
if (!trap) return PLUGIN_HANDLED
return PLUGIN_CONTINUE
}

public plugin_precache()
{
precache_model("models/parachute.mdl")
}

public client_connect(id) {
if (get_user_flags(id) & ADMIN_LEVEL_F)
parachute_reset(id)
}

public client_disconnect(id)
{
parachute_reset(id)
}

public death_event()
{
new id = read_data(2)
parachute_reset(id)
}

parachute_reset(id)
{
if(para_ent[id] > 0)
{
if (is_valid_ent(para_ent[id]))
{
remove_entity(para_ent[id])
}
}

if(is_user_alive(id)) set_user_gravity(id, 1.0)
para_ent[id] = 0
}

public newSpawn(id)
{
if(para_ent[id] > 0)
{
remove_entity(para_ent[id])
set_user_gravity(id, 1.0)
para_ent[id] = 0
}
}

public client_PreThink(id)
{
if(!is_user_alive(id)) return

new Float:fallspeed = 100 * -1.0
new Float:frame
new button = get_user_button(id)
new oldbutton = get_user_oldbutton(id)
new flags = get_entity_flags(id)
if(para_ent[id] > 0 && (flags & FL_ONGROUND))
{
if(get_user_gravity(id) == 0.1) set_user_gravity(id, 1.0)
{
if(entity_get_int(para_ent[id],EV_INT_sequence) != 2)
{
entity_set_int(para_ent[id], EV_INT_sequence, 2)
entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
entity_set_float(para_ent[id], EV_FL_frame, 0.0)
entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
entity_set_float(para_ent[id], EV_FL_animtime, 0.0)
entity_set_float(para_ent[id], EV_FL_framerate, 0.0)
return
}
frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 2.0
entity_set_float(para_ent[id],EV_FL_fuser1,frame)
entity_set_float(para_ent[id],EV_FL_frame,frame)
if(frame > 254.0)
{
remove_entity(para_ent[id])
para_ent[id] = 0
}
else
{
remove_entity(para_ent[id])
set_user_gravity(id, 1.0)
para_ent[id] = 0
}
return
}
}
if (button & IN_USE)
{
new Float:velocity[3]
entity_get_vector(id, EV_VEC_velocity, velocity)
if(velocity[2] < 0.0)
{
if(para_ent[id] <= 0)
{
para_ent[id] = create_entity("info_target")
if(para_ent[id] > 0)
{
entity_set_string(para_ent[id],EV_SZ_classname,"parachute")
entity_set_edict(para_ent[id], EV_ENT_aiment, id)
entity_set_edict(para_ent[id], EV_ENT_owner, id)
entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)
entity_set_model(para_ent[id], "models/parachute.mdl")
entity_set_int(para_ent[id], EV_INT_sequence, 0)
entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
entity_set_float(para_ent[id], EV_FL_frame, 0.0)
entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
}
}
if(para_ent[id] > 0)
{
entity_set_int(id, EV_INT_sequence, 3)
entity_set_int(id, EV_INT_gaitsequence, 1)
entity_set_float(id, EV_FL_frame, 1.0)
entity_set_float(id, EV_FL_framerate, 1.0)
set_user_gravity(id, 0.1)
velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed
entity_set_vector(id, EV_VEC_velocity, velocity)
if(entity_get_int(para_ent[id],EV_INT_sequence) == 0)
{
frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 1.0
entity_set_float(para_ent[id],EV_FL_fuser1,frame)
entity_set_float(para_ent[id],EV_FL_frame,frame)
if (frame > 100.0)
{
entity_set_float(para_ent[id], EV_FL_animtime, 0.0)
entity_set_float(para_ent[id], EV_FL_framerate, 0.4)
entity_set_int(para_ent[id], EV_INT_sequence, 1)
entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
entity_set_float(para_ent[id], EV_FL_frame, 0.0)
entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
}
}
}
}
else if(para_ent[id] > 0)
{
remove_entity(para_ent[id])
set_user_gravity(id, 1.0)
para_ent[id] = 0
}
}
else if((oldbutton & IN_USE) && para_ent[id] > 0 )
{
remove_entity(para_ent[id])
set_user_gravity(id, 1.0)
para_ent[id] = 0
}
}


Отредактировал: WMP, - 25.11.2012, 13:42
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
WMP
сообщение 25.11.2012, 13:43
Сообщение #6
Стаж: 13 лет

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

ап
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
WMP
сообщение 25.11.2012, 15:02
Сообщение #7
Стаж: 13 лет

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

ап crazy.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя primm
сообщение 25.11.2012, 16:28
Сообщение #8


Стаж: 16 лет
Город: Москва

Сообщений: 517
Благодарностей: 140
Полезность: 520

Прикрепленный файл  amx_parachute.sma ( 13,36 килобайт ) Кол-во скачиваний: 8
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
WMP
сообщение 8.12.2012, 21:50
Сообщение #9
Стаж: 13 лет

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

underwoker, помоги :)
Скрытый текст

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <fun>

new para_ent[33]

public plugin_init()
{
register_plugin("Parachute", "1.0", "sector")

register_event("ResetHUD", "newSpawn", "be")
register_event("DeathMsg", "death_event", "a")
}

public plugin_natives()
{
set_native_filter("native_filter")
}

public native_filter(const name[], index, trap)
{
if (!trap) return PLUGIN_HANDLED
return PLUGIN_CONTINUE
}

public plugin_precache()
{
precache_model("models/parachute.mdl")
}

public client_connect(id) {
if (get_user_flags(id) & ADMIN_LEVEL_G)
client_print(id, print_chat, "Вы можете использовать парашют!")
}
else
{
client_print(id, print_chat, "Вы не можете использовать парашют!")
parachute_reset(id)
}
}
public client_disconnect(id)
{
parachute_reset(id)
}

public death_event()
{
new id = read_data(2)
parachute_reset(id)
}

parachute_reset(id)
{
if(para_ent[id] > 0)
{
if (is_valid_ent(para_ent[id]))
{
remove_entity(para_ent[id])
}
}

if(is_user_alive(id)) set_user_gravity(id, 1.0)
para_ent[id] = 0
}

public newSpawn(id)
{
if(para_ent[id] > 0)
{
remove_entity(para_ent[id])
set_user_gravity(id, 1.0)
para_ent[id] = 0
}
}

public client_PreThink(id)
{
if(!is_user_alive(id)) return

new Float:fallspeed = 100 * -1.0
new Float:frame
new button = get_user_button(id)
new oldbutton = get_user_oldbutton(id)
new flags = get_entity_flags(id)
if(para_ent[id] > 0 && (flags & FL_ONGROUND))
{
if(get_user_gravity(id) == 0.1) set_user_gravity(id, 1.0)
{
if(entity_get_int(para_ent[id],EV_INT_sequence) != 2)
{
entity_set_int(para_ent[id], EV_INT_sequence, 2)
entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
entity_set_float(para_ent[id], EV_FL_frame, 0.0)
entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
entity_set_float(para_ent[id], EV_FL_animtime, 0.0)
entity_set_float(para_ent[id], EV_FL_framerate, 0.0)
return
}
frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 2.0
entity_set_float(para_ent[id],EV_FL_fuser1,frame)
entity_set_float(para_ent[id],EV_FL_frame,frame)
if(frame > 254.0)
{
remove_entity(para_ent[id])
para_ent[id] = 0
}
else
{
remove_entity(para_ent[id])
set_user_gravity(id, 1.0)
para_ent[id] = 0
}
return
}
}
if (button & IN_USE)
{
new Float:velocity[3]
entity_get_vector(id, EV_VEC_velocity, velocity)
if(velocity[2] < 0.0)
{
if(para_ent[id] <= 0)
{
para_ent[id] = create_entity("info_target")
if(para_ent[id] > 0)
{
entity_set_string(para_ent[id],EV_SZ_classname,"parachute")
entity_set_edict(para_ent[id], EV_ENT_aiment, id)
entity_set_edict(para_ent[id], EV_ENT_owner, id)
entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)
entity_set_model(para_ent[id], "models/parachute.mdl")
entity_set_int(para_ent[id], EV_INT_sequence, 0)
entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
entity_set_float(para_ent[id], EV_FL_frame, 0.0)
entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
}
}
if(para_ent[id] > 0)
{
entity_set_int(id, EV_INT_sequence, 3)
entity_set_int(id, EV_INT_gaitsequence, 1)
entity_set_float(id, EV_FL_frame, 1.0)
entity_set_float(id, EV_FL_framerate, 1.0)
set_user_gravity(id, 0.1)
velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed
entity_set_vector(id, EV_VEC_velocity, velocity)
if(entity_get_int(para_ent[id],EV_INT_sequence) == 0)
{
frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 1.0
entity_set_float(para_ent[id],EV_FL_fuser1,frame)
entity_set_float(para_ent[id],EV_FL_frame,frame)
if (frame > 100.0)
{
entity_set_float(para_ent[id], EV_FL_animtime, 0.0)
entity_set_float(para_ent[id], EV_FL_framerate, 0.4)
entity_set_int(para_ent[id], EV_INT_sequence, 1)
entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
entity_set_float(para_ent[id], EV_FL_frame, 0.0)
entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
}
}
}
}
else if(para_ent[id] > 0)
{
remove_entity(para_ent[id])
set_user_gravity(id, 1.0)
para_ent[id] = 0
}
}
else if((oldbutton & IN_USE) && para_ent[id] > 0 )
{
remove_entity(para_ent[id])
set_user_gravity(id, 1.0)
para_ent[id] = 0
}
}


- Нужно сделать флаг G =)
- И сообщение о возможном и не возможном использовании парашюта. С меня +
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
WMP
сообщение 9.12.2012, 10:49
Сообщение #10
Стаж: 13 лет

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

ап
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
underwoker
сообщение 9.12.2012, 11:33
Сообщение #11
Стаж: 56 лет


Благодарностей:

Я не умею.
Перейти в начало страницы     
   + Цитировать сообщение
WMP
сообщение 9.12.2012, 11:34
Сообщение #12
Стаж: 13 лет

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

Цитата(underwoker @ 9.12.2012, 12:33) *
Я не умею.

Вроде выставлял в client_connect все ровно не роббит.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
WMP
сообщение 11.12.2012, 10:47
Сообщение #13
Стаж: 13 лет

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

ап
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 11.12.2012, 12:53
Сообщение #14


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

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


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

типо так:
Код
public client_PreThink(id)
{
if(!is_user_alive(id)) return

--->
Код
public client_PreThink(id)
{
if(!(is_user_alive(id)) && !(get_user_flags(id) & ADMIN_LEVEL.......)) return


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


Стаж: 14 лет

Сообщений: 1089
Благодарностей: 501
Полезность: 583

AndrewZ,
Код
!(is_user_alive(id))

скобки тут лишние
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
WMP
сообщение 11.12.2012, 17:22
Сообщение #16
Стаж: 13 лет

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

Не работает =)

Отредактировал: WMP, - 11.12.2012, 18:20
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
WMP
сообщение 12.12.2012, 15:36
Сообщение #17
Стаж: 13 лет

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

Никто не знает как?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
underwoker
сообщение 12.12.2012, 16:11
Сообщение #18
Стаж: 56 лет


Благодарностей:

Скрытый текст
Код
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <fun>

new bool:has_parachute[33]
new para_ent[33]
new gCStrike = 0

#define PARACHUTE_LEVEL ADMIN_LEVEL_A

public plugin_init()
{
    register_plugin("Parachute", "1.3 Fixed", "sector/underwoker")

    register_event("ResetHUD", "newSpawn", "be")
    register_event("DeathMsg", "death_event", "a")
}

public plugin_natives()
{
    set_native_filter("native_filter")
}

public native_filter(const name[], index, trap)
{
    if (!trap) return PLUGIN_HANDLED
    return PLUGIN_CONTINUE
}

public plugin_precache()
{
    precache_model("models/parachute.mdl")
}

public client_connect(id)
{
    parachute_reset(id)
}

public client_disconnect(id)
{
    parachute_reset(id)
}

public death_event()
{
    new id = read_data(2)
    parachute_reset(id)
}

parachute_reset(id)
{
    if(para_ent[id] > 0)
    {
        if (is_valid_ent(para_ent[id]))
        {
            remove_entity(para_ent[id])
        }
    }

    if(is_user_alive(id)) set_user_gravity(id, 1.0)
    has_parachute[id] = false
    para_ent[id] = 0
}

public newSpawn(id)
{
    if(para_ent[id] > 0)
    {
        remove_entity(para_ent[id])
        set_user_gravity(id, 1.0)
        para_ent[id] = 0
    }
    
    if (!gCStrike || access(id,PARACHUTE_LEVEL)) {
        has_parachute[id] = true
        //set_view(id, CAMERA_3RDPERSON)
    }
}

public client_PreThink(id)
{
    if (!is_user_alive(id) || !has_parachute[id]) return

    new Float:fallspeed = 100 * -1.0
    new Float:frame
    new button = get_user_button(id)
    new oldbutton = get_user_oldbutton(id)
    new flags = get_entity_flags(id)
    if(para_ent[id] > 0 && (flags & FL_ONGROUND))
    {
        if(get_user_gravity(id) == 0.1) set_user_gravity(id, 1.0)
        {
            if(entity_get_int(para_ent[id],EV_INT_sequence) != 2)
            {
                entity_set_int(para_ent[id], EV_INT_sequence, 2)
                entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
                entity_set_float(para_ent[id], EV_FL_frame, 0.0)
                entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
                entity_set_float(para_ent[id], EV_FL_animtime, 0.0)
                entity_set_float(para_ent[id], EV_FL_framerate, 0.0)
                return
            }
            frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 2.0
            entity_set_float(para_ent[id],EV_FL_fuser1,frame)
            entity_set_float(para_ent[id],EV_FL_frame,frame)
            if(frame > 254.0)
            {
                remove_entity(para_ent[id])
                para_ent[id] = 0
            }
            else
            {
                remove_entity(para_ent[id])
                set_user_gravity(id, 1.0)
                para_ent[id] = 0
            }
            return
        }
    }
    if (button & IN_USE)
    {
        new Float:velocity[3]
        entity_get_vector(id, EV_VEC_velocity, velocity)
        if(velocity[2] < 0.0)
        {
            if(para_ent[id] <= 0)
            {
                para_ent[id] = create_entity("info_target")
                if(para_ent[id] > 0)
                {
                    entity_set_string(para_ent[id],EV_SZ_classname,"parachute")
                    entity_set_edict(para_ent[id], EV_ENT_aiment, id)
                    entity_set_edict(para_ent[id], EV_ENT_owner, id)
                    entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)
                    entity_set_model(para_ent[id], "models/parachute.mdl")
                    entity_set_int(para_ent[id], EV_INT_sequence, 0)
                    entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
                    entity_set_float(para_ent[id], EV_FL_frame, 0.0)
                    entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
                }
            }
            if(para_ent[id] > 0)
            {
                entity_set_int(id, EV_INT_sequence, 3)
                entity_set_int(id, EV_INT_gaitsequence, 1)
                entity_set_float(id, EV_FL_frame, 1.0)
                entity_set_float(id, EV_FL_framerate, 1.0)
                set_user_gravity(id, 0.1)
                velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed
                entity_set_vector(id, EV_VEC_velocity, velocity)
                if(entity_get_int(para_ent[id],EV_INT_sequence) == 0)
                {
                    frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 1.0
                    entity_set_float(para_ent[id],EV_FL_fuser1,frame)
                    entity_set_float(para_ent[id],EV_FL_frame,frame)
                    if (frame > 100.0)
                    {
                        entity_set_float(para_ent[id], EV_FL_animtime, 0.0)
                        entity_set_float(para_ent[id], EV_FL_framerate, 0.4)
                        entity_set_int(para_ent[id], EV_INT_sequence, 1)
                        entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
                        entity_set_float(para_ent[id], EV_FL_frame, 0.0)
                        entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
                    }
                }
            }
        }
        else if(para_ent[id] > 0)
        {
            remove_entity(para_ent[id])
            set_user_gravity(id, 1.0)
            para_ent[id] = 0
        }
    }
    else if((oldbutton & IN_USE) && para_ent[id] > 0 )
    {
        remove_entity(para_ent[id])
        set_user_gravity(id, 1.0)
        para_ent[id] = 0
    }
}


Отредактировал: underwoker, - 12.12.2012, 16:11
Перейти в начало страницы     
Поблагодарили 1 раз
   +
WMP
сообщение 12.12.2012, 17:52
Сообщение #19
Стаж: 13 лет

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

Не работает =) Переписал немного по своему методу :D

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