Raised This Month: $51 Target: $400
 12% 

ZP5.0.8a + Sniper & Assassin + Compatibility with ZPA (2014/08/03)


Post New Thread Reply   
 
Thread Tools Display Modes
andros
Member
Join Date: Oct 2011
Location: Kusadak
Old 08-28-2014 , 15:10   Re: ZP5.0.8a + Sniper & Assassin + Compatibility with ZPA (2014/08/03)
Reply With Quote #21

Quote:
Originally Posted by cr0w View Post
Yep . just a peace of shit problem ..

try this one https://forums.alliedmods.net/showpo...&postcount=107

better from this script.
I not need:
1. Sniper vs Nemesis Round
2. Sniper vs Assassin Round
but all users need zp50_item_infection_bomb fix...
__________________
andros is offline
Send a message via Skype™ to andros
zmd94
Veteran Member
Join Date: Nov 2013
Location: Malaysia (9w2zow).
Old 08-28-2014 , 20:04   Re: ZP5.0.8a + Sniper & Assassin + Compatibility with ZPA (2014/08/03)
Reply With Quote #22

Quote:
Originally Posted by andros
but all users need zp50_item_infection_bomb fix.
Just attach your zp50_item_infection_bomb.sma file here. As I have never encountered the problem. I will try to help. ;)
zmd94 is offline
andros
Member
Join Date: Oct 2011
Location: Kusadak
Old 08-29-2014 , 04:10   Re: ZP5.0.8a + Sniper & Assassin + Compatibility with ZPA (2014/08/03)
Reply With Quote #23

Quote:
Originally Posted by zmd94 View Post
Just attach your zp50_item_infection_bomb.sma file here. As I have never encountered the problem. I will try to help. ;)
PHP Code:
/*================================================================================
    
    ---------------------------------
    -*- [ZP] Item: Infection Bomb -*-
    ---------------------------------
    
    This plugin is part of Zombie Plague Mod and is distributed under the
    terms of the GNU General Public License. Check ZP_ReadMe.txt for details.
    
================================================================================*/

#define ITEM_NAME "Infection Bomb"
#define ITEM_COST 20

#include <amxmodx>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <amx_settings_api>
#include <cs_weap_models_api>
#include <zp50_items>
#include <zp50_gamemodes>

// Settings file
new const ZP_SETTINGS_FILE[] = "zombieplague.ini"

// Default sounds
new const sound_grenade_infect_explode[][] = { "zombie_plague/grenade_infect.wav" }
new const 
sound_grenade_infect_player[][] = { "scientist/scream20.wav" "scientist/scream22.wav" "scientist/scream05.wav" }

#define MODEL_MAX_LENGTH 64
#define SOUND_MAX_LENGTH 64
#define SPRITE_MAX_LENGTH 64

// Models
new g_model_grenade_infect[MODEL_MAX_LENGTH] = "models/zombie_plague/v_grenade_infect.mdl"

// Sprites
new g_sprite_grenade_trail[SPRITE_MAX_LENGTH] = "sprites/laserbeam.spr"
new g_sprite_grenade_ring[SPRITE_MAX_LENGTH] = "sprites/shockwave.spr"

new Array:g_sound_grenade_infect_explode
new Array:g_sound_grenade_infect_player

// Explosion radius for custom grenades
const Float:NADE_EXPLOSION_RADIUS 240.0

// HACK: pev_ field used to store custom nade types and their values
const PEV_NADE_TYPE pev_flTimeStepSound
const NADE_TYPE_INFECTION 1111

new g_trailSprg_exploSpr

new g_ItemID
new g_GameModeInfectionID
new g_GameModeMultiID
new g_InfectionBombCountercvar_infection_bomb_round_limit

public plugin_init()
{
    
register_plugin("[ZP] Item: Infection Bomb"ZP_VERSION_STRING"ZP Dev Team")
    
    
register_event("HLTV""event_round_start""a""1=0""2=0")
    
    
register_forward(FM_SetModel"fw_SetModel")
    
RegisterHam(Ham_Think"grenade""fw_ThinkGrenade")
    
    
g_ItemID zp_items_register(ITEM_NAMEITEM_COST)
    
cvar_infection_bomb_round_limit register_cvar("zp_infection_bomb_round_limit""3")
}

