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

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

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

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

С4 Drop

[РЕШЕНО]
Статус пользователя $@NyA
сообщение 3.9.2019, 0:40
Сообщение #1


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

Стаж: 18 лет

Сообщений: 987
Благодарностей: 529
Полезность: 1050

Ума не могу приложить:
Дропнутое Оружие удаляеться через время
Но почему Дропнутая Бомба сразу удаляеться с Земли на Линуксе?
Прошу помощи,что-бы оставалась всегда лежать...

ps.gif На Виндовсе всё впорядке ( не удаляеться )
Код:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define STEP 10.0
#define VERTICAL_SPEED 20.0
#define HORISONTAL_SPEED 60.0

#define EXCLUDE_BOMB

enum (+= 1) {
STATUS_NONE = 0,
STATUS_EFFECT,
STATUS_KILL
}

new g_CvarTimeout;

#if defined EXCLUDE_BOMB
#include <cstrike>
new giStartEnt, giMaxEntities
#endif

public plugin_init() {
register_plugin("Remove Drop Weapon", "0.3", "GordonFreeman & F@nt0M");
register_forward(FM_SetModel, "CWeaponBox_SetModel")
RegisterHam(Ham_Think,"weaponbox","fw_WeaponBoxThink")
RegisterHam(Ham_Think, "item_thighpack", "fw_WeaponBoxThink")
RegisterHam(Ham_Think,"weapon_shield","fw_WeaponBoxThink")
g_CvarTimeout = register_cvar("weapon_time", "30.0");
#if defined EXCLUDE_BOMB
giStartEnt = get_maxplayers() + 1
giMaxEntities = global_get( glb_maxEntities )
#endif
}

public CWeaponBox_SetModel(const ent) {
if(!pev_valid(ent))
return FMRES_IGNORED;

static szClassName[32]
pev(ent, pev_classname, szClassName, charsmax(szClassName))

if(equal(szClassName, "weaponbox")) {
#if defined EXCLUDE_BOMB
new i
for( i = giStartEnt; i < giMaxEntities; i++ ) {
// search for an entity that is owned by the weaponbox, this should be a weapon_* entity
if( pev_valid(i) && pev( i, pev_owner ) == ent ) {
if( cs_get_weapon_id(i) == CSW_C4 )
return FMRES_IGNORED;
else
break;
}
}
#endif
set_pev(ent, pev_impulse, STATUS_NONE);
set_pev(ent, pev_nextthink, get_gametime() + get_pcvar_float(g_CvarTimeout));
}
else if(equal(szClassName, "item_thighpack")) {
set_pev(ent, pev_impulse, STATUS_NONE);
set_pev(ent, pev_nextthink, get_gametime() + get_pcvar_float(g_CvarTimeout));
}
else if(equal(szClassName, "weapon_shield")) {
set_task( 0.1, "ChangeNextThinkTime", ent )
}

return FMRES_IGNORED;
}

public ChangeNextThinkTime( const ent ) {
/* 100 ms is too big time comparing with server FPS.
So we must make sure that shield entity still exists. */

if( pev_valid(ent) ) {
static szClassName[32]
pev(ent, pev_classname, szClassName, charsmax(szClassName))
if(equal(szClassName, "weapon_shield")) {
set_pev(ent, pev_impulse, STATUS_NONE);
set_pev(ent, pev_nextthink, get_gametime() + get_pcvar_float(g_CvarTimeout));
}
}
}

public fw_WeaponBoxThink(ent) {
if (!pev_valid(ent)) {
return HAM_IGNORED;
}

switch(pev(ent, pev_impulse)) {
case STATUS_NONE:{
set_pev(ent, pev_movetype, MOVETYPE_FLY);
set_pev(ent, pev_solid, SOLID_NOT);
set_pev(ent, pev_rendermode, kRenderTransAlpha);

set_pev(ent, pev_renderamt, 100.0);
set_pev(ent, pev_velocity, Float:{0.0, 0.0, VERTICAL_SPEED});
set_pev(ent, pev_avelocity, Float:{0.0, HORISONTAL_SPEED, 0.0})
set_pev(ent, pev_impulse, STATUS_EFFECT);
}
case STATUS_EFFECT: {
if (pev(ent, pev_renderamt) > 0.0) {
set_pev(ent, pev_renderamt, floatmax(0.0, pev(ent, pev_renderamt) - STEP));
} else {
set_pev(ent, pev_flags, FL_KILLME);
set_pev(ent, pev_impulse, STATUS_KILL);
}
}
}

set_pev(ent,pev_nextthink,get_gametime() + 0.1)

return HAM_SUPERCEDE;
}


МультиМод CS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя adva
сообщение 3.9.2019, 1:38
Сообщение #2


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

Стаж: 12 лет

