Raised This Month: $ Target: $400
 0% 

DropWeaponSlot


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
LearninG
Senior Member
Join Date: Apr 2019
Location: Iran
Old 07-05-2019 , 11:19   DropWeaponSlot
Reply With Quote #1

PHP Code:
#include <amxmodx>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <fun>
#include <hamsandwich>
#include <xs>
#include <zombieplague>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"


public plugin_init() {

    
register_clcmd("say test" "test")
    
// Add your code here...
}

public 
test (id)
{
    
DropWeaponSlot id1);
}

stock DropWeaponSlotiPlayeriSlot 

    new 
iWeaponEntity GetWeaponFromSlotiPlayeriSlot ); 
    if( 
iWeaponEntity 
    { 
        new 
iWeaponID get_pdata_cbaseiWeaponEntitym_iId); 
         
        new 
szWeaponName32 ]; 
        
get_weaponnameiWeaponIDszWeaponNamecharsmaxszWeaponName ) ); 
         
        
engclient_cmdiPlayer"drop"szWeaponName ); 
    } 


stock GetWeaponFromSlotiPlayeriSlot 

    return ( 
<= iSlot <= ) ? get_pdata_cbaseiPlayerm_rpgPlayerItems_Slot0 iSlot) : -1

This is a test plugin but it has some errors i want to know what cause this errors ?

Compiler:
(32)undefined symbol "m_iId"
(43)undefined symbol "m_rpgPlayerItems_Slot0"
LearninG is offline
thEsp
BANNED
Join Date: Aug 2017
Old 07-05-2019 , 11:38   Re: DropWeaponSlot
Reply With Quote #2

Code:
#define m_rpgPlayerItems_Slot0 367 
#define m_iId 43
thEsp is offline
LearninG
Senior Member
Join Date: Apr 2019
Location: Iran
Old 07-05-2019 , 13:19   Re: DropWeaponSlot
Reply With Quote #3

Quote:
Originally Posted by thEsp View Post
Code:
#define m_rpgPlayerItems_Slot0 367 
#define m_iId 43
Thanks for reply but , after i added this to plugin when i buy the "Magical Bow" from extra items server crashes!!

Plugin Code:
PHP Code:
#include <amxmodx>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <fun>
#include <hamsandwich>
#include <xs>
#include <zombieplague>

#if AMXX_VERSION_NUM < 183
#include <colorchat>
#define Red print_team_red
#define Blue print_team_blue
#define Grey print_team_grey
#define DontChange print_team_default
#endif




// Weapon/Arrow models
new const P_MODEL[] = "models/bow/p_Shina_by_Oxigen.mdl"
new const V_MODEL[] = "models/bow/v_Shina_by_Oxigen.mdl"
new const W_MODEL[] = "models/bow/w_Shina_by_Oxigen.mdl"
new const ARROW_MODEL[] = "models/bow/arrow.mdl"

#define BURN_CLASSNAME "flame"
#define BURN_MODEL "sprites/bow/flame_burn01.spr"
#define POISON_MODEL "sprites/bow/poison.spr"

#define m_rpgPlayerItems_Slot0 367 
#define m_iId 43

// Settings
#define SWITCH_TIME    0.5

#define BASE_SPEED 400
#define BONUS_SPEED 500

#define BURN_LIFE 10.0
#define BURN_PERIOD 2.0
#define BURN_DAMAGE 50.0


#define NORMAL_DMG 100.0

#define SPEED_LOW_ICE 0.5
#define SLOW_ICE_TIME 7.0

#define EXPLODE_DAMAGE 500
#define EXPLODE_HITRADIUS 400

// Base number of arrows
#define NORMAL_AMMO 20
#define FIRE_AMMO 15
#define ICE_AMMO 10
#define EXPLODE_AMMO 3

//Number of extra arrows
#define NORMAL_AMMO_BUY 5
#define FIRE_AMMO_BUY 4
#define ICE_AMMO_BUY 3
#define EXPLODE_AMMO_BUY 1

// Cost of extra arrows
#define AMMO_COST 10
#define NEXT_SHOT_TIME 0.97

// Fire sound
new const ARROW_SHOOT[] =
{
    
"crossbow_shoot1.wav"
}

new 
g_exp_sprid

new Float:g_start_time[33], Float:g_finish_time[33]

new 
Float:g_Burn[33], Float:g_Poisoned[33]
new 
g_slowed[33], g_pressed[33], Float:g_old_speed[33]

// Ammo 
new g_ammo[33], g_normal_ammo[33], g_fire_ammo[33], g_ice_ammo[33],  g_explode_ammo[33]

