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

Rocket_AT_Crowbar: добавить кол-во ракет

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

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

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

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Rocket_AT_Crowbar: добавить кол-во ракет

Сообщение smurfavr » 25 июн 2017, 14:56

Я не очень хорошо понимаю, када добавить эти строки. Вы можете добавить их в свой код, пожалуйста.


Replace backpack ammo with a in-plugin array variable:
Код: Выделить всё

    
new Ammo hl_get_user_bpammo(IdHLW_RPG)
    
hl_set_user_bpammo(IdHLW_RPGAmmo)
 

Код: Выделить всё
new player_rockets[33]; // at the plugin start

    
new Ammo player_rockets[Id]
    
player_rockets[Id] = Ammo

In the player connect handler set
Код: Выделить всё

    player_rockets
[Id] = 1

And the same in the DeathEvent
Код: Выделить всё

    
new victim read_data(2);
    
player_rockets[victim] = 1

Should be enough.


Название темы скорректировано // Subb98
У вас нет необходимых прав для просмотра вложений в этом сообщении.






Форум за HALF LIFE
http://smurfa.bulgarianforum.net/
Аватара пользователя
smurfavr
 
Сообщения: 88
Зарегистрирован: 02 авг 2011, 20:03
Откуда: България
Благодарил (а): 48 раз.
Поблагодарили: 2 раз.

Re: Rocket_AT_Crowbar: добавить кол-во ракет

Сообщение Jeiker » 25 июн 2017, 17:55

У тебя же расписано, что куда добавить и что нужно поменять, держи:

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

#define PLUGIN "Rocket_AT_Crowbar"
#define VERSION "0.2"
#define AUTHOR "abdobiskra"

#define RC_W_NAME              "weapon_rocketcrowbar"
#define RC_SPRITE_HUD_TXT      "sprites/weapon_rocketcrowbar.txt"
#define RC_W_MODEL_ROCKET      "models/v_rocketcrowbar.mdl"
#define RC_W_MODEL_DEFAULT     "models/v_crowbar.mdl"
#define RC_SPRITE_TRAIL        "sprites/smoke.spr"

new player_rockets[33]; // at the plugin start

new const
extraoffset_weapon 
= 4,
m_flNextSecondaryAttack = 36;

new g_EntTrial

public plugin_init
() {
    
    register_plugin
(PLUGIN, VERSION, AUTHOR)
    
    register_forward
(FM_PlayerPreThink,"Fw_FmPlayerPostThinkPost", 1)
    
    RegisterHam
(Ham_Weapon_SecondaryAttack, "weapon_crowbar", "Crowbar_SecondaryAttack_Post", 0 )
    RegisterHam(Ham_Item_Deploy, "weapon_crowbar", "fw_Item_Deploy_Post", 1)
    RegisterHam(Ham_Item_Holster, "weapon_crowbar", "fw_Item_Holster_Post", 1);
    
    register_clcmd
(RC_W_NAME, "RC_cmd");
    
    register_event
("CurWeapon", "Event_CurWeapon", "be","1=1")
    register_message(get_user_msgid("DeathMsg"), "Message_DeathMsg")
}

public client_connect(id)
{
    player_rockets[id] = 1
}

public Event_CurWeapon(id){
    
    new weaponID 
= read_data(2)
    
    if 
(weaponID != HLW_GAUSS)
    return PLUGIN_CONTINUE
    
    set_pev
(id, pev_weaponmodel2, "models/v_gauss.mdl");
    set_pev(id, pev_viewmodel2, "models/v_gauss.mdl");
    
    return PLUGIN_CONTINUE
}

public Message_DeathMsg() {
   static const nameWeapon[] = "rpg_rocket"
   static text[64]
   
   new iAttacker 
= get_msg_arg_int( 1 );
   new victim = read_data(2);

   player_rockets[victim] = 1
   get_msg_arg_string
(3, text, 63)
   
   if 
(equal(text, nameWeapon) && get_user_weapon(iAttacker) == HLW_CROWBAR)
   {
      
      set_msg_arg_string
( 3, "crowbar" )
      
   
}
   return PLUGIN_CONTINUE
}