Сообщений: 2543
Благодарностей: 1676
Полезность: 819

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

может пора уже перейти на рехлдс + регейм, где уже есть готовый квар?
Код:
// Время (секунды) для удаления предмета, который выбросил игрок
// Значение по умолчанию "300"
mp_item_staytime 30
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя $@NyA
сообщение 3.9.2019, 10:26
Сообщение #3


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

Стаж: 18 лет

Сообщений: 987
Благодарностей: 529
Полезность: 1050

Я сообщу,когда буду переходить...
Пока мне нужно здесь этот нюанс закрыть


МультиМод CS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя $@NyA
сообщение 21.12.2019, 4:27
Сообщение #4


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

Стаж: 18 лет

Сообщений: 987
Благодарностей: 529
Полезность: 1050

Полезным очень оказался
Код:
 #define m_rgpPlayerItems2 39 // CBasePlayerItem *   

Конечная станция ( кому-то может и зайдет )
Код:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define STEP 10.0
#define VERTICAL_SPEED 20.0
#define HORISONTAL_SPEED 60.0

enum (+= 1) {
STATUS_NONE = 0,
STATUS_EFFECT,
STATUS_KILL
}

new g_CvarTimeout;

public plugin_init() {
register_plugin("Remove Drop Weapon", "0.3", "GordonFreeman & F@nt0M");
register_forward(FM_SetModel, "FM_SetModel_Pre", 0)
register_forward(FM_SetModel, "CWeaponBox_ItemModel")
RegisterHam(Ham_Think, "item_thighpack", "fw_WeaponBoxThink")
RegisterHam(Ham_Think,"weapon_shield","fw_WeaponBoxThink")
RegisterHam(Ham_Think,"weaponbox","fw_WeaponBoxThink")
g_CvarTimeout = register_cvar("weapon_time", "30.0")
}

public FM_SetModel_Pre(const iEntity)
{
#define m_rgpPlayerItems2 39 // CBasePlayerItem *

new szClassName[32]; pev(iEntity, pev_classname, szClassName, charsmax(szClassName));
if(!equal(szClassName, "weaponbox")) return FMRES_IGNORED;

new pWeapon = get_pdata_cbase(iEntity, m_rgpPlayerItems2, 4);

if(!pev_valid(pWeapon))
{
set_pev(iEntity, pev_nextthink, get_gametime() + get_pcvar_float(g_CvarTimeout));
}

return FMRES_IGNORED;
}

public CWeaponBox_ItemModel(const iEntity) {
if(!pev_valid(iEntity))
return FMRES_IGNORED;

static szClassName[32]
pev(iEntity, pev_classname, szClassName, charsmax(szClassName))

if(equal(szClassName, "item_thighpack"))
{
set_pev(iEntity, pev_impulse, STATUS_NONE);
set_pev(iEntity, pev_nextthink, get_gametime() + get_pcvar_float(g_CvarTimeout));
}
else if(equal(szClassName, "weapon_shield"))
{
set_task( 0.1, "ChangeNextThinkTime", iEntity )
}

return FMRES_IGNORED;
}

public ChangeNextThinkTime( const iEntity ) {

if( pev_valid(iEntity) ) {
static szClassName[32]
pev(iEntity, pev_classname, szClassName, charsmax(szClassName))
if(equal(szClassName, "weapon_shield")) {
set_pev(iEntity, pev_impulse, STATUS_NONE);
set_pev(iEntity, pev_nextthink, get_gametime() + get_pcvar_float(g_CvarTimeout));
}
}
}

public fw_WeaponBoxThink(iEntity) {
if (!pev_valid(iEntity)) {
return HAM_IGNORED;
}

switch(pev(iEntity, pev_impulse)) {
case STATUS_NONE:{
set_pev(iEntity, pev_movetype, MOVETYPE_FLY);
set_pev(iEntity, pev_solid, SOLID_NOT);
set_pev(iEntity, pev_rendermode, kRenderTransAlpha);

set_pev(iEntity, pev_renderamt, 100.0);
set_pev(iEntity, pev_velocity, Float:{0.0, 0.0, VERTICAL_SPEED});
set_pev(iEntity, pev_avelocity, Float:{0.0, HORISONTAL_SPEED, 0.0})
set_pev(iEntity, pev_impulse, STATUS_EFFECT);
}
case STATUS_EFFECT: {
if (pev(iEntity, pev_renderamt) > 0.0) {
set_pev(iEntity, pev_renderamt, floatmax(0.0, pev(iEntity, pev_renderamt) - STEP));
} else {
set_pev(iEntity, pev_flags, FL_KILLME);
set_pev(iEntity, pev_impulse, STATUS_KILL);
}
}
}

set_pev(iEntity,pev_nextthink,get_gametime() + 0.1)

return HAM_SUPERCEDE;
}



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