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

[req] zp50_class_dragon


Post New Thread Reply   
 
Thread Tools Display Modes
leonsi
Member
Join Date: Jul 2014
Location: Albania
Old 02-27-2015 , 03:44   Re: [req] zp50_class_dragon
Reply With Quote #11

I think the problem is the zp50_admin_menu but I think I can fix it.
leonsi is offline
XeOn Cp
Senior Member
Join Date: Jan 2014
Old 02-27-2015 , 06:06   Re: [req] zp50_class_dragon
Reply With Quote #12

can you fix it?
zp50_admin_menu.sma
XeOn Cp is offline
XeOn Cp
Senior Member
Join Date: Jan 2014
Old 02-27-2015 , 10:02   Re: [req] zp50_class_dragon
Reply With Quote #13

leonsi, thanks bro i solved problem myself, i checked original scriptings of that new Modes and then i compiled them, the problem were in admin menu , and i recompiled it correctly( there were some mistakes in codes ) and then it does worked, everything is nice ) my server is going to end.
XeOn Cp is offline
jievylook
Senior Member
Join Date: Sep 2018
Old 02-06-2019 , 23:17   Re: [req] zp50_class_dragon
Reply With Quote #14

Quote:
Originally Posted by XeOn Cp View Post
hello guys, i downloaded this new gamemodes from here - https://forums.alliedmods.net/showthread.php?t=252189
and this is really nice class and modes, but i want Dragon class and i can't compile it, web compiler is typing error... can anyone fix or tell me what to do or compile by yourself and give me?
PHP Code:
/*===============================================================================
    
    ---------------------------
    -*- [ZP] Class: Dragon -*-
    ---------------------------
    
    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.
    
================================================================================*/

#include <amxmodx>
#include <fun>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <amx_settings_api>
#include <cs_maxspeed_api>
#include <cs_player_models_api>
#include <zp50_colorchat>
#include <cs_weap_models_api>
#include <cs_ham_bots_api>
#include <zp50_core>
#define LIBRARY_GRENADE_FROST "zp50_grenade_frost"
#include <zp50_grenade_frost>
#define LIBRARY_GRENADE_FIRE "zp50_grenade_fire"
#include <zp50_grenade_fire>

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

// Default models
new const models_dragon_player[][] = { "zombie_source" }
new const 
models_dragon_claw[][] = { "models/zombie_plague/v_knife_zombie.mdl" }
new const 
CVAR_DRAGONFLY_SPEED[]  = "zp_dragon_fly_speed"

#define PLAYERMODEL_MAX_LENGTH 32
#define MODEL_MAX_LENGTH 64

// Custom models
new Array:g_models_dragon_player
new Array:g_models_dragon_claw

#define TASK_AURA 100
#define ID_AURA (taskid - TASK_AURA)

#define flag_get(%1,%2) (%1 & (1 << (%2 & 31)))
#define flag_get_boolean(%1,%2) (flag_get(%1,%2) ? true : false)
#define flag_set(%1,%2) %1 |= (1 << (%2 & 31))
#define flag_unset(%1,%2) %1 &= ~(1 << (%2 & 31))

new g_MaxPlayers
new g_IsDragon

new cvar_dragon_healthcvar_dragon_base_healthcvar_dragon_speedcvar_dragon_gravity
new cvar_dragon_glow
new cvar_dragon_auracvar_dragon_aura_color_Rcvar_dragon_aura_color_Gcvar_dragon_aura_color_B
new cvar_dragon_damagecvar_dragon_kill_explode
new cvar_dragon_grenade_frostcvar_dragon_grenade_fire

//new arrays for freez ability
new frostspritepcvar_dragon_freez_distancepcvar_dragon_freez_cooldownpcvar_dragon_freez_time
new Bloqueado[33]
new 
Float:gLastUseCmd33 ]