// Player variables
new g_HasBow[33// whether player has bow
new bool:draw_wpn[33
new 
Float:lastSwitchTime[33]

new 
g_bow_mode[33], g_dmg_mode[33]

new 
g_MaxPlayers

// Render effects debug
new g_FrozenRenderingFx[33]
new 
Float:g_FrozenRenderingColor[33][3]
new 
g_FrozenRenderingRender[33]
new 
Float:g_FrozenRenderingAmount[33]

// Message ID's
new g_MsgDamageg_msgBarTime

enum 
{
    
anim_idle,
    
anim_shot1,
    
anim_shot2,
    
anim_reload,
    
anim_draw
}

enum
{
    
NORMAL_MODE 1,
    
FIRE_MODE 4,
    
ICE_MODE 3,
    
EXPLODE_MODE 2
}

enum
{
    
dmg_fire 1,
    
dmg_poison 2
}

// Plugin precache
public plugin_precache()
{
    
// Models
    
precache_model(P_MODEL)
    
precache_model(V_MODEL)
    
precache_model(W_MODEL)
    
precache_model(ARROW_MODEL)
    
precache_model(BURN_MODEL)
    
precache_model(POISON_MODEL)
    
    
// Sounds
    
precache_sound(ARROW_SHOOT)
    
//precache_sound(GRENADE_DRAW)
    
precache_sound("weapons/357_cock1.wav")

    
g_exp_sprid engfunc(EngFunc_PrecacheModel"sprites/zerogxplode.spr")
}

// ITEM
new g_itemid


// Plugin init
public plugin_init()
{
    
// Register plugin
    
register_plugin("PLUGIN""VERSION""AUTHOR")
    
    
// Events
    
register_event("CurWeapon""Event_CurrentWeapon""be""1=1")
    
register_event("HLTV""Event_NewRound""a""1=0""2=0");
    
    
// Forwards
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_scout""fw_bow_PrimaryAttack")
    
RegisterHam(Ham_Weapon_SecondaryAttack"weapon_scout""fw_bow_SecondaryAttack")
    
RegisterHam(Ham_Weapon_Reload"weapon_scout""fw_bow_Reload")
    
RegisterHam(Ham_Item_Deploy"weapon_scout""fw_bow_Deploy_Post"1)
    
register_think(BURN_CLASSNAME"BurnThink")
    
register_forward(FM_CmdStart"fw_CmdStart")
    
register_forward(FM_UpdateClientData"fw_UpdateClientData_Post"1)
    
register_forward(FM_Touch"fw_touch")
    
register_clcmd("drop","dropcmd")

    
// Messages
    
g_MsgDamage get_user_msgid("Damage")
    
g_msgBarTime get_user_msgid("BarTime")

    
g_itemid zp_register_extra_item("Magical Bow",6ZP_TEAM_HUMAN)

    
g_MaxPlayers get_maxplayers()
}

public 
zp_extra_item_selected(playeritemid)
{
    if (
itemid == g_itemid || is_user_alive(player))
    {
        
give_bow(player)
    }
    return 
PLUGIN_CONTINUE
}

public 
Event_NewRound()
{
    for (new 
0get_maxplayers(); i++)
        {
        
set_user_rendering(ikRenderFxGlowShell000kRenderNormal25)
        
g_Poisoned[i]=0.0    
        g_Burn
[i]=0.0    
        g_slowed
[i] = false
    
}
}

public 
dropcmd(id) {
            if(
g_HasBow[id] && get_user_weapon(id) == CSW_SCOUT) {
        new 
Float:Aim[3],Float:origin[3]
        
VelocityByAim(id64Aim)
        
entity_get_vector(id,EV_VEC_origin,origin)
        
        
origin[0] += Aim[0]
        
origin[1] += Aim[1]
        
        new 
bow create_entity("info_target")
        
entity_set_string(bow,EV_SZ_classname,"bow")
        
entity_set_model(bow,W_MODEL)    
        
        
entity_set_size(bow,Float:{-2.0,-2.0,-2.0},Float:{5.0,5.0,5.0})
        
entity_set_int(bow,EV_INT_solid,1)
        
        
entity_set_int(bow,EV_INT_movetype,6)
        
entity_set_vector(bow,EV_VEC_origin,origin)
        
g_HasBow[id] = false
        remowegun
(id)
        return 
PLUGIN_HANDLED
    

            return 
PLUGIN_CONTINUE
}

// remove gun  and save all guns
public remowegun(id) { 
    new 
wpnList[32
    new 
number
    get_user_weapons
(id,wpnList,number
    for (new 
0;number ;i++) { 
        if (
wpnList[i] == CSW_SCOUT) {
            
fm_strip_user_gun(idwpnList[i])
        }
    }


public 
buy_ammo(id)
{
    if(!
g_HasBow[id])
    {
        return 
PLUGIN_CONTINUE
    
}

    if(
is_user_alive(id))
    {
        
give_ammo(id)
        return 
PLUGIN_HANDLED
    
}

    if(
zp_get_user_ammo_packs(id) <= AMMO_COST)
    {
        
        return 
PLUGIN_CONTINUE
    
}
    

    
give_ammo(id)

    return 
PLUGIN_HANDLED
}

public 
give_ammo(id)
{
    if(
g_normal_ammo[id] == NORMAL_AMMO && g_fire_ammo[id] == FIRE_AMMO && g_ice_ammo[id] == ICE_AMMO  && g_explode_ammo[id] == EXPLODE_AMMO)
    {
        return 
PLUGIN_CONTINUE
    
}

    
zp_set_user_ammo_packs(idzp_get_user_ammo_packs(id) - AMMO_COST)

    
g_normal_ammo[id] += NORMAL_AMMO_BUY
    g_fire_ammo
[id] += FIRE_AMMO_BUY
    g_ice_ammo
[id] += ICE_AMMO_BUY
    g_explode_ammo
[id] += EXPLODE_AMMO_BUY

    
if(g_normal_ammo[id] > NORMAL_AMMOg_normal_ammo[id] = NORMAL_AMMO
    
if(g_fire_ammo[id] > FIRE_AMMOg_fire_ammo[id] = FIRE_AMMO
    
if(g_ice_ammo[id] > ICE_AMMOg_ice_ammo[id] = ICE_AMMO
    
if(g_explode_ammo[id] > EXPLODE_AMMOg_explode_ammo[id] = EXPLODE_AMMO

     update_ammo
(id)

    return 
PLUGIN_CONTINUE
}

//play anim
public playanim(player,anim)
{
    
set_pev(playerpev_weaponanimanim)
    
message_begin(MSG_ONESVC_WEAPONANIM, {000}, player)
    
write_byte(anim)
    
write_byte(pev(playerpev_body))
    
message_end()
}


// Client connected
public client_connect(id)
{
    
// Reset all
    
g_HasBow[id] = false
    g_finish_time
[id] = 0.0
}

// Current weapon player is holding
public Event_CurrentWeapon(id)
{
    if (
is_user_bot(id))
        return

    if(!
is_user_connected(id))
        return
    
    
// Read weapon ID
    
new weaponID read_data(2)
    
    if (
weaponID == CSW_SCOUT)
    {
        if (
g_HasBow[id])
        {
            if(!
draw_wpn[id])
            {
                
playanim(idanim_draw)
                
update_ammo(id)
                
//emit_sound(id, CHAN_WEAPON, GRENADE_DRAW, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
                // View model
                
entity_set_string(idEV_SZ_viewmodelV_MODEL)
                
                
// Player model
                
entity_set_string(idEV_SZ_weaponmodelP_MODEL)
                
draw_wpn[id] = true
            
}
        }
        else
        {
            
// View model
            
entity_set_string(idEV_SZ_viewmodel"models/v_scout.mdl")
            
            
// Player model
            
entity_set_string(idEV_SZ_weaponmodel"models/p_scout.mdl")
        }
    } 
    else 
    {
        
draw_wpn[id] = false
    
}
}

public 
remove_bow() {
    new 
nextitem find_ent_by_class(-1"bow")
    while ((
nextitem find_ent_by_class(-1"bow")) != 0) {
        
remove_entity(nextitem)
    }
    return 
PLUGIN_CONTINUE
}        

// Player killed
public fw_PlayerKilled(victimattackershouldgib)
{
    if (
g_HasBow[victim])        
    {
        
// Reset all
        
g_HasBow[victim] = false
        set_user_rendering
(victimkRenderFxGlowShell000kRenderNormal25)

        
// Remove screen's bar
        
message_begin(MSG_ONEg_msgBarTime_victim)
        
write_byte(0// time
        
write_byte(0// unknown
        
message_end()
        
        
remowegun(victim)
    }
}

public 
give_bow(id)
{
    
give_weapon(id)
    
g_bow_mode[id] = NORMAL_MODE

    g_normal_ammo
[id] = NORMAL_AMMO
    g_fire_ammo
[id] = FIRE_AMMO
    g_ice_ammo
[id] = ICE_AMMO
    g_explode_ammo
[id] = EXPLODE_AMMO
}

//give weapon
public give_weapon(id){
    
g_HasBow[id] = true
    DropWeaponSlot
(id1)
    
give_item(id"weapon_scout")
    
update_ammo(id)
}

public 
fw_bow_PrimaryAttack(Weapon)
{
    new 
Player get_pdata_cbase(Weapon414)
    
    if (
g_HasBow[Player])
    return 
HAM_SUPERCEDE

    
return HAM_IGNORED
}

public 
fw_bow_SecondaryAttack(Weapon)
{
    new 
Player get_pdata_cbase(Weapon414)
    
    if (
g_HasBow[Player])
    return 
HAM_SUPERCEDE

    
return HAM_IGNORED
}

public 
fw_bow_Reload(Weapon
{
         new 
Player get_pdata_cbase(Weapon414)
    
    if (
g_HasBow[Player])
    return 
HAM_SUPERCEDE

    
return HAM_IGNORED
}

public 
fw_bow_Deploy_Post(Weapon)
{
    new 
Player get_pdata_cbase(Weapon414)
    
    
update_ammo(Player)
}

// Command start
public fw_CmdStart(idUC_HandleSeed
{
    if(!
g_HasBow[id] || !is_user_alive(id))
        return 
FMRES_IGNORED

    
static CurButtonOldButton
    
    CurButton 
get_uc(UC_HandleUC_Buttons)
    
OldButton = (pev(idpev_oldbuttons) & IN_ATTACK)
    
    if(
get_gametime() - g_finish_time[id] > NEXT_SHOT_TIME)
    {
        
// Attack1 button pressed
        
if(CurButton IN_ATTACK && !OldButton)
        {
            if(
get_user_weapon(id) != CSW_SCOUT)
                return 
FMRES_IGNORED

            
if((g_bow_mode[id] == NORMAL_MODE && g_normal_ammo[id] <= 0) || (g_bow_mode[id] == FIRE_MODE && g_fire_ammo[id] <= 0) || (g_bow_mode[id] == ICE_MODE && g_ice_ammo[id] <= 0) || (g_bow_mode[id] == EXPLODE_MODE && g_explode_ammo[id] <= 0))
                return 
FMRES_IGNORED

            g_start_time
[id] = get_gametime()

            
// A bar appears in his screen
            
message_begin(MSG_ONE_UNRELIABLEg_msgBarTime_id)
            
write_byte(3// time
            
write_byte(0// unknown
            
message_end()

            
g_pressed[id] = true
        
}

        if(
CurButton IN_ATTACK && OldButton)
        {
            if((
g_bow_mode[id] == NORMAL_MODE && g_normal_ammo[id] <= 0) || (g_bow_mode[id] == FIRE_MODE && g_fire_ammo[id] <= 0) || (g_bow_mode[id] == ICE_MODE && g_ice_ammo[id] <= 0) || (g_bow_mode[id] == EXPLODE_MODE && g_explode_ammo[id] <= 0))
                return 
FMRES_IGNORED

            
if(!g_pressed[id])
                return 
FMRES_IGNORED
        
            
if(get_user_weapon(id) != CSW_SCOUT)
            {
                
g_finish_time[id] = get_gametime()
        
                
FireArrow(id)

                
// Remove screen's bar
                
message_begin(MSG_ONEg_msgBarTime_id)
                
write_byte(0// time
                
write_byte(0// unknown
                
message_end()

                
g_pressed[id] = false
            
}
        }

        if(!(
CurButton IN_ATTACK) && OldButton)
        {            
            if(
get_user_weapon(id) != CSW_SCOUT)
                return 
FMRES_IGNORED

            
if((g_bow_mode[id] == NORMAL_MODE && g_normal_ammo[id] <= 0) || (g_bow_mode[id] == FIRE_MODE && g_fire_ammo[id] <= 0) || (g_bow_mode[id] == ICE_MODE && g_ice_ammo[id] <= 0) || (g_bow_mode[id] == EXPLODE_MODE && g_explode_ammo[id] <= 0))
                return 
FMRES_IGNORED

            
if(!g_pressed[id])
                return 
FMRES_IGNORED

            g_finish_time
[id] = get_gametime()
        
            
FireArrow(id)

            
// Remove screen's bar
            
message_begin(MSG_ONEg_msgBarTime_id)
            
write_byte(0// time
            
write_byte(0// unknown
            
message_end()

            
g_pressed[id] = false
        
}
    }

    if((
CurButton IN_ATTACK2) && !(pev(idpev_oldbuttons) & IN_ATTACK2))
    {        
        if(
get_user_weapon(id) != CSW_SCOUT)
            return 
FMRES_IGNORED
            
        
if ( get_gametime ( ) - lastSwitchTime id ] < SWITCH_TIME || (OldButton IN_ATTACK2)) return

        if(!
g_pressed[id])
        {
            if (
is_user_alive(id))

            switch(
g_bow_mode[id])
            {
                case 
1:
                {
                    
g_bow_mode[id]= 4
                    client_print
(id,print_center,"Fire Mode")
                    
update_ammo(id)
                    
                }
                case 
2:
                {
                    
g_bow_mode[id]= 1
                    client_print
(id,print_center,"Normal Mode")
                    
update_ammo(id)
                    
                    
                }
                case 
3:
                {
                    
g_bow_mode[id]= 2
                    client_print
(id,print_center,"Explode Mode")
                    
update_ammo(id)
                    
                }
                case 
4:
                {
                    
g_bow_mode[id]= 3
                    client_print
(id,print_center,"Ice Mode")
                    
update_ammo(id)
                }
            }
            
lastSwitchTime id ] = get_gametime ( )
        }
    }        
}

//block anim standart wpn 
public fw_UpdateClientData_Post(idsendweaponscd_handle
{    
    if (!
is_user_alive(id)) 
    return 
FMRES_IGNORED

    
// Block default sounds    
    
if (get_user_weapon(id) == CSW_SCOUT && g_HasBow[id]) 
    {
        
set_cd(cd_handleCD_flNextAttackhalflife_time() + 0.001 ); 
    }

    return 
FMRES_HANDLED
}

// Fire gremade
public FireArrow(id)
{
    
// Set animation
    
playanim(idanim_shot1)

    
// Get origin. angle and velocity
    
new velocity[33]
    new 
Float:fAngle[3], Float:fVelocity[3]
    
pev(idpev_v_anglefAngle)
    
    
// Create ent
    
new arrow create_entity("info_target")
    
    
// Not grenade
    
if (!arrow) return PLUGIN_HANDLED

    
// Classname
    
entity_set_string(arrowEV_SZ_classname"bow_arrow")
    
    
// Model
    
entity_set_model(arrowARROW_MODEL)

    if(
g_bow_mode[id] == NORMAL_MODE)
    {
        
set_rendering(arrowkRenderFxGlowShell255255255kRenderNormal50)
        
g_normal_ammo[id]--
    }
    else if(
g_bow_mode[id] == FIRE_MODE)
    {
        
set_rendering(arrowkRenderFxGlowShell25500kRenderNormal50)
        
g_fire_ammo[id]--
    }
    else if(
g_bow_mode[id] == ICE_MODE)
    {
        
set_rendering(arrowkRenderFxGlowShell00255kRenderNormal50)
        
g_ice_ammo[id]--
    }
    else if(
g_bow_mode[id] == EXPLODE_MODE)
    {
        
set_rendering(arrowkRenderFxGlowShell1501050kRenderNormal50)
        
g_explode_ammo[id]--
    }

    
update_ammo(id)

    new 
Float:vOrigin[3],Float:vUp[3]
    
pev(idpev_originvOrigin)
    
    
global_get(glb_v_upvUp)
    new 
up 17
    vOrigin
[0] = vOrigin[0] + vUp[0] * up
    vOrigin
[1] = vOrigin[1] + vUp[1] * up
    vOrigin
[2] = vOrigin[2] + vUp[2] * up
    
    
// Origin
    
entity_set_origin(arrowvOrigin)
    
    
// Angles
    
entity_set_vector(arrowEV_VEC_anglesfAngle)
    
    
// Size
    
new Float:MinBox[3] = {-1.0, -1.0, -1.0}
    new 
Float:MaxBox[3] = {1.01.01.0}
    
entity_set_vector(arrowEV_VEC_minsMinBox)
    
entity_set_vector(arrowEV_VEC_maxsMaxBox)
    
    
// Interaction
    
entity_set_int(arrowEV_INT_solidSOLID_SLIDEBOX)
    
    
// Movetype
    
entity_set_int(arrowEV_INT_movetypeMOVETYPE_TOSS)
    
    
// Owner
    
entity_set_edict(arrowEV_ENT_ownerid)
    
    
// Velocity
    
new Floatholdtime[33
    new 
Floatmnoji[33]

    
holdtime[id] = g_finish_time[id] - g_start_time[id]

    if(
holdtime[id] < 1.0holdtime[id] = 1.0
    
if(holdtime[id] > 3.0holdtime[id] = 3.0

    
    mnoji
[id] = BASE_SPEED holdtime[id] * BONUS_SPEED
    velocity
[id] = floatround(mnoji[id],floatround_round)
    
VelocityByAim(idvelocity[id], fVelocity)
    
    
entity_set_vector(arrowEV_VEC_velocityfVelocity)
    
    
// Launch sound
    
emit_sound(arrowCHAN_WEAPONARROW_SHOOTVOL_NORMATTN_NORM0PITCH_NORM)

    return 
PLUGIN_CONTINUE
}    

// We hit something!!!
public pfn_touch(ptrptd)
{
    
// If ent is valid
    
if (pev_valid(ptr))
    {    
        
// Get classnames
        
static classname[32], classnameptd[32]
        
pev(ptrpev_classnameclassname31)
        
        
// Our ent
        
if(equal(classname"bow_arrow"))
        {
            
// Get it's origin
            
new Float:Origin[3]
            
pev(ptrpev_originOrigin)

            new 
owner pev(ptrpev_owner)

            if(
g_bow_mode[owner] == EXPLODE_MODE)
            {
                
// Explosion
                
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYOrigin0)
                
write_byte(TE_EXPLOSION)
                
engfunc(EngFunc_WriteCoordOrigin[0])
                
engfunc(EngFunc_WriteCoordOrigin[1])
                
engfunc(EngFunc_WriteCoordOrigin[2])
                
write_short(g_exp_sprid)
                
write_byte(40)
                
write_byte(30)
                
write_byte(0)
                
message_end()

                
check_radius_damage(ptrowner)
            }

            if(
is_user_alive(ptd))
            {
                if(
cs_get_user_team(ptd) != cs_get_user_team(owner))
                {
                    
g_old_speed[ptd] = get_user_maxspeed(ptd)

                    if(
g_bow_mode[owner] == NORMAL_MODE)
                    {
                        
ExecuteHamB(Ham_TakeDamageptdptrownerNORMAL_DMGDMG_BULLET)
                    }
                    else if(
g_bow_mode[owner] == FIRE_MODE)
                    {
                        if (!
g_slowed[ptd] || !g_Burn[ptd] || g_slowed[ptd] || g_Burn[ptd])
                        {
                                                                
g_dmg_mode[ptd] = dmg_fire
                                 CreateBurn
(ptdowner)
                            }
                        
                    }
                    else if(
g_bow_mode[owner] == ICE_MODE)
                    {
                        if (!
g_slowed[ptd] || !g_Burn[ptd] || g_slowed[ptd] || g_Burn[ptd])
                        {

                            
g_FrozenRenderingFx[ptd] = pev(ptdpev_renderfx)
                            
pev(ptdpev_rendercolorg_FrozenRenderingColor[ptd])
                            
g_FrozenRenderingRender[ptd] = pev(ptdpev_rendermode)
                            
pev(ptdpev_renderamtg_FrozenRenderingAmount[ptd])

                            
set_user_rendering(ptdkRenderFxGlowShell0100200kRenderNormal25)
                            
set_user_maxspeed(ptdget_user_maxspeed(ptd) * SPEED_LOW_ICE)
                            
g_slowed[ptd] = true
                            set_task
(SLOW_ICE_TIME"make_speed"ptd__"a"1)
                
                            
message_begin(MSG_ONE_UNRELIABLEg_MsgDamage_ptd)
                            
write_byte(0// damage save
                            
write_byte(0// damage take
                            
write_long(DMG_DROWN// damage type - DMG_FREEZE
                            
write_coord(0// x
                            
write_coord(0// y
                            
write_coord(0// z
                            
message_end()
                        }
                    
                    }
                }
            }
            
// We hit breakable
            
if(pev_valid(ptd))
            {
                
pev(ptdpev_classnameclassnameptd31)
                if (
equali(classnameptd"func_breakable"))
                {
                    
// Destroy it
                    //force_use(ptr,ptd)
                
}
            }
            
set_pev(ptrpev_flagsFL_KILLME)
        }
    }    
    if(
is_valid_ent(ptr)) 
    {
        new 
classname[32]
        
entity_get_string(ptr,EV_SZ_classname,classname,31)
        
        if(
equal(classname"bow")) 
        {
            if(
is_valid_ent(ptd)) 
            {
                new 
id ptd
                
if(id && id 34
                {
                    if(
allowed_toucher(id))
                    {
                        
// Pick up weapon
                        
give_weapon(id)
                        
remove_entity(ptr)
                    }
                }
            }
        }
    }
}    

public 
CreateBurn(idattacker)
{
    if(
g_Burn[id])
        return

    if(
g_dmg_mode[id] == dmg_fire)
    {
        new 
ent=CreateAnimationSprite(attackerBURN_CLASSNAMEBURN_MODEL1.010.0)
    
        
set_pev(entpev_solidSOLID_NOT)
        
set_pev(entpev_movetypeMOVETYPE_FOLLOW)
    
        
set_pev(entpev_aimentid)
    
        
set_pev(entpev_fuser2get_gametime()+BURN_LIFE)
    
        
g_Burn[id]=get_gametime()+BURN_PERIOD
    
}
}

public 
BurnThink(ent)
{
    if(!
pev_valid(ent))
        return
        
    static 
Float:lifeaim_ent
    
    pev
(ent,pev_fuser2life)
    
    
aim_ent=pev(entpev_aiment)

    if(
g_dmg_mode[aim_ent] == dmg_fire)
    {    
        if(
get_gametime()>life||!is_user_alive(aim_ent) ||!zp_get_user_zombie(aim_ent))
        {
            
g_Burn[aim_ent]=0.0    
        
            fm_remove_entity
(ent)
        
            return
        }
    
        if(
get_gametime()>g_Burn[aim_ent])
        {
            
ExecuteHamB(Ham_TakeDamageaim_ent ent ,pev(entpev_owner), BURN_DAMAGEDMG_BURN)
        
            
g_Burn[aim_ent]=get_gametime()+BURN_PERIOD
        
}
    }
}


public 
make_speed(id)
{
    if(
is_user_alive(id) && g_slowed[id])
    {
        
g_slowed[id] = false
        set_user_maxspeed
(idg_old_speed[id])
        
fm_set_rendering_float(idg_FrozenRenderingFx[id], g_FrozenRenderingColor[id], g_FrozenRenderingRender[id], g_FrozenRenderingAmount[id])
    }
}

public 
check_radius_damage(entattacker)
{
    for(new 
0g_MaxPlayersi++)
    {
        if(!
is_user_alive(i))
            continue
        if(
cs_get_user_team(attacker) == cs_get_user_team(i))
            continue
        if(
entity_range(enti) > EXPLODE_HITRADIUS)
            continue
            
        
Do_TakeDamage(entiattackercan_see_fm(enti))
    }
}

public 
Do_TakeDamage(EntVictimAttackercan_see)
{
    static 
Float:DamageFloat:CurrentDis
    
    CurrentDis 
entity_range(EntVictim)
    
Damage EXPLODE_DAMAGE - ((CurrentDis EXPLODE_HITRADIUS) * EXPLODE_DAMAGE)
    
    if(
Damage 0)
    {
        static 
WeaponEnt
        WeaponEnt 
fm_get_user_weapon_entity(AttackerCSW_HEGRENADE)
        
        if(!
pev_valid(WeaponEnt))
            
WeaponEnt 0

        
if(!can_see)
            
Damage /= 2
            
        ExecuteHamB
(Ham_TakeDamageVictimWeaponEntAttackerDamageDMG_BULLET)
    }    
}

public 
update_ammo(id)
{
    if(!
is_user_alive(id))
        return

    if(
g_bow_mode[id] == NORMAL_MODE)
    {
        
g_ammo[id] = g_normal_ammo[id]
    }
    else if(
g_bow_mode[id] == FIRE_MODE)
    {
        
g_ammo[id] = g_fire_ammo[id]
    }
    else if(
g_bow_mode[id] == ICE_MODE)
    {
        
g_ammo[id] = g_ice_ammo[id]
    }
    else if(
g_bow_mode[id] == EXPLODE_MODE)
    {
        
g_ammo[id] = g_explode_ammo[id]
    }
    
    static 
weapon_entweapon_ent fm_find_ent_by_owner(-1"weapon_scout"id)
    if(
pev_valid(weapon_ent)) cs_set_weapon_ammo(weapon_ent1)    
    
    
cs_set_user_bpammo(idCSW_SCOUTg_ammo[id])
    
    
engfunc(EngFunc_MessageBeginMSG_ONE_UNRELIABLEget_user_msgid("CurWeapon"), {000}, id)
    
write_byte(1)
    
write_byte(CSW_SCOUT)
    
write_byte(-1)
    
message_end()

    
set_task(0.1"hud_debug"id)
}

public 
hud_debug(id)
{
    
engfunc(EngFunc_MessageBeginMSG_ONE_UNRELIABLEget_user_msgid("CurWeapon"), {000}, id)
    
write_byte(1)
    
write_byte(CSW_SCOUT)
    
write_byte(-1)
    
message_end()
}

// Allowed toucher
stock allowed_toucher(player)
{
    if (
g_HasBow[player])
        return 
false
    
    
return true
}
 

stock CreateAnimationSprite(owner, const classname[], const model[], Float:scaleFloat:framerate)
{
    new 
ent=fm_create_entity("env_sprite")

    
set_pev(entpev_framerateframerate)
    
set_pev(entpev_modelmodel)

    
dllfunc(DLLFunc_Spawnent)

    
set_pev(entpev_classnameclassname)
    
set_pev(entpev_ownerowner)

    
fm_entity_set_model(entmodel)
    
fm_set_rendering(entkRenderFxNoDissipation255255255kRenderGlow255)

    
set_pev(entpev_framerateframerate)
    
set_pev(entpev_scalescale)

    return 
ent
}

public 
can_see_fm(entindex1entindex2)
{
    if (!
entindex1 || !entindex2)
        return 
false

    
if (pev_valid(entindex1) && pev_valid(entindex1))
    {
        new 
flags pev(entindex1pev_flags)
        if (
flags EF_NODRAW || flags FL_NOTARGET)
        {
            return 
0
        
}

        new 
Float:lookerOrig[3]
        new 
Float:targetBaseOrig[3]
        new 
Float:targetOrig[3]
        new 
Float:temp[3]

        
pev(entindex1pev_originlookerOrig)
        
pev(entindex1pev_view_ofstemp)
        
lookerOrig[0] += temp[0]
        
lookerOrig[1] += temp[1]
        
lookerOrig[2] += temp[2]

        
pev(entindex2pev_origintargetBaseOrig)
        
pev(entindex2pev_view_ofstemp)
        
targetOrig[0] = targetBaseOrig [0] + temp[0]
        
targetOrig[1] = targetBaseOrig [1] + temp[1]
        
targetOrig[2] = targetBaseOrig [2] + temp[2]

        
engfunc(EngFunc_TraceLinelookerOrigtargetOrig0entindex10//  checks the had of seen player
        
if (get_tr2(0TraceResult:TR_InOpen) && get_tr2(0TraceResult:TR_InWater))
        {
            return 
0
        

        else 
        {
            new 
Float:flFraction
            get_tr2
(0TraceResult:TR_flFractionflFraction)
            if (
flFraction == 1.0 || (get_tr2(0TraceResult:TR_pHit) == entindex2))
            {
                return 
1
            
}
            else
            {
                
targetOrig[0] = targetBaseOrig [0]
                
targetOrig[1] = targetBaseOrig [1]
                
targetOrig[2] = targetBaseOrig [2]
                
engfunc(EngFunc_TraceLinelookerOrigtargetOrig0entindex10//  checks the body of seen player
                
get_tr2(0TraceResult:TR_flFractionflFraction)
                if (
flFraction == 1.0 || (get_tr2(0TraceResult:TR_pHit) == entindex2))
                {
                    return 
1
                
}
                else
                {
                    
targetOrig[0] = targetBaseOrig [0]
                    
targetOrig[1] = targetBaseOrig [1]
                    
targetOrig[2] = targetBaseOrig [2] - 17.0
                    engfunc
(EngFunc_TraceLinelookerOrigtargetOrig0entindex10//  checks the legs of seen player
                    
get_tr2(0TraceResult:TR_flFractionflFraction)
                    if (
flFraction == 1.0 || (get_tr2(0TraceResult:TR_pHit) == entindex2))
                    {
                        return 
1
                    
}
                }
            }
        }
    }
    return 
0
}

stock fm_set_rendering_float(entityfx kRenderFxNoneFloat:color[3], render kRenderNormalFloat:amount 16.0)
{
    
set_pev(entitypev_renderfxfx)
    
set_pev(entitypev_rendercolorcolor)
    
set_pev(entitypev_rendermoderender)
    
set_pev(entitypev_renderamtamount)
}

stock DropWeaponSlotiPlayeriSlot 

    new 
iWeaponEntity GetWeaponFromSlotiPlayeriSlot ); 
    if( 
iWeaponEntity 
    { 
        new 
iWeaponID get_pdata_cbaseiWeaponEntitym_iId); 
         
        new 
szWeaponName32 ]; 
        
get_weaponnameiWeaponIDszWeaponNamecharsmaxszWeaponName ) ); 
         
        
engclient_cmdiPlayer"drop"szWeaponName ); 
    } 


stock GetWeaponFromSlotiPlayeriSlot 

    return ( 
<= iSlot <= ) ? get_pdata_cbaseiPlayerm_rpgPlayerItems_Slot0 iSlot) : -1

can you check where is the problem ?!

Thing that have been added :
PHP Code:
stock DropWeaponSlotiPlayeriSlot )  
{  
    new 
iWeaponEntity GetWeaponFromSlotiPlayeriSlot );  
    if( 
iWeaponEntity )  
    {  
        new 
iWeaponID get_pdata_cbaseiWeaponEntitym_iId);  
          
        new 
szWeaponName32 ];  
        
get_weaponnameiWeaponIDszWeaponNamecharsmaxszWeaponName ) );  
          
        
engclient_cmdiPlayer"drop"szWeaponName );  
    }  
}  

stock GetWeaponFromSlotiPlayeriSlot )  
{  
    return ( 
<= iSlot <= ) ? get_pdata_cbaseiPlayerm_rpgPlayerItems_Slot0 iSlot) : -1;  

PHP Code:
#define m_rpgPlayerItems_Slot0 367 
#define m_iId 43 
PHP Code:
public give_bow(id)
{
    
give_weapon(id)
    
g_bow_mode[id] = NORMAL_MODE

    g_normal_ammo
[id] = NORMAL_AMMO
    g_fire_ammo
[id] = FIRE_AMMO
    g_ice_ammo
[id] = ICE_AMMO
    g_explode_ammo
[id] = EXPLODE_AMMO
}

//give weapon
public give_weapon(id){
    
g_HasBow[id] = true
    DropWeaponSlot
(id1)
    
give_item(id"weapon_scout")
    
update_ammo(id)

EDIT: there is no errors in log but server crashes!

Last edited by LearninG; 07-05-2019 at 13:27.
LearninG is offline
LearninG
Senior Member
Join Date: Apr 2019
Location: Iran
Old 07-06-2019 , 02:03   Re: DropWeaponSlot
Reply With Quote #4

I want to give player a weapon , but if he/she has a primary weapon he will get 2 primary weapons !
so i want to check if he/she has primary weapon , if yes then drop that gun and give the new gun that's all.
LearninG is offline
thEsp
BANNED
Join Date: Aug 2017
Old 07-06-2019 , 03:11   Re: DropWeaponSlot
Reply With Quote #5

What is wrong with peoples these days? Why are you bumping 5 posts per day?
thEsp is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 17:16.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode