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

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

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

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

[Скриптинг] Парашут

Gig142
сообщение 23.5.2014, 10:48
Сообщение #1
Стаж: 12 лет

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

Помогите переделать парашут
Дело в том что при покупке гравитации через CS SHOP, я прыгаю все нормально работает, но после использования парашута гравитация пропадает(

Код:
#include <amxmodx>
#include <engine>
#include <fun>
#include <hamsandwich>

#define PLUGIN "Parachute"
#define VERSION "1.0"
#define AUTHOR "Slavvkko"

new para_ent[33]
new pDetach, pFallSpeed, Float:gravity[33]

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
pFallSpeed = register_cvar("parachute_fallspeed", "100")
pDetach = register_cvar("parachute_detach", "1")
register_event("DeathMsg", "death_event", "a")
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1)
}

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])
}
}

para_ent[id] = 0
}

public fw_PlayerSpawn_Post(id)
{
if (!is_user_alive(id))
return;

gravity[id] = get_user_gravity(id)
}

public zp_user_infected_post(id, infector, nemesis)
{
gravity[id] = get_user_gravity(id)
}

public zp_user_humanized_post(id, survivor)
{
gravity[id] = get_user_gravity(id)
}

public client_PreThink(id)
{
//parachute.mdl animation information
//0 - deploy - 84 frames
//1 - idle - 39 frames
//2 - detach - 29 frames

if (!is_user_alive(id)) return

new Float:fallspeed = get_pcvar_float(pFallSpeed) * -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_pcvar_num(pDetach)) {

if (get_user_gravity(id) == 0.1) set_user_gravity(id, gravity[id])

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, gravity[id])
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_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, gravity[id])
para_ent[id] = 0
}
}
else if ((oldbutton & IN_USE) && para_ent[id] > 0 ) {
remove_entity(para_ent[id])
set_user_gravity(id, gravity[id])
para_ent[id] = 0
}
}


Отредактировал: Gig142, - 23.5.2014, 10:48
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
trollface
сообщение 23.5.2014, 11:31
Сообщение #2
Стаж: 12 лет

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

Gig142,
где вы такие плагины берете....
вот офигенный:
Код:
#include <amxmodx>
#include <engine>

public plugin_init()
{
register_plugin("Parachute", "1.0", "maeStro");
}

public client_PreThink(id)
{
if(!is_user_alive(id)) return;
if(get_user_button(id) & IN_USE)
{
if(get_entity_flags(id) & FL_ONGROUND) return;
static Float:velocity[3];
entity_get_vector(id, EV_VEC_velocity, velocity);
if(velocity[2] < 0)
{
velocity[2] = (velocity[2] + 40.0 < -100) ? velocity[2] + 40.0 : -100.0;
entity_set_vector(id, EV_VEC_velocity, velocity);
}
}
}

Правда без модельки, но она и не нужна:)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя ex3m777
сообщение 23.5.2014, 11:35
Сообщение #3


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

Сообщений: 2037
Благодарностей: 1135
Полезность: 968

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

Цитата(trollface @ 23.5.2014, 13:31) *
Gig142,
где вы такие плагины берете....
вот офигенный:
Код:
#include <amxmodx>
#include <engine>

public plugin_init()
{
register_plugin("Parachute", "1.0", "maeStro");
}

public client_PreThink(id)
{
if(!is_user_alive(id)) return;
if(get_user_button(id) & IN_USE)
{
if(get_entity_flags(id) & FL_ONGROUND) return;
static Float:velocity[3];
entity_get_vector(id, EV_VEC_velocity, velocity);
if(velocity[2] < 0)
{
velocity[2] = (velocity[2] + 40.0 < -100) ? velocity[2] + 40.0 : -100.0;
entity_set_vector(id, EV_VEC_velocity, velocity);
}
}
}

Правда без модельки, но она и не нужна:)

сделай на флаг ADMIN_LEVEL_H thank_you2.gif


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 23.5.2014, 11:37
Сообщение #4
Стаж: 12 лет

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

grishka444,
if(!is_user_alive(id) || !(get_user_flags(id) & ADMIN_LEVEL_H)) return;

Отредактировал: trollface, - 23.5.2014, 11:38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Gig142
сообщение 23.5.2014, 13:09
Сообщение #5
Стаж: 12 лет

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

Нет, мне нужно чтобы игроки летали вот так вот, точнее в такой позе хД

Отредактировал: Gig142, - 23.5.2014, 13:31
Прикрепленные файлы:
Прикрепленное изображение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Gig142
сообщение 23.5.2014, 15:01
Сообщение #6
Стаж: 12 лет

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

Ладно, как говорится если долго мучиться что-нибудь получится;)

Сделал, вот если кому надо:

Код:
#include <amxmodx>
#include <engine>
#include <hamsandwich>

new pFallSpeed;

public plugin_init()
{
register_plugin("Parachute", "1.0", "maeStro");

pFallSpeed = register_cvar("parachute_fallspeed", "25");

RegisterHam(Ham_ObjectCaps, "player", "FwdHamObjectCaps");
}