public 
plugin_init()
{
    
register_plugin("[ZP] Class: Dragon"ZP_VERSION_STRING"ZP Dev Team")
    
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
    
RegisterHamBots(Ham_TakeDamage"fw_TakeDamage")
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
RegisterHamBots(Ham_Killed"fw_PlayerKilled")
    
register_forward(FM_ClientDisconnect"fw_ClientDisconnect_Post"1)
    
register_forward(FM_CmdStart"fw_Start")
    
    
g_MaxPlayers get_maxplayers()
    
    
cvar_dragon_health register_cvar("zp_dragon_health""0")
    
cvar_dragon_base_health register_cvar("zp_dragon_base_health""2000")
    
cvar_dragon_speed register_cvar("zp_dragon_speed""1.05")
    
cvar_dragon_gravity register_cvar("zp_dragon_gravity""0.5")
    
cvar_dragon_glow register_cvar("zp_dragon_glow""1")
    
cvar_dragon_aura register_cvar("zp_dragon_aura""1")
    
cvar_dragon_aura_color_R register_cvar("zp_dragon_aura_color_R""150")
    
cvar_dragon_aura_color_G register_cvar("zp_dragon_aura_color_G""0")
    
cvar_dragon_aura_color_B register_cvar("zp_dragon_aura_color_B""0")
    
cvar_dragon_damage register_cvar("zp_dragon_damage""2.0")
    
cvar_dragon_kill_explode register_cvar("zp_dragon_kill_explode""1")
    
cvar_dragon_grenade_frost register_cvar("zp_dragon_grenade_frost""0")
    
cvar_dragon_grenade_fire register_cvar("zp_dragon_grenade_fire""1")
    
register_cvar(CVAR_DRAGONFLY_SPEED    "300")
    
pcvar_dragon_freez_distance register_cvar("zp_dragon_freez_distance""1000")
    
pcvar_dragon_freez_cooldown register_cvar("zp_dragon_freez_cooldown""10.0")
    
pcvar_dragon_freez_time register_cvar("zp_dragon_freez_time""5.0")
                
}

public 
plugin_precache()
{
    
// Initialize arrays
    
g_models_dragon_player ArrayCreate(PLAYERMODEL_MAX_LENGTH1)
    
g_models_dragon_claw ArrayCreate(MODEL_MAX_LENGTH1)
    
    
// Load from external file
    
amx_load_setting_string_arr(ZP_SETTINGS_FILE"Player Models""DRAGON"g_models_dragon_player)
    
amx_load_setting_string_arr(ZP_SETTINGS_FILE"Weapon Models""V_KNIFE DRAGON"g_models_dragon_claw)
    
    
// If we couldn't load from file, use and save default ones
    
new index
    
if (ArraySize(g_models_dragon_player) == 0)
    {
        for (
index 0index sizeof models_dragon_playerindex++)
            
ArrayPushString(g_models_dragon_playermodels_dragon_player[index])
        
        
// Save to external file
        
amx_save_setting_string_arr(ZP_SETTINGS_FILE"Player Models""DRAGON"g_models_dragon_player)
    }
    if (
ArraySize(g_models_dragon_claw) == 0)
    {
        for (
index 0index sizeof models_dragon_clawindex++)
            
ArrayPushString(g_models_dragon_clawmodels_dragon_claw[index])
        
        
// Save to external file
        
amx_save_setting_string_arr(ZP_SETTINGS_FILE"Weapon Models""V_KNIFE DRAGON"g_models_dragon_claw)
    }
    
    
// Precache models
    
new player_model[PLAYERMODEL_MAX_LENGTH], model[MODEL_MAX_LENGTH], model_path[128]
    for (
index 0index ArraySize(g_models_dragon_player); index++)
    {
        
ArrayGetString(g_models_dragon_playerindexplayer_modelcharsmax(player_model))
        
formatex(model_pathcharsmax(model_path), "models/player/%s/%s.mdl"player_modelplayer_model)
        
precache_model(model_path)
        
// Support modelT.mdl files
        
formatex(model_pathcharsmax(model_path), "models/player/%s/%sT.mdl"player_modelplayer_model)
        if (
file_exists(model_path)) precache_model(model_path)
    }
    for (
index 0index ArraySize(g_models_dragon_claw); index++)
    {
        
ArrayGetString(g_models_dragon_clawindexmodelcharsmax(model))
        
precache_model(model)
        
frostsprite precache_model"sprites/frost_explode.spr" )
    }
}

