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

Как сделать touch по класснейму?

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

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

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

Как сделать touch по класснейму?

Сообщение Donnyanno » 30 мар 2018, 19:28

Ребята,помогите пж. Я хочу сделать что бы при прикосновении к данной коробке,условно выдавалось AK и патроны. Не могу понять,коробка спавнится,но её половина в земле,да и не выдаёт оно оружие,и ещё я сделал её,что бы люди через неё не могли проходить и всё равно я могу через неё проходить.

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

new const g_iWeaponBox[] = "WeaponBox";
new const 
g_BoxModel[ ] = "models/jbe_engine/weaponbox/weaponbox.mdl";

public 
plugin_init() 
{
    
register_plugin("[JBRZ] WeaponBox""1.0""AlexandrCara");
    
register_clcmd("create""Cmd_BoxSpawn");
    
register_touch(g_iWeaponBox"player""Weapon_Give");
}

public 
plugin_precache()
{
    
engfunc(EngFunc_PrecacheModelg_BoxModel);
}
public 
Touch(iEntityid)
{
    if(!
pev_valid(iEntity) || jbe_get_user_team(id) == || jbe_get_day_mode() == 3) return FMRES_IGNORED;
    
Weapon_Give(id);
    return 
FMRES_IGNORED;
}

public 
Weapon_Give(id)
{
    
fm_give_item(id"weapon_deagle");
    
fm_set_user_bpammo(idCSW_DEAGLE50);
}
public 
Cmd_BoxSpawn(id)
{
    new 
iOrigin[3];             
    
get_user_origin(idiOrigin3); 
    new 
FloatfOrigin[3];             
    
IVecFVec(iOriginfOrigin); 
    
    if(
CreateBox(fOrigin))
        
    return 
PLUGIN_HANDLED;
}

public 
CreateBox(const Float:fOrigin[3])
{
    new 
iEntity create_entity("info_target"); 

    if(!
pev_valid(iEntity)) return PLUGIN_HANDLED;

    
set_pev(iEntitypev_originfOrigin);     
    
set_pev(iEntitypev_classnameg_iWeaponBox);     
    
set_pev(iEntitypev_solidSOLID_BBOX);    
    
set_pev(iEntitypev_nextthinkget_gametime() + 2.0);

    
engfunc(EngFunc_SetModeliEntityg_BoxModel); 

    return 
PLUGIN_HANDLED;
}

stock fm_set_user_bpammo(pPlayeriWeaponIdiAmount)
{
    new 
iOffset;
    switch(
iWeaponId)
    {
        case 
CSW_AWPiOffset 377// ammo_338magnum
        
case CSW_SCOUTCSW_AK47CSW_G3SG1iOffset 378// ammo_762nato
        
case CSW_M249iOffset 379// ammo_556natobox
        
case CSW_FAMASCSW_M4A1CSW_AUGCSW_SG550CSW_GALICSW_SG552iOffset 380// ammo_556nato
        
case CSW_M3CSW_XM1014iOffset 381// ammo_buckshot
        
case CSW_USPCSW_UMP45CSW_MAC10iOffset 382// ammo_45acp
        
case CSW_FIVESEVENCSW_P90iOffset 383// ammo_57mm
        
case CSW_DEAGLEiOffset 384// ammo_50ae
        
case CSW_P228iOffset 385// ammo_357sig
        
case CSW_GLOCK18CSW_MP5NAVYCSW_TMPCSW_ELITEiOffset 386// ammo_9mm
        
case CSW_FLASHBANGiOffset 387;
        case 
CSW_HEGRENADEiOffset 388;
        case 
CSW_SMOKEGRENADEiOffset 389;
        case 
CSW_C4iOffset 390;
        default: return;
    }
    
set_pdata_int(pPlayeriOffsetiAmount);
Последний раз редактировалось Subb98 30 мар 2018, 19:36, всего редактировалось 1 раз.
Причина: для вставки исходного кода используйте кнопку "Код / Исходник"
Аватара пользователя
Donnyanno
 
Сообщения: 17
Зарегистрирован: 23 янв 2018, 16:21
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Как сделать touch по класснейму?

Сообщение Vaqtincha » 30 мар 2018, 21:41

в чем плох дефолтный веапонбокс ?
что бы люди через неё не могли проходить и всё равно я могу через неё проходить.
не вижу сетсайз
админгандонсоси
Аватара пользователя
Vaqtincha
 
Сообщения: 277
Зарегистрирован: 28 мар 2018, 15:05
Забанен
Благодарил (а): 8 раз.
Поблагодарили: 53 раз.

Помогите Touch

Сообщение Donnyanno » 30 мар 2018, 22:48

Ребята,ещё одна просьба,не могу понять.почему у меня постоянно после прикосновения с коробкой выдаются диглы? Рассказую,я решил сделать коробку,которая при прикосновению,к примеру,будет выдавать диглы,но у меня какой-то баг,что при одном прикосновении с коробкой диглы тупо постоянно добавляются ко мне в инвентарь,выкидаю - он появляется,хотя я уже на далёком расстаянии оно всё равно выдаёт

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

new const g_szBoxClassname[] = "WeaponBox" 
new const g_BoxModel[] = "models/jbe_engine/weaponbox/weaponbox.mdl" 

public plugin_init() 

    
register_plugin("[JBRZ] WeaponBox""1.0""AlexandrCara"
    
register_clcmd("createbox","Cmd_BoxSpawn"
    
register_forward(FM_Touch,"fwd_touch"


public 
plugin_precache() 

engfunc(EngFunc_PrecacheModelg_BoxModel); 



public 
fwd_touch(ent,id

    if(!
pev_valid(ent)) return FMRES_IGNORED

    new 
szClassname[32
    
pev(entpev_classnameszClassnamecharsmax(szClassname)) 
    if(
equali(szClassnameg_szBoxClassname)) 
    { 
        
fm_give_item(id"weapon_deagle"); 
    } 
    return 
FMRES_IGNORED
}


public 
Cmd_BoxSpawn(id)
{
    new 
iOrigin[3];                     //Создаем массив для хранение координат
    
get_user_origin(idiOrigin3);     //Получаем координаты куда смотрит игрок
    
new FloatfOrigin[3];                 //Создаем массив для float коодинат
    
IVecFVec(iOriginfOrigin);             //Конвертируем координаты в дробные
    
    
if(CreateBox(fOrigin))    
        
    return 
PLUGIN_HANDLED;
}

public 
CreateBox(const Float:fOrigin[3])
{
    new 
iEntity create_entity("info_target");             //Создаем объект info_target

    
if(!pev_valid(iEntity)) return PLUGIN_HANDLED//Заканчиваем. Дальше нам делать нечего

    
set_pev(iEntitypev_originfOrigin);             //Присваиваем координаты
    
set_pev(iEntitypev_classnameg_szBoxClassname);     //Присваиваем Classname
    
set_pev(iEntitypev_solidSOLID_BBOX);        //Делаем его непроходимым
    
set_pev(iEntitypev_nextthinkget_gametime() + 2.0); //Создаем запуск think

    
engfunc(EngFunc_SetModeliEntityg_BoxModel); //Присваиваем модель
    
engfunc(EngFunc_SetSizeiEntityFloat:{-50.0, -50.0, -50.0}, Float:{80.0100.080.0});

    return 
PLUGIN_HANDLED;

Неинформативное название темы, Вы должны зарегистрироваться, чтобы видеть ссылки. // Subb98
Аватара пользователя
Donnyanno
 
Сообщения: 17
Зарегистрирован: 23 янв 2018, 16:21
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#


Вернуться в Вопросы по AMXX и его плагинам

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

cron