public plugin_precache()
{
    g_EntTrial = precache_model(RC_SPRITE_TRAIL)
    
    precache_model
(RC_W_MODEL_DEFAULT)
    precache_model(RC_W_MODEL_ROCKET)
    precache_model("models/v_gauss.mdl")
    
    precache_generic
(RC_SPRITE_HUD_TXT)
}

public Fw_FmPlayerPostThinkPost(id) {

    if(!is_user_alive(id))
    {
        return FMRES_HANDLED
    
}
    
    new Weapon 
= get_user_weapon(id);
    new Ammo = hl_get_user_bpammo(id, HLW_RPG)

    
    if
(Weapon == HLW_CROWBAR && Ammo != 0 )
    {
        set_pev(id, pev_weaponmodel2, RC_W_MODEL_ROCKET);
        set_pev(id, pev_viewmodel2, RC_W_MODEL_ROCKET);
        
        return FMRES_IGNORED
            
    
}else if(pev(id,pev_button) & IN_ATTACK2 && Weapon == HLW_CROWBAR && Ammo <= 0){

        set_pev(id, pev_weaponmodel2, RC_W_MODEL_DEFAULT);
        set_pev(id, pev_viewmodel2, RC_W_MODEL_DEFAULT);

        return FMRES_IGNORED
    
}
    return FMRES_HANDLED
}

public Crowbar_SecondaryAttack_Post(const crowbar)
{
    new Id = pev(crowbar, pev_owner)
    
    new Ammo 
= player_rockets[Id]
    
    if
(!Ammo)
    {
        return HAM_SUPERCEDE
    
}

    new Float:origin[3], Float:view_ofs[3], Float:angles[3], Float:velocity[3]
    
    Ammo
--

    player_rockets[Id] = Ammo
    
    new Ent
; Ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "rpg_rocket"))
    
    pev
(Id, pev_origin, origin)
    pev(Id, pev_view_ofs, view_ofs)
    pev(Id, pev_v_angle, angles)
    
    origin
[0] += view_ofs[0] 
    origin
[1] += view_ofs[1] 
    origin
[2] += view_ofs[2]
    
    velocity_by_aim 
(Id, 2000, velocity)
    
    set_pev
(Ent, pev_origin, origin)
    set_pev(Ent, pev_angles, angles)
    set_pev(Ent, pev_owner, Id)
    
    client_cmd
(0, "mp3 stop; stopsound");
    
    DispatchSpawn
(Ent)
    
    engfunc
(EngFunc_SetModel, Ent, "models/rpgrocket.mdl")
    
    set_pev
(Ent, pev_effects, pev(Ent, pev_effects) | EF_LIGHT)
    
    if
(pev_valid(crowbar))
    {
        ExecuteHamB(Ham_Weapon_PrimaryAttack, crowbar)// show animation attack for others
        UTIL_PlayWeaponAnimation (Id, 5)
    }
    
    set_pev
( Ent, pev_velocity, velocity);
    
    message_begin
(MSG_BROADCAST, SVC_TEMPENTITY);
    write_byte(TE_BEAMFOLLOW);
    write_short(Ent); // entity
    write_short(g_EntTrial); // model
    write_byte(25); // life
    write_byte(12); // width
    write_byte(random_num(0, 255)); // r, g, b
    write_byte(random_num(0, 255)); // r, g, b
    write_byte(random_num(0, 255)); // r, g, b
    write_byte(255); // brightness
    message_end();
    
    set_pdata_float 
(crowbar, m_flNextSecondaryAttack, 2.0, extraoffset_weapon)
    
    return HAM_HANDLED
}