public 
plugin_natives()
{
    
register_library("zp50_class_dragon")
    
register_native("zp_class_dragon_get""native_class_dragon_get")
    
register_native("zp_class_dragon_set""native_class_dragon_set")
    
register_native("zp_class_dragon_get_count""native_class_dragon_get_count")
    
    
set_module_filter("module_filter")
    
set_native_filter("native_filter")
}
public 
module_filter(const module[])
{
    if (
equal(moduleLIBRARY_GRENADE_FROST) || equal(moduleLIBRARY_GRENADE_FIRE))
        return 
PLUGIN_HANDLED;
    
    return 
PLUGIN_CONTINUE;
}
public 
native_filter(const name[], indextrap)
{
    if (!
trap)
        return 
PLUGIN_HANDLED;
        
    return 
PLUGIN_CONTINUE;
}

public 
client_disconnect(id)
{
    if (
flag_get(g_IsDragonid))
    {
        
// Remove dragon glow
        
if (get_pcvar_num(cvar_dragon_glow))
            
set_user_rendering(id)
        
        
// Remove dragon aura
        
if (get_pcvar_num(cvar_dragon_aura))
            
remove_task(id+TASK_AURA)
    }
}



public 
fw_ClientDisconnect_Post(id)
{
    
// Reset flags AFTER disconnect (to allow checking if the player was dragon before disconnecting)
    
flag_unset(g_IsDragonid)
}

public 
zp_user_infected_post(playerinfector)
{
    if(
flag_get(g_IsDragonplayer))
    {
        
zp_colored_printplayer" Press ^x04[R]^x01 to Freez humans!, Hold ^x04[Jump]^x01 to fly!" )
    }
}



public 
use_cmd(player)
{
    
    if(!
flag_get(g_IsDragonplayer))
        return 
PLUGIN_HANDLED
    
    
if( get_gametime( ) - gLastUseCmdplayer ] < get_pcvar_floatpcvar_dragon_freez_cooldown ) )
        return 
PLUGIN_HANDLED
    
    
    gLastUseCmd
player ] = get_gametime( )
    
    new 
targetbody
    get_user_aiming
playertargetbodyget_pcvar_numpcvar_dragon_freez_distance ) )
    
    if( 
is_user_alivetarget ) && !zp_core_is_zombietarget ) )
    {
        
sprite_controlplayer )
        
zp_grenade_frost_settargettrue )
        
Bloqueado[target] = true
        set_task
get_pcvar_floatpcvar_dragon_freez_time ), "unfrozen_user"target )
    }
    else
    {
        
sprite_controlplayer )
    }
    return 
PLUGIN_HANDLED
}

public 
unfrozen_usertarget )
{
    
zp_grenade_frost_settargetfalse )
    
Bloqueado[target] = false
}


public 
te_sprayargs[ ] )
{
    
message_beginMSG_BROADCAST,SVC_TEMPENTITY )
    
write_byte120 // Throws a shower of sprites or models
    
write_coordargs] ) // start pos
    
write_coordargs] )
    
write_coordargs] )
    
write_coordargs] ) // velocity
    
write_coordargs] )
    
write_coordargs] )
    
write_shortfrostsprite // spr
    
write_byte// count
    
write_byte70 // speed
    
write_byte100 //(noise)
    
write_byte// (rendermode)
    
message_end( )
    
    return 
PLUGIN_CONTINUE
}

public 
sqrtnum )
{
    new 
div num
    
new result 1
    
while( div result )
    {
        
div = ( div result ) / 2
        result 
num div
    
}
    return 
div
}


public 
sprite_controlplayer )
{
    new 
vec]
    new 
aimvec]
    new 
velocityvec]
    new 
length
    
new speed 10
    
    get_user_origin
playervec )
    
get_user_originplayeraimvec)
    
    
velocityvec] = aimvec] - vec]
    
velocityvec] = aimvec] - vec]
    
velocityvec] = aimvec] - vec]
    
length sqrtvelocityvec] * velocityvec] + velocityvec] * velocityvec] + velocityvec] * velocityvec] )
    
velocityvec] = velocityvec] * speed length
    velocityvec
] = velocityvec] * speed length
    velocityvec
] = velocityvec] * speed length
    
    
new args]
    
args] = vec]
    
args] = vec]
    
args] = vec]
    
args] = velocityvec]
    
args] = velocityvec]
    
args] = velocityvec]
    
    
set_task0.1"te_spray"0args8"a")
    
}