public 
plugin_precache()
{
    
// Initialize arrays
    
g_sound_grenade_infect_explode ArrayCreate(SOUND_MAX_LENGTH1)
    
g_sound_grenade_infect_player ArrayCreate(SOUND_MAX_LENGTH1)
    
    
// Load from external file
    
amx_load_setting_string_arr(ZP_SETTINGS_FILE"Sounds""GRENADE INFECT EXPLODE"g_sound_grenade_infect_explode)
    
amx_load_setting_string_arr(ZP_SETTINGS_FILE"Sounds""GRENADE INFECT PLAYER"g_sound_grenade_infect_player)
    
    
// If we couldn't load custom sounds from file, use and save default ones
    
new index
    
if (ArraySize(g_sound_grenade_infect_explode) == 0)
    {
        for (
index 0index sizeof sound_grenade_infect_explodeindex++)
            
ArrayPushString(g_sound_grenade_infect_explodesound_grenade_infect_explode[index])
        
        
// Save to external file
        
amx_save_setting_string_arr(ZP_SETTINGS_FILE"Sounds""GRENADE INFECT EXPLODE"g_sound_grenade_infect_explode)
    }
    if (
ArraySize(g_sound_grenade_infect_player) == 0)
    {
        for (
index 0index sizeof sound_grenade_infect_playerindex++)
            
ArrayPushString(g_sound_grenade_infect_playersound_grenade_infect_player[index])
        
        
// Save to external file
        
amx_save_setting_string_arr(ZP_SETTINGS_FILE"Sounds""GRENADE INFECT PLAYER"g_sound_grenade_infect_player)
    }
    
    
// Load from external file, save if not found
    
if (!amx_load_setting_string(ZP_SETTINGS_FILE"Weapon Models""GRENADE INFECT"g_model_grenade_infectcharsmax(g_model_grenade_infect)))
        
amx_save_setting_string(ZP_SETTINGS_FILE"Weapon Models""GRENADE INFECT"g_model_grenade_infect)
    if (!
amx_load_setting_string(ZP_SETTINGS_FILE"Grenade Sprites""TRAIL"g_sprite_grenade_trailcharsmax(g_sprite_grenade_trail)))
        
amx_save_setting_string(ZP_SETTINGS_FILE"Grenade Sprites""TRAIL"g_sprite_grenade_trail)
    if (!
amx_load_setting_string(ZP_SETTINGS_FILE"Grenade Sprites""RING"g_sprite_grenade_ringcharsmax(g_sprite_grenade_ring)))
        
amx_save_setting_string(ZP_SETTINGS_FILE"Grenade Sprites""RING"g_sprite_grenade_ring)
    
    
// Precache sounds
    
new sound[SOUND_MAX_LENGTH]
    for (
index 0index ArraySize(g_sound_grenade_infect_explode); index++)
    {
        
ArrayGetString(g_sound_grenade_infect_explodeindexsoundcharsmax(sound))
        
precache_sound(sound)
    }
    for (
index 0index ArraySize(g_sound_grenade_infect_player); index++)
    {
        
ArrayGetString(g_sound_grenade_infect_playerindexsoundcharsmax(sound))
        
precache_sound(sound)
    }
    
    
// Precache models
    
precache_model(g_model_grenade_infect)
    
g_trailSpr precache_model(g_sprite_grenade_trail)
    
g_exploSpr precache_model(g_sprite_grenade_ring)
}

public 
plugin_cfg()
{
    
g_GameModeInfectionID zp_gamemodes_get_id("Infection Mode")
    
g_GameModeMultiID zp_gamemodes_get_id("Multiple Infection Mode")
}

public 
event_round_start()
{
    
g_InfectionBombCounter 0
}