public fw_Item_Deploy_Post(ent)
{
    new id = pev(ent, pev_owner);
    
    if
(!is_user_alive(id))
    {
        return FMRES_HANDLED
    
}
    message_begin( MSG_ONE, get_user_msgid( "WeaponList" ), .player = id );  
    
{
        write_string( RC_W_NAME );         // WeaponName  
        write_byte( -);                   // PrimaryAmmoID  
        write_byte( -);                   // PrimaryAmmoMaxAmount  
        write_byte( 6 );                    // SecondaryAmmoID  (rpg)
        write_byte( -);                   // SecondaryAmmoMaxAmount  
        write_byte( 0 );                    // SlotID (0...N)  
        write_byte( 1 );                    // NumberInSlot (1...N)  
        write_byte( HLW_CROWBAR );         // WeaponID  
        write_byte( 0 );                    // Flags 
        message_end(); 
    
}
    set_hudmessage(0, 255, 0, 0.38, 0.89, 0, 0.2, 10.0)
    show_hudmessage(id, "                      | ROCKET~AT~CROWBAR | ^nPick Up RPG Ammo & Launched it useing Secondary Attack")

    return HAM_IGNORED
}
public fw_Item_Holster_Post(ent) {
    
    new id 
= pev(ent, pev_owner);

    set_hudmessage(0, 255, 0, 0.38, 0.89, 0, 0.2, 1.0)
    show_hudmessage(id, "")
    
    return HAM_IGNORED
;
}

public RC_cmd(id)
{
    engclient_cmd(id, "weapon_crowbar" );
    return 1
}

stock UTIL_PlayWeaponAnimation (const Player, const Sequence)
{
    set_pev (Player, pev_weaponanim, Sequence)

    message_begin (MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)
    write_byte(Sequence)
    write_byte(0)
    message_end()
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ fbidis\\ ansi\\ ansicpg1252\\ deff0{\\ fonttbl{\\ f0\\ fnil\\ fcharset0 Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ ltrpar\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
Аватара пользователя
Jeiker
 
Сообщения: 21
Зарегистрирован: 17 июн 2011, 04:28
Благодарил (а): 2 раз.
Поблагодарили: 10 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6
Php

Re: Rocket_AT_Crowbar: добавить кол-во ракет

Сообщение smurfavr » 26 июн 2017, 13:22

Спасибо Jeiker






Форум за HALF LIFE
http://smurfa.bulgarianforum.net/
Аватара пользователя
smurfavr
 
Сообщения: 88
Зарегистрирован: 02 авг 2011, 20:03
Откуда: България
Благодарил (а): 48 раз.
Поблагодарили: 2 раз.

Re: Rocket_AT_Crowbar: добавить кол-во ракет

Сообщение smurfavr » 28 июл 2017, 16:00

Delete
Последний раз редактировалось smurfavr 06 сен 2017, 20:26, всего редактировалось 1 раз.






Форум за HALF LIFE
http://smurfa.bulgarianforum.net/
Аватара пользователя
smurfavr
 
Сообщения: 88
Зарегистрирован: 02 авг 2011, 20:03
Откуда: България
Благодарил (а): 48 раз.
Поблагодарили: 2 раз.

Re: Rocket_AT_Crowbar: добавить кол-во ракет

Сообщение Subb98 » 28 июл 2017, 18:30

«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Rocket_AT_Crowbar: добавить кол-во ракет

Сообщение smurfavr » 29 июл 2017, 13:08

Delete
Последний раз редактировалось smurfavr 06 сен 2017, 20:27, всего редактировалось 1 раз.






Форум за HALF LIFE
http://smurfa.bulgarianforum.net/
Аватара пользователя
smurfavr
 
Сообщения: 88
Зарегистрирован: 02 авг 2011, 20:03
Откуда: България
Благодарил (а): 48 раз.
Поблагодарили: 2 раз.

Re: Rocket_AT_Crowbar: добавить кол-во ракет

Сообщение Pafos » 29 июл 2017, 16:29

Аватара пользователя
Pafos
 
Сообщения: 574
Зарегистрирован: 07 апр 2014, 18:03
Откуда: pfnClientConnect
Забанен
Благодарил (а): 129 раз.
Поблагодарили: 97 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn


Вернуться в Скриптинг

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

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