public 
fw_Start(iduc_handleseed)
{
    new 
button get_uc(uc_handle,UC_Buttons)
    
    if(
Bloqueado[id] && !zp_core_is_zombie(id) && (button IN_ATTACK || button IN_ATTACK2))
        
set_uc(uc_handle,UC_Buttons,(button & ~IN_ATTACK) & ~IN_ATTACK2)
    
    if((
button IN_RELOAD))
        
use_cmd(id)
}  


public 
client_connect(id)
{
    
zp_grenade_frost_set(idfalse)
}

// Ham Take Damage Forward
public fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type)
{
    
// Non-player damage or self damage
    
if (victim == attacker || !is_user_alive(attacker))
        return 
HAM_IGNORED;
    
    
// Dragon attacking human
    
if (flag_get(g_IsDragonattacker) && !zp_core_is_zombie(victim))
    {
        
// Ignore dragon damage override if damage comes from a 3rd party entity
        // (to prevent this from affecting a sub-plugin's rockets e.g.)
        
if (inflictor == attacker)
        {
            
// Set dragon damage
            
SetHamParamFloat(4damage get_pcvar_float(cvar_dragon_damage))
            return 
HAM_HANDLED;
        }
    }
    
    return 
HAM_IGNORED;
}

// Ham Player Killed Forward
public fw_PlayerKilled(victimattackershouldgib)
{
    if (
flag_get(g_IsDragonvictim))
    {
        
// Dragon explodes!
        
if (get_pcvar_num(cvar_dragon_kill_explode))
            
SetHamParamInteger(32)
        
        
// Remove dragon aura
        
if (get_pcvar_num(cvar_dragon_aura))
            
remove_task(victim+TASK_AURA)
    }
}