public 
zp_fw_items_select_pre(iditemidignorecost)
{
    
// This is not our item
    
if (itemid != g_ItemID)
        return 
ZP_ITEM_AVAILABLE;
    
    
// Infection bomb only available during infection modes
    
new current_mode zp_gamemodes_get_current()
    if (
current_mode != g_GameModeInfectionID && current_mode != g_GameModeMultiID)
        return 
ZP_ITEM_DONT_SHOW;
    
    
// Infection bomb only available to zombies
    
if (!zp_core_is_zombie(id))
        return 
ZP_ITEM_DONT_SHOW;
    
    
// Display remaining item count for this round
    
static text[32]
    
formatex(textcharsmax(text), "[%d/%d]"g_InfectionBombCounterget_pcvar_num(cvar_infection_bomb_round_limit))
    
zp_items_menu_text_add(text)
    
    
// Reached infection bomb limit for this round
    
if (g_InfectionBombCounter >= get_pcvar_num(cvar_infection_bomb_round_limit))
        return 
ZP_ITEM_NOT_AVAILABLE;
    
    
// Player already owns infection bomb
    
if (user_has_weapon(idCSW_HEGRENADE))
        return 
ZP_ITEM_NOT_AVAILABLE;
    
    return 
ZP_ITEM_AVAILABLE;
}

public 
zp_fw_items_select_post(iditemidignorecost)
{
    
// This is not our item
    
if (itemid != g_ItemID)
        return;
    
    
// Give infection bomb
    
give_item(id"weapon_hegrenade")
    
g_InfectionBombCounter++
}

public 
zp_fw_core_cure(idattacker)
{
    
// Remove custom grenade model
    
cs_reset_player_view_model(idCSW_HEGRENADE)
}

public 
zp_fw_core_infect_post(idattacker)
{
    
// Set custom grenade model
    
cs_set_player_view_model(idCSW_HEGRENADEg_model_grenade_infect)
}