public FwdHamObjectCaps(id)
{
if (!is_user_alive(id)||get_entity_flags(id) & FL_ONGROUND) return;

new Float:fallspeed = get_pcvar_float(pFallSpeed) * -1.0
new Float:frame

static Float:velocity[3];
entity_get_vector(id, EV_VEC_velocity, velocity);
if(velocity[2] < 0) {
if(id <= 0) {
id = create_entity("info_target")
if(id > 0) {
entity_set_string(id,EV_SZ_classname,"parachute")
entity_set_edict(id, EV_ENT_aiment, id)
entity_set_edict(id, EV_ENT_owner, id)
entity_set_int(id, EV_INT_movetype, MOVETYPE_FOLLOW)
entity_set_int(id, EV_INT_sequence, 0)
entity_set_int(id, EV_INT_gaitsequence, 1)
entity_set_float(id, EV_FL_frame, 0.0)
entity_set_float(id, EV_FL_fuser1, 0.0)
}
}

if (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)

velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed
entity_set_vector(id, EV_VEC_velocity, velocity)

if (entity_get_int(id,EV_INT_sequence) == 0) {

frame = entity_get_float(id,EV_FL_fuser1) + 1.0
entity_set_float(id,EV_FL_fuser1,frame)
entity_set_float(id,EV_FL_frame,frame)

if (frame > 100.0) {
entity_set_float(id, EV_FL_animtime, 0.0)
entity_set_float(id, EV_FL_framerate, 0.4)
entity_set_int(id, EV_INT_sequence, 1)
entity_set_int(id, EV_INT_gaitsequence, 1)
entity_set_float(id, EV_FL_frame, 0.0)
entity_set_float(id, EV_FL_fuser1, 0.0)
}
}
}
}
}


Отредактировал: Gig142, - 23.5.2014, 15:01
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 23.5.2014, 15:26
Сообщение #7
Стаж: 12 лет

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

Gig142,
зачем entity парашюта создаешь?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Gig142
сообщение 24.5.2014, 3:44
Сообщение #8
Стаж: 12 лет

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

Цитата(trollface @ 23.5.2014, 19:26) *
Gig142,
зачем entity парашюта создаешь?

https://c-s.net.ua/forum/index.php?showtopi...st&p=603328
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Gig142
сообщение 24.5.2014, 5:04
Сообщение #9
Стаж: 12 лет

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

Блин теперь такая шняга, если лететь на парашуте и переключать оружие то сразу падаешь(

Отредактировал: Gig142, - 24.5.2014, 5:49
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя tyne
сообщение 24.5.2014, 5:32
Сообщение #10


Стаж: 13 лет

Сообщений: 544
Благодарностей: 137
Полезность: 91

Не крути колесо
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 24.5.2014, 7:42
Сообщение #11
Стаж: 12 лет

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

Gig142,
для этого энтити парашюта не нужен -_-
достаточно задать "позу" игрока во время полета
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ex3m777
сообщение 24.5.2014, 9:07
Сообщение #12


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

Сообщений: 2037
Благодарностей: 1135
Полезность: 968

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

Цитата(trollface @ 23.5.2014, 13:31) *
Gig142,
где вы такие плагины берете....
вот офигенный:
Код:
#include <amxmodx>
#include <engine>

public plugin_init()
{
register_plugin("Parachute", "1.0", "maeStro");
}

public client_PreThink(id)
{
if(!is_user_alive(id)) return;
if(get_user_button(id) & IN_USE)
{
if(get_entity_flags(id) & FL_ONGROUND) return;
static Float:velocity[3];
entity_get_vector(id, EV_VEC_velocity, velocity);
if(velocity[2] < 0)
{
velocity[2] = (velocity[2] + 40.0 < -100) ? velocity[2] + 40.0 : -100.0;
entity_set_vector(id, EV_VEC_velocity, velocity);
}
}
}

Правда без модельки, но она и не нужна:)

у меня дает ошибку при компиляции
Скрытый текст
Цитата
CD: D:\1\hlds\cstrike\addons\amxmodx\scripting
Current directory: D:\1\hlds\cstrike\addons\amxmodx\scripting
"D:\1\hlds\cstrike\addons\amxmodx\scripting\amxxpc.exe" "parachut.sma" "-oD:\1\hlds\cstrike\addons\amxmodx\plugins\parachut.amxx"
Process started >>>
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team

parachut.sma(0) : error 075: input line too long (after substitutions)
parachut.sma(2) : error 075: input line too long (after substitutions)
parachut.sma(3) : error 075: input line too long (after substitutions)
parachut.sma(4) : error 075: input line too long (after substitutions)
parachut.sma(5) : error 075: input line too long (after substitutions)
parachut.sma(6) : error 075: input line too long (after substitutions)
parachut.sma(7) : error 075: input line too long (after substitutions)
parachut.sma(8) : error 075: input line too long (after substitutions)
parachut.sma(9) : error 075: input line too long (after substitutions)
parachut.sma(10) : error 075: input line too long (after substitutions)
parachut.sma(11) : error 075: input line too long (after substitutions)
parachut.sma(12) : error 075: input line too long (after substitutions)
parachut.sma(13) : error 075: input line too long (after substitutions)
parachut.sma(14) : error 075: input line too long (after substitutions)
parachut.sma(15) : error 075: input line too long (after substitutions)
parachut.sma(16) : error 075: input line too long (after substitutions)
parachut.sma(17) : error 075: input line too long (after substitutions)
parachut.sma(18) : error 075: input line too long (after substitutions)
parachut.sma(19) : error 075: input line too long (after substitutions)
parachut.sma(20) : error 075: input line too long (after substitutions)
parachut.sma(21) : error 075: input line too long (after substitutions)
parachut.sma(23) : error 013: no entry point (no public functions)

22 Errors.
Could not locate output file D:\1\hlds\cstrike\addons\amxmodx\plugins\parachut.amx (compile failed).
<<< Process finished. (Exit code 0)
================ READY ================


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 24.5.2014, 9:54
Сообщение #13
Стаж: 12 лет

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

кто вас всех учит собирать amxx с ключами -_____-
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Gig142
сообщение 25.5.2014, 10:14
Сообщение #14
Стаж: 12 лет

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

Так мне кто нибудь поможет с этим?

Цитата(Gig142 @ 24.5.2014, 9:04) *
Блин теперь такая шняга, если лететь на парашуте и переключать оружие то сразу падаешь(

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