public 
client_PreThink(id
{
    if(!
flag_get(g_IsDragonid)) return PLUGIN_CONTINUE
    
    
    
new Float:fAim[3] , Float:fVelocity[3];
    
VelocityByAim(id get_cvar_num(CVAR_DRAGONFLY_SPEED) , fAim);
    
    if((
get_user_button(id) & IN_JUMP))
    {
        
fVelocity[0] = fAim[0];
        
fVelocity[1] = fAim[1];
        
fVelocity[2] = fAim[2];

        
set_user_velocity(id fVelocity);
    }
    return 
PLUGIN_CONTINUE;
}


public 
zp_fw_grenade_frost_pre(id)
{
    
// Prevent frost for Dragon
    
if (flag_get(g_IsDragonid) && !get_pcvar_num(cvar_dragon_grenade_frost))
        return 
PLUGIN_HANDLED;
    
    return 
PLUGIN_CONTINUE;
}

public 
zp_fw_grenade_fire_pre(id)
{
    
// Prevent burning for Dragon
    
if (flag_get(g_IsDragonid) && !get_pcvar_num(cvar_dragon_grenade_fire))
        return 
PLUGIN_HANDLED;
    
    return 
PLUGIN_CONTINUE;
}

public 
zp_fw_core_spawn_post(id)
{
    if (
flag_get(g_IsDragonid))
    {
        
// Remove dragon glow
        
if (get_pcvar_num(cvar_dragon_glow))
            
set_user_rendering(id)
        
        
// Remove dragon aura
        
if (get_pcvar_num(cvar_dragon_aura))
            
remove_task(id+TASK_AURA)
        
        
// Remove dragon flag
        
flag_unset(g_IsDragonid)
    }
}

public 
zp_fw_core_cure(idattacker)
{
    if (
flag_get(g_IsDragonid))
    {
        
// Remove dragon glow
        
if (get_pcvar_num(cvar_dragon_glow))
            
set_user_rendering(id)
        
        
// Remove dragon aura
        
if (get_pcvar_num(cvar_dragon_aura))
            
remove_task(id+TASK_AURA)
        
        
// Remove dragon flag
        
flag_unset(g_IsDragonid)
    }
}

public 
zp_fw_core_infect_post(idattacker)
{
    
// Apply dragon attributes?
    
if (!flag_get(g_IsDragonid))
        return;
    
    
// Health
    
if (get_pcvar_num(cvar_dragon_health) == 0)
        
set_user_health(idget_pcvar_num(cvar_dragon_base_health) * GetAliveCount())
    else
        
set_user_health(idget_pcvar_num(cvar_dragon_health))
    
    
// Gravity
    
set_user_gravity(idget_pcvar_float(cvar_dragon_gravity))
    
    
// Speed
    
cs_set_player_maxspeed_auto(idget_pcvar_float(cvar_dragon_speed))
    
    
// Apply dragon player model
    
new player_model[PLAYERMODEL_MAX_LENGTH]
    
ArrayGetString(g_models_dragon_playerrandom_num(0ArraySize(g_models_dragon_player) - 1), player_modelcharsmax(player_model))
    
cs_set_player_model(idplayer_model)
    
    
// Apply dragon claw model
    
new model[MODEL_MAX_LENGTH]
    
ArrayGetString(g_models_dragon_clawrandom_num(0ArraySize(g_models_dragon_claw) - 1), modelcharsmax(model))
    
cs_set_player_view_model(idCSW_KNIFEmodel)    
    
    
// Dragon glow
    
if (get_pcvar_num(cvar_dragon_glow))
        
set_user_rendering(idkRenderFxGlowShell050200kRenderNormal25)
    
    
// Dragon aura task
    
if (get_pcvar_num(cvar_dragon_aura))
        
set_task(0.1"dragon_aura"id+TASK_AURA__"b")
}

public 
native_class_dragon_get(plugin_idnum_params)
{
    new 
id get_param(1)
    
    if (!
is_user_connected(id))
    {
        
log_error(AMX_ERR_NATIVE"[ZP] Invalid Player (%d)"id)
        return -
1;
    }
    
    return 
flag_get_boolean(g_IsDragonid);
}

public 
native_class_dragon_set(plugin_idnum_params)
{
    new 
id get_param(1)
    
    if (!
is_user_alive(id))
    {
        
log_error(AMX_ERR_NATIVE"[ZP] Invalid Player (%d)"id)
        return 
false;
    }
    
    if (
flag_get(g_IsDragonid))
    {
        
log_error(AMX_ERR_NATIVE"[ZP] Player already a dragon (%d)"id)
        return 
false;
    }
    
    
flag_set(g_IsDragonid)
    
zp_core_force_infect(id)
    return 
true;
}

public 
native_class_dragon_get_count(plugin_idnum_params)
{
    return 
GetDragonCount();
}

// Dragon aura task
public dragon_aura(taskid)
{
    
// Get player's origin
    
static origin[3]
    
get_user_origin(ID_AURAorigin)
    
    
// Colored Aura
    
message_begin(MSG_PVSSVC_TEMPENTITYorigin)
    
write_byte(TE_DLIGHT// TE id
    
write_coord(origin[0]) // x
    
write_coord(origin[1]) // y
    
write_coord(origin[2]) // z
    
write_byte(20// radius
    
write_byte(get_pcvar_num(cvar_dragon_aura_color_R)) // r
    
write_byte(get_pcvar_num(cvar_dragon_aura_color_G)) // g
    
write_byte(get_pcvar_num(cvar_dragon_aura_color_B)) // b
    
write_byte(2// life
    
write_byte(0// decay rate
    
message_end()
}

// Get Alive Count -returns alive players number-
GetAliveCount()
{
    new 
iAliveid
    
    
for (id 1id <= g_MaxPlayersid++)
    {
        if (
is_user_alive(id))
            
iAlive++
    }
    
    return 
iAlive;
}

// Get Dragon Count -returns alive dragon number-
GetDragonCount()
{
    new 
iDragonid
    
    
for (id 1id <= g_MaxPlayersid++)
    {
        if (
is_user_alive(id) && flag_get(g_IsDragonid))
            
iDragon++
    }
    
    return 
iDragon;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ fbidis\\ ansi\\ ansicpg1252\\ deff0{\\ fonttbl{\\ f0\\ fnil\\ fcharset0 Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ ltrpar\\ lang1049\\ f0\\ fs16 \n\\ par }
*/ 


Amigo puedes subir las carpetas ya listas para instalar en nuestro servidor para aquellos que no sabes compilar un plugin.

Estaria muy bueno que puedas poner por carpetas los modos para que podamos descargarlo.
jievylook 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 22:08.


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