// Forward Set Model
public fw_SetModel(entity, const model[])
{
    
// We don't care
    
if (strlen(model) < 8)
        return;
    
    
// Narrow down our matches a bit
    
if (model[7] != 'w' || model[8] != '_')
        return;
    
    
// Get damage time of grenade
    
static Float:dmgtime
    pev
(entitypev_dmgtimedmgtime)
    
    
// Grenade not yet thrown
    
if (dmgtime == 0.0)
        return;
    
    
// Grenade's owner isn't zombie?
    
if (!zp_core_is_zombie(pev(entitypev_owner)))
        return;
    
    
// HE Grenade
    
if (model[9] == 'h' && model[10] == 'e')
    {
        
// Give it a glow
        
fm_set_rendering(entitykRenderFxGlowShell02000kRenderNormal16);
        
        
// And a colored trail
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_BEAMFOLLOW// TE id
        
write_short(entity// entity
        
write_short(g_trailSpr// sprite
        
write_byte(10// life
        
write_byte(10// width
        
write_byte(0// r
        
write_byte(200// g
        
write_byte(0// b
        
write_byte(200// brightness
        
message_end()
        
        
// Set grenade type on the thrown grenade entity
        
set_pev(entityPEV_NADE_TYPENADE_TYPE_INFECTION)
    }
}

// Ham Grenade Think Forward
public fw_ThinkGrenade(entity)
{
    
// Invalid entity
    
if (!pev_valid(entity)) return HAM_IGNORED;
    
    
// Get damage time of grenade
    
static Float:dmgtime
    pev
(entitypev_dmgtimedmgtime)
    
    
// Check if it's time to go off
    
if (dmgtime get_gametime())
        return 
HAM_IGNORED;
    
    
// Check if it's one of our custom nades
    
switch (pev(entityPEV_NADE_TYPE))
    {
        case 
NADE_TYPE_INFECTION// Infection Bomb
        
{
            
infection_explode(entity)
            return 
HAM_SUPERCEDE;
        }
    }
    
    return 
HAM_IGNORED;
}

// Infection Bomb Explosion
infection_explode(ent)
{
    
// Round ended
    
if (zp_gamemodes_get_current() == ZP_NO_GAME_MODE)
    {
        
// Get rid of the grenade
        
engfunc(EngFunc_RemoveEntityent)
        return;
    }
    
    
// Get origin
    
static Float:origin[3]
    
pev(entpev_originorigin)
    
    
// Make the explosion
    
create_blast(origin)
    
    
// Infection nade explode sound
    
static sound[SOUND_MAX_LENGTH]
    
ArrayGetString(g_sound_grenade_infect_exploderandom_num(0ArraySize(g_sound_grenade_infect_explode) - 1), soundcharsmax(sound))
    
emit_sound(entCHAN_WEAPONsound1.0ATTN_NORM0PITCH_NORM)
    
    
// Get attacker
    
new attacker pev(entpev_owner)
    
    
// Infection bomb owner disconnected or not zombie anymore?
    
if (!is_user_connected(attacker) || !zp_core_is_zombie(attacker))
    {
        
// Get rid of the grenade
        
engfunc(EngFunc_RemoveEntityent)
        return;
    }
    
    
// Collisions
    
new victim = -1
    
    
while ((victim engfunc(EngFunc_FindEntityInSpherevictimoriginNADE_EXPLOSION_RADIUS)) != 0)
    {
        
// Only effect alive humans
        
if (!is_user_alive(victim) || zp_core_is_zombie(victim))
            continue;
        
        
// Last human is killed
        
if (zp_core_get_human_count() == 1)
        {
            
ExecuteHamB(Ham_Killedvictimattacker0)
            continue;
        }
        
        
// Turn into zombie
        
zp_core_infect(victimattacker)
        
        
// Victim's sound
        
ArrayGetString(g_sound_grenade_infect_playerrandom_num(0ArraySize(g_sound_grenade_infect_player) - 1), soundcharsmax(sound))
        
emit_sound(victimCHAN_VOICEsound1.0ATTN_NORM0PITCH_NORM)
    }
    
    
// Get rid of the grenade
    
engfunc(EngFunc_RemoveEntityent)
}

// Infection Bomb: Green Blast
create_blast(const Float:origin[3])
{
    
// Smallest ring
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYorigin0)
    
write_byte(TE_BEAMCYLINDER// TE id
    
engfunc(EngFunc_WriteCoordorigin[0]) // x
    
engfunc(EngFunc_WriteCoordorigin[1]) // y
    
engfunc(EngFunc_WriteCoordorigin[2]) // z
    
engfunc(EngFunc_WriteCoordorigin[0]) // x axis
    
engfunc(EngFunc_WriteCoordorigin[1]) // y axis
    
engfunc(EngFunc_WriteCoordorigin[2]+385.0// z axis
    
write_short(g_exploSpr// sprite
    
write_byte(0// startframe
    
write_byte(0// framerate
    
write_byte(4// life
    
write_byte(60// width
    
write_byte(0// noise
    
write_byte(0// red
    
write_byte(200// green
    
write_byte(0// blue
    
write_byte(200// brightness
    
write_byte(0// speed
    
message_end()
    
    
// Medium ring
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYorigin0)
    
write_byte(TE_BEAMCYLINDER// TE id
    
engfunc(EngFunc_WriteCoordorigin[0]) // x
    
engfunc(EngFunc_WriteCoordorigin[1]) // y
    
engfunc(EngFunc_WriteCoordorigin[2]) // z
    
engfunc(EngFunc_WriteCoordorigin[0]) // x axis
    
engfunc(EngFunc_WriteCoordorigin[1]) // y axis
    
engfunc(EngFunc_WriteCoordorigin[2]+470.0// z axis
    
write_short(g_exploSpr// sprite
    
write_byte(0// startframe
    
write_byte(0// framerate
    
write_byte(4// life
    
write_byte(60// width
    
write_byte(0// noise
    
write_byte(0// red
    
write_byte(200// green
    
write_byte(0// blue
    
write_byte(200// brightness
    
write_byte(0// speed
    
message_end()
    
    
// Largest ring
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYorigin0)
    
write_byte(TE_BEAMCYLINDER// TE id
    
engfunc(EngFunc_WriteCoordorigin[0]) // x
    
engfunc(EngFunc_WriteCoordorigin[1]) // y
    
engfunc(EngFunc_WriteCoordorigin[2]) // z
    
engfunc(EngFunc_WriteCoordorigin[0]) // x axis
    
engfunc(EngFunc_WriteCoordorigin[1]) // y axis
    
engfunc(EngFunc_WriteCoordorigin[2]+555.0// z axis
    
write_short(g_exploSpr// sprite
    
write_byte(0// startframe
    
write_byte(0// framerate
    
write_byte(4// life
    
write_byte(60// width
    
write_byte(0// noise
    
write_byte(0// red
    
write_byte(200// green
    
write_byte(0// blue
    
write_byte(200// brightness
    
write_byte(0// speed
    
message_end()
}

// Set entity's rendering type (from fakemeta_util)
stock fm_set_rendering(entityfx kRenderFxNone255255255render kRenderNormalamount 16)
{
    static 
Float:color[3]
    
color[0] = float(r)
    
color[1] = float(g)
    
color[2] = float(b)
    
    
set_pev(entitypev_renderfxfx)
    
set_pev(entitypev_rendercolorcolor)
    
set_pev(entitypev_rendermoderender)
    
set_pev(entitypev_renderamtfloat(amount))

__________________
andros is offline
Send a message via Skype™ to andros
zmd94
Veteran Member
Join Date: Nov 2013
Location: Malaysia (9w2zow).
Old 08-29-2014 , 05:01   Re: ZP5.0.8a + Sniper & Assassin + Compatibility with ZPA (2014/08/03)
Reply With Quote #24

Just try below:
-->
zmd94 is offline
andros
Member
Join Date: Oct 2011
Location: Kusadak
Old 08-29-2014 , 16:18   Re: ZP5.0.8a + Sniper & Assassin + Compatibility with ZPA (2014/08/03)
Reply With Quote #25

Quote:
Originally Posted by zmd94 View Post
Just try below:
-->
Code:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team

Error: Undefined symbol "id" on line 243
Error: Undefined symbol "id" on line 273

2 Errors.
Could not locate output file C:\Users\Andreja\Desktop\zp50_item_infection_bomb.amx (compile failed).
__________________

Last edited by andros; 08-29-2014 at 16:19.
andros is offline
Send a message via Skype™ to andros
cr0w
Senior Member
Join Date: Mar 2014
Location: middle east
Old 08-30-2014 , 11:05   Re: ZP5.0.8a + Sniper & Assassin + Compatibility with ZPA (2014/08/03)
Reply With Quote #26

Quote:
Originally Posted by andros View Post
Code:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team

Error: Undefined symbol "id" on line 243
Error: Undefined symbol "id" on line 273

2 Errors.
Could not locate output file C:\Users\Andreja\Desktop\zp50_item_infection_bomb.amx (compile failed).
are you ! using zp5.0.8a ?
__________________
the city is no fun
there is no sun
and its so dark
cr0w is offline
Send a message via Yahoo to cr0w Send a message via Skype™ to cr0w
zmd94
Veteran Member
Join Date: Nov 2013
Location: Malaysia (9w2zow).
Old 08-30-2014 , 13:06   Re: ZP5.0.8a + Sniper & Assassin + Compatibility with ZPA (2014/08/03)
Reply With Quote #27

Quote:
Originally Posted by andros
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team

Error: Undefined symbol "id" on line 243
Error: Undefined symbol "id" on line 273

2 Errors.
Could not locate output file C:\Users\Andreja\Desktop\zp50_item_infection_ bomb.amx (compile failed).
Its my fault.

Sorry, I can't find the way to fix it.
zmd94 is offline
andros
Member
Join Date: Oct 2011
Location: Kusadak
Old 08-31-2014 , 11:06   Re: ZP5.0.8a + Sniper & Assassin + Compatibility with ZPA (2014/08/03)
Reply With Quote #28

Quote:
Originally Posted by cr0w View Post
are you ! using zp5.0.8a ?
Of course, I using:
https://forums.alliedmods.net/showpo...25&postcount=1
__________________
andros is offline
Send a message via Skype™ to andros
cr0w
Senior Member
Join Date: Mar 2014
Location: middle east
Old 09-01-2014 , 09:05   Re: ZP5.0.8a + Sniper & Assassin + Compatibility with ZPA (2014/08/03)
Reply With Quote #29

@andros

i think the problem from compiler your amxmodx compiler (1.8.1) is too old change

1.8.3 was released !!

oh , oh I remember there was ! the plugin is good but still have bugs we need a legend like :MeRcyLeZZ to fix them
__________________
the city is no fun
there is no sun
and its so dark

Last edited by cr0w; 09-01-2014 at 09:07.
cr0w is offline
Send a message via Yahoo to cr0w Send a message via Skype™ to cr0w
zmd94
Veteran Member
Join Date: Nov 2013
Location: Malaysia (9w2zow).
Old 09-01-2014 , 10:00   Re: ZP5.0.8a + Sniper & Assassin + Compatibility with ZPA (2014/08/03)
Reply With Quote #30

@ andros, I think you need to update your AMXX to the 1.8.2 version.
zmd94 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 09:07.


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