Преработка на ZP SUB PARACHUTE
Преработка на ZP SUB PARACHUTE
Идеята е, да се направи за обикновени сървъри, като classic и т.н... и да може да се ползва само от админи с флаг "b"
- Прикачени файлове
-
- zp_sub_parachute12.sma
- (5.1 KiB) Свалено 130 пъти
- zp_sub_parachute12.sma
- (5.1 KiB) Свалено 130 пъти
Последно промяна от OciXCrom на 19 Яну 2018, 20:36, променено общо 1 път.
Причина: И защо си пуснал темата в раздела за ИЗРАБОТКА на плъгини???
Причина: И защо си пуснал темата в раздела за ИЗРАБОТКА на плъгини???
The Best Deathrun Server: 79.124.49.91:27019
The Best Respawn Server: 79.124.49.88:27021
The Best Respawn Server: 79.124.49.88:27021
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Преработка на ZP SUB PARACHUTE
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
new const paramodel[] = "models/93parachute2.mdl"
new bool:has_parachute[33], para_ent[33];
enum pcvar
{
humans = 1,
survivors,
zombies,
nemesis,
fallspeed,
detach
}
new pcvars[pcvar]
public plugin_init()
{
register_plugin("[ZP] Sub-Plugin: Parachute", "1.2", "Random1, 93()|29!/<")
pcvars[humans] = register_cvar("zp_parachute_humans", "1")
pcvars[survivors] = register_cvar("zp_parachute_survivors", "1")
pcvars[zombies] = register_cvar("zp_parachute_zombies", "1")
pcvars[nemesis] = register_cvar("zp_parachute_nemesis", "1")
pcvars[fallspeed] = register_cvar("zp_parachute_fallspeed", "75")
pcvars[detach] = register_cvar("zp_parachute_detach", "1")
/*=====
register_forward(FM_CmdStart, "fw_CmdStart")
=======*/
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1)
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
}
public plugin_precache()
{
engfunc(EngFunc_PrecacheModel, paramodel)
}
public client_connect(id)
parachute_reset(id, 1)
public client_disconnect(id)
parachute_reset(id)
parachute_reset(id, keep = 0)
{
if(para_ent[id] > 0 && pev_valid(para_ent[id]))
{
engfunc(EngFunc_RemoveEntity, para_ent[id]);
para_ent[id] = 0
}
if (!keep)
has_parachute[id] = false
else if(get_user_flags(id) & ADMIN_RESERVATION)
has_parachute[id] = true
}
public fw_PlayerKilled(victim)
parachute_reset(victim)
public fw_PlayerSpawn_Post(id)
{
if (!is_user_alive(id))
return;
if (get_pcvar_num(pcvars[humans]))
{
parachute_reset(id, 1)
return;
}
parachute_reset(id)
}
/*=====
public fw_CmdStart(id, handle)
{
if (!has_parachute[id])
return;
static button
button = get_uc(UC_Handle, UC_Buttons)
}
=======*/
public fw_PreThink(id)
{
//Parachute model animation information
//0 - deploy - 84 frames
//1 - idle - 39 frames
//2 - detach - 29 frames
if (!has_parachute[id])
return;
new Float:fallingspeed = get_pcvar_float(pcvars[fallspeed]) * -1.0;
new Float:frame;
new button = pev(id, pev_button);
new oldbutton = pev(id, pev_oldbuttons);
new flags = pev(id, pev_flags);
if (para_ent[id] > 0 && (flags & FL_ONGROUND))
{
if (get_pcvar_num(pcvars[detach]))
{
if (pev(para_ent[id],pev_sequence)!= 2)
{
set_pev(para_ent[id], pev_sequence, 2);
set_pev(para_ent[id], pev_gaitsequence, 1);
set_pev(para_ent[id], pev_frame, 0.0);
set_pev(para_ent[id], pev_fuser1, 0.0);
set_pev(para_ent[id], pev_animtime, 0.0);
return;
}
pev(para_ent[id],pev_fuser1, frame);
frame += 2.0;
set_pev(para_ent[id],pev_fuser1,frame);
set_pev(para_ent[id],pev_frame,frame);
if (frame > 254.0)
parachute_reset(id, 1)
}
else
parachute_reset(id, 1)
return;
}
if (button & IN_USE)
{
new Float:velocity[3];
pev(id, pev_velocity, velocity);
if (velocity[2] < 0.0)
{
if(para_ent[id] <= 0)
{
para_ent[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
if(para_ent[id] > 0)
{
set_pev(para_ent[id],pev_classname,"parachute");
set_pev(para_ent[id], pev_aiment, id)
set_pev(para_ent[id], pev_owner, id);
set_pev(para_ent[id], pev_movetype, MOVETYPE_FOLLOW);
engfunc(EngFunc_SetModel, para_ent[id], paramodel);
set_pev(para_ent[id], pev_sequence, 0);
set_pev(para_ent[id], pev_gaitsequence, 1);
set_pev(para_ent[id], pev_frame, 0.0);
set_pev(para_ent[id], pev_fuser1, 0.0);
}
}
if (para_ent[id] > 0)
{
set_pev(id, pev_sequence, 3)
set_pev(id, pev_gaitsequence, 1)
set_pev(id, pev_frame, 1.0)
set_pev(id, pev_framerate, 1.0)
velocity[2] = (velocity[2] + 40.0 < fallingspeed)? velocity[2] + 40.0 : fallingspeed
set_pev(id, pev_velocity, velocity)
if (pev(para_ent[id],pev_sequence)== 0)
{
pev(para_ent[id],pev_fuser1, frame);
frame += 1.0;
set_pev(para_ent[id],pev_fuser1,frame);
set_pev(para_ent[id],pev_frame,frame);
if (frame > 100.0)
{
set_pev(para_ent[id], pev_animtime, 0.0);
set_pev(para_ent[id], pev_framerate, 0.4);
set_pev(para_ent[id], pev_sequence, 1);
set_pev(para_ent[id], pev_gaitsequence, 1);
set_pev(para_ent[id], pev_frame, 0.0);
set_pev(para_ent[id], pev_fuser1, 0.0);
}
}
}
}
else if (para_ent[id] > 0)
parachute_reset(id, 1)
}
else if ((oldbutton & IN_USE) && para_ent[id] > 0)
parachute_reset(id, 1)
}
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 2 Отговори
- 975 Преглеждания
-
Последно мнение от cgozzie
-
- 2 Отговори
- 424 Преглеждания
-
Последно мнение от Siska
-
- 0 Отговори
- 1408 Преглеждания
-
Последно мнение от iv69
-
- 3 Отговори
- 1527 Преглеждания
-
Последно мнение от impossible
-
- 0 Отговори
- 635 Преглеждания
-
Последно мнение от Stilex
-
- 2 Отговори
- 1526 Преглеждания
-
Последно мнение от Mucii
-
- 3 Отговори
- 911 Преглеждания
-
Последно мнение от bobywTf
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 12 госта