Las animaciones se bugean
#1
Triste 
Holaaa. Ando editando el Zombie Darkness creado por Dias Pendragon y tengo un problema con las animaciones de los zombies y es que al caminar, correr o se quedan quietos estas estan en dummy y se ven extrañas. Vi videos del mod y hasta busque nuevos modelos pero les pasa los mismo...
Otra cosa extraña que vi es que cuando descompilo alguno de los models de los zombies, a la hora de compilarlos devuelta (Sin haber tocado nada) no los compila :c

PD: Uso bots

Ejemplo de la animacion dummy:

   

Code NightStalker:
Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <ZombieDarkness>
#include <gamemaster>

#define PLUGIN "[ZD] Zombie Class: Night Stalker"
#define VERSION "1.0"
#define AUTHOR "Dias Pendragon"

#define GAME_FOLDER "ZombieDarkness"
#define SETTING_FILE "ZombieDarkness_Classes.ini"
#define LANG_FILE "ZombieDarkness.txt"

#define HUD_ADRENALINE_X -1.0
#define HUD_ADRENALINE_Y 0.83

#define Get_BitVar(%1,%2) (%1 & (1 << (%2 & 31)))
#define Set_BitVar(%1,%2) %1 |= (1 << (%2 & 31))
#define UnSet_BitVar(%1,%2) %1 &= ~(1 << (%2 & 31))

#define TIME_INTERVAL 0.25
#define TASK_CHECKTIME 3125365

// Loaded Vars
new g_zombieclass
new zclass_name[16], zclass_desc[32]
new 
Float:zclass_speedFloat:zclass_gravityFloat:zclass_knockbackFloat:zclass_defensezclass_healthregen
new zclass_model[16], zclass_clawmodel[32], zclass_deathsound[64], 
zclass_painsound1[64], zclass_painsound2[64], zclass_stunsound[64],
zclass_cost

new g_ClassSpeedg_ClawModel[64]
new 
Float:g_InvisibleTimeg_InvisibleClawModel[64]
new 
g_BerserkSpeedFloat:g_BerserkDefenseg_BerserkDecPer015S, Array:g_BerserkSound
new g_DashPowerg_DashJumpg_DashDashingg_DashSound[64]

new 
g_GameStartg_IsUserBotg_BotHamRegisterg_IsUserAlive
new Float:CheckTime[33], Float:CheckTime2[33], Float:CheckTime3[33], g_SkillHud

new g_Sprintingg_PlayerKey[33][2], g_MsgScreenFadeg_InvisiblePercent[33]
new 
g_Dashing

public plugin_init()
{
 
register_plugin(PLUGINVERSIONAUTHOR)
 
 
register_event("DeathMsg""Event_Death""a")
 
register_forward(FM_CmdStart"fw_CmdStart")
 
RegisterHam(Ham_Spawn"player""fw_PlayerSpawn_Post"1)
 
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage"
 
 
g_MsgScreenFade get_user_msgid("ScreenFade")
 
g_SkillHud CreateHudSyncObj(3)
}

public 
plugin_precache()
{
 
register_dictionary(LANG_FILE)
 
g_BerserkSound ArrayCreate(641)
 
 
Load_ClassConfig()
 
g_zombieclass zd_register_zombieclass(zclass_namezclass_desczclass_speedzclass_gravityzclass_knockbackzclass_defensezclass_healthregenzclass_modelzclass_clawmodelzclass_deathsoundzclass_painsound1zclass_painsound2zclass_stunsoundzclass_cost)
}

public 
Load_ClassConfig()
{
 static 
Buffer[64], Temp[32]
 
 
formatex(zclass_namesizeof(zclass_name), "%L"LANG_SERVER"ZOMBIE_CLASS_NIGHTSTALKER_NAME")
 
formatex(zclass_descsizeof(zclass_desc), "%L"LANG_SERVER"ZOMBIE_CLASS_NIGHTSTALKER_DESC")
 
 
Setting_Load_String(SETTING_FILE"Zombie Class""CLASS_NIGHTSTALKER_SPEED"Tempsizeof(Temp)); zclass_speed str_to_float(Temp)
 
Setting_Load_String(SETTING_FILE"Zombie Class""CLASS_NIGHTSTALKER_GRAVITY"Tempsizeof(Temp)); zclass_gravity str_to_float(Temp)
 
Setting_Load_String(SETTING_FILE"Zombie Class""CLASS_NIGHTSTALKER_KNOCKBACK"Tempsizeof(Temp)); zclass_knockback str_to_float(Temp)
 
Setting_Load_String(SETTING_FILE"Zombie Class""CLASS_NIGHTSTALKER_DEFENSE"Tempsizeof(Temp)); zclass_defense str_to_float(Temp)
 
zclass_healthregen Setting_Load_Int(SETTING_FILE"Zombie Class""CLASS_NIGHTSTALKER_HEALTHREGEN")
 
 
Setting_Load_String(SETTING_FILE"Zombie Class""CLASS_NIGHTSTALKER_MODEL"zclass_modelsizeof(zclass_model))
 
Setting_Load_String(SETTING_FILE"Zombie Class""CLASS_NIGHTSTALKER_CLAWMODEL"zclass_clawmodelsizeof(zclass_clawmodel))
 
Setting_Load_String(SETTING_FILE"Zombie Class""CLASS_NIGHTSTALKER_DEATHSOUND"zclass_deathsoundsizeof(zclass_deathsound))
 
Setting_Load_String(SETTING_FILE"Zombie Class""CLASS_NIGHTSTALKER_PAINSOUND1"zclass_painsound1sizeof(zclass_painsound1))
 
Setting_Load_String(SETTING_FILE"Zombie Class""CLASS_NIGHTSTALKER_PAINSOUND2"zclass_painsound2sizeof(zclass_painsound2))
 
Setting_Load_String(SETTING_FILE"Zombie Class""CLASS_NIGHTSTALKER_STUNSOUND"zclass_stunsoundsizeof(zclass_stunsound))
 
 
zclass_cost Setting_Load_Int(SETTING_FILE"Zombie Class""CLASS_NIGHTSTALKER_COST")
 
 
/// SKill
 
Setting_Load_String(SETTING_FILE"Night Stalker""INVISIBLE_TIME"Buffersizeof(Buffer)); g_InvisibleTime str_to_float(Buffer)
 
g_ClassSpeed Setting_Load_Int(SETTING_FILE"Zombie Class""CLASS_NIGHTSTALKER_SPEED")
 
Setting_Load_String(SETTING_FILE"Zombie Class""CLASS_NIGHTSTALKER_CLAWMODEL"g_ClawModelsizeof(g_ClawModel))
 
Setting_Load_String(SETTING_FILE"Night Stalker""INVISIBLE_CLAWMODEL"g_InvisibleClawModelsizeof(g_InvisibleClawModel))
 
engfunc(EngFunc_PrecacheModelg_InvisibleClawModel)

 
g_BerserkSpeed Setting_Load_Int(SETTING_FILE"Night Stalker""BERSERK_SPEED")
 
Setting_Load_String(SETTING_FILE"Night Stalker""BERSERK_DEFENSE"Buffersizeof(Buffer)); g_BerserkDefense str_to_float(Buffer)
 
g_BerserkDecPer015S Setting_Load_Int(SETTING_FILE"Night Stalker""BERSERK_DECREASE_PER015SEC")
 
Setting_Load_StringArray(SETTING_FILE"Night Stalker""BERSERK_SOUND"g_BerserkSound)
 for(new 
0ArraySize(g_BerserkSound); i++)
 {
 
ArrayGetString(g_BerserkSoundiBuffersizeof(Buffer))
 
engfunc(EngFunc_PrecacheSoundBuffer)
 }
 
 
g_DashPower Setting_Load_Int(SETTING_FILE"Night Stalker""DASH_POWER")
 
g_DashJump Setting_Load_Int(SETTING_FILE"Night Stalker""DASH_JUMP")
 
g_DashDashing Setting_Load_Int(SETTING_FILE"Night Stalker""DASH_DASHING")
 
Setting_Load_String(SETTING_FILE"Night Stalker""DASH_SOUND"g_DashSoundsizeof(g_DashSound))
 
engfunc(EngFunc_PrecacheSoundg_DashSound)
}

public 
zd_game_start() g_GameStart 1
public zd_round_end() g_GameStart 0

public zd_user_spawned(idZombieReset_Skill(id)
public 
zd_user_infected(idReset_Skill(id)

public 
client_disconnect(idUnSet_BitVar(g_IsUserAliveid)
public 
client_putinserver(id)
{
 
UnSet_BitVar(g_IsUserBotid)
 if(!
g_BotHamRegister && is_user_bot(id))
 {
 
g_BotHamRegister 1
 set_task
(0.1"Bot_RegisterHam"id)
 }
 
 if(
is_user_bot(id)) Set_BitVar(g_IsUserBotid)
 
 
UnSet_BitVar(g_IsUserAliveid)
}

public 
Bot_RegisterHam(id)
{
 
RegisterHamFromEntity(Ham_Spawnid"fw_PlayerSpawn_Post"1)
}

public 
fw_PlayerSpawn_Post(id)
{
 if(!
is_user_alive(id))
 return
 
 
Set_BitVar(g_IsUserAliveid)
}

public 
fw_TakeDamage(VictimInflictorAttackerFloat:DamageDamageBits)
{
 if(!
g_GameStart)
 return 
HAM_IGNORED
 
if(zd_get_user_zombieclass(Victim) != g_zombieclass)
 return 
HAM_IGNORED
 
if(!Get_BitVar(g_SprintingVictim))
 return 
HAM_IGNORED
 
 Damage 
/= g_BerserkDefense
 SetHamParamFloat
(4Damage)
 
 return 
HAM_HANDLED
}

public 
Event_Death()
{
 static 
VictimVictim read_data(2); UnSet_BitVar(g_IsUserAliveVictim)
}

public 
zd_zombieclass_active(idClassID)
{
 if(
ClassID != g_zombieclass)
 return
 
 
Reset_Skill(id)
}

public 
zd_zombieclass_unactive(idClassID
{
 if(
ClassID != g_zombieclass)
 return
 
 
Reset_Skill(id)
}

public 
zd_zombie_stun(idReset_Skill(id)
public 
zd_zombie_slowdown(idReset_Skill(id)

public 
Reset_Skill(id)
{
 
UnSet_BitVar(g_Sprintingid)
 
UnSet_BitVar(g_Dashingid)
 
g_InvisiblePercent[id] = 0
 
 Reset_Key
(id)
}

public 
client_PreThink(id)
{
 if(!
Get_BitVar(g_IsUserAliveid))
 return
 
 static 
CurButtonCurButton pev(idpev_button)
 static 
OldButtonOldButton pev(idpev_oldbuttons)
 
 if((
CurButton IN_FORWARD)) 
 {
 if(!
g_GameStart)
 return 
 if(!
zd_get_user_zombie(id))
 return
 if(
zd_get_user_zombieclass(id) != g_zombieclass)
 return
 if(
zd_get_zombie_stun(id) || zd_get_zombie_slowdown(id))
 return
 
 if(
Get_BitVar(g_Sprintingid) && (get_gametime() - 0.15 CheckTime[id]))
 {
 if(
zd_get_user_power(id) <= 0)
 {
 
Deactive_SprintSkill(id)
 return
 }
 if((
pev(idpev_flags) & FL_DUCKING) || pev(idpev_bInDuck) || !(pev(idpev_flags) & FL_ONGROUND))
 {
 
Deactive_SprintSkill(id)
 return
 }
 
 static 
Float:RenderAmtpev(idpev_renderamtRenderAmt)
 if(
RenderAmt 0
 {
 
RenderAmt -= ((255.0 g_InvisibleTime) * 0.15)
 if(
RenderAmt 0.0
 {
 
RenderAmt 0.0
 set_pev
(idpev_viewmodel2g_InvisibleClawModel)
 }
 
 
g_InvisiblePercent[id] = floatround(((255.0 RenderAmt) / 255.0) * 100.0)
 
set_pev(idpev_renderamtRenderAmt)
 }
 
 
// Handle Other
 
if(!zd_get_hudfastupdate(id)) zd_set_hudfastupdate(id1)
 if(
zd_get_user_status(idSTATUS_SPEED) != SPEED_INCzd_set_user_status(idSTATUS_SPEEDSPEED_INC)
 if(
zd_get_user_status(idSTATUS_STRENGTH) != STRENGTH_HARDENINGzd_set_user_status(idSTATUS_STRENGTHSTRENGTH_HARDENING)
 
zd_set_user_power(idzd_get_user_power(id) - g_BerserkDecPer015S)
 
 
CheckTime[id] = get_gametime()
 } 
 
 if(
Get_BitVar(g_Sprintingid) && (get_gametime() - 0.5 CheckTime2[id]))
 {
 
zd_set_fakeattack(id)
 
Set_WeaponAnim(id10)
 
 
set_pev(idpev_framerate2.0)
 
set_pev(idpev_sequence110)
 
 
// Play Sound
 
static Sound[64]; ArrayGetString(g_BerserkSoundGet_RandomArray(g_BerserkSound), Soundsizeof(Sound))
 
emit_sound(idCHAN_VOICESound1.0ATTN_NORM0PITCH_NORM)
 
 
CheckTime2[id] = get_gametime()
 }
 
 if(
OldButton IN_FORWARD)
 return
 
 if(!
task_exists(id+TASK_CHECKTIME))
 {
 
g_PlayerKey[id][0] = 'w'
 
 
remove_task(id+TASK_CHECKTIME)
 
set_task(TIME_INTERVAL"Recheck_Key"id+TASK_CHECKTIME)
 } else {
 
g_PlayerKey[id][1] = 'w'
 
}
 } else {
 if(
OldButton IN_FORWARD)
 {
 
Deactive_SprintSkill(id)
 }
 
 return
 }
 
 if(
equali(g_PlayerKey[id], "ww"))
 {
 
Reset_Key(id)
 
Active_SprintSkill(id)
 }

 return
}

public 
fw_CmdStart(idUCHandleSeed)
{
 if(!
Get_BitVar(g_IsUserAliveid))
 return
 if(
Get_BitVar(g_IsUserBotid))
 return
 if(!
zd_get_user_zombie(id))
 return
 if(
zd_get_user_zombieclass(id) != g_zombieclass)
 return

 static 
CurButtonCurButton get_uc(UCHandleUC_Buttons)
 
 if(
get_gametime() - 1.0 CheckTime3[id])
 {
 static 
TimeTime zd_get_user_power(id) / g_DashPower
 
static Hud[64], SkillName[32]; 
 
 
formatex(SkillNamesizeof(SkillName), "%L"LANG_SERVER"ZOMBIE_CLASS_NIGHTSTALKER_SKILL")
 
formatex(Hudsizeof(Hud), "%L"LANG_SERVER"HUD_ZOMBIESKILL_INV"g_InvisiblePercent[id])
 
 if(
Time >= 1formatex(Hudsizeof(Hud), "%s^n%L"HudLANG_SERVER"HUD_ZOMBIESKILL"SkillNameTime)

 
set_hudmessage(200200200HUD_ADRENALINE_XHUD_ADRENALINE_Y 0.0401.01.00.00.0)
 
ShowSyncHudMsg(idg_SkillHudHud)
 
 
CheckTime3[id] = get_gametime()
 } 
 
 if((
CurButton IN_ATTACK2))
 {
 
CurButton &= ~IN_ATTACK2
 set_uc
(UCHandleUC_ButtonsCurButton)

 if(!
g_GameStart)
 {
 
set_pdata_float(id830.55)
 return 
 }
 if(
Get_BitVar(g_Sprintingid))
 {
 
set_pdata_float(id830.55)
 return
 }
 if(
zd_get_zombie_stun(id) || zd_get_zombie_slowdown(id))
 {
 
set_pdata_float(id830.55)
 return
 }
 if(
zd_get_user_power(id) < g_DashPower)
 {
 
set_pdata_float(id830.55)
 return
 }
 if((
pev(idpev_flags) & FL_DUCKING) || pev(idpev_bInDuck))
 {
 
set_pdata_float(id830.55)
 return
 }
 if(
get_pdata_float(id835) > 0.0)
 return
 
 
set_pdata_float(id830.55)
 
Handle_Dashing(id)
 }
}

public 
Handle_Dashing(id)
{
 if((
pev(idpev_flags) & FL_ONGROUND)) // On Ground
 
{
 static 
Float:Origin1[3], Float:Origin2[3]
 
pev(idpev_originOrigin1)
 
 
Set_BitVar(g_Dashingid)
 
 
zd_set_user_power(idzd_get_user_power(id) - g_DashPower)
 
zd_set_fakeattack(id)
 
 
// Climb Action
 
Set_WeaponAnim(id6)
 
set_pev(idpev_framerate0.5)
 
set_pev(idpev_sequence112)
 
 
set_pdata_float(id830.55)
 
 
get_position(id0.00.0200.0Origin2)
 static 
Float:Velocity[3]; Get_SpeedVector(Origin1Origin2float(g_DashJump), Velocity)
 
 
set_pev(idpev_velocityVelocity)
 
emit_sound(idCHAN_STATICg_DashSound1.0ATTN_NORM0PITCH_NORM)
 } else { 
// In Air
 
static Float:Origin1[3], Float:Origin2[3]
 
pev(idpev_originOrigin1)
 
 
Set_BitVar(g_Dashingid)
 
 
zd_set_user_power(idzd_get_user_power(id) - g_DashPower)
 
zd_set_fakeattack(id)
 
 
// Climb Action
 
Set_WeaponAnim(id6)
 
set_pev(idpev_framerate0.5)
 
set_pev(idpev_sequence112)
 
 
set_pdata_float(id830.55)
 
 
get_position(id250.00.060.0Origin2)
 static 
Float:Velocity[3]; Get_SpeedVector(Origin1Origin2float(g_DashDashing), Velocity)
 
 
set_pev(idpev_velocityVelocity)
 
emit_sound(idCHAN_STATICg_DashSound1.0ATTN_NORM0PITCH_NORM)
 }
}

public 
client_PostThink(id)
{
 if(!
Get_BitVar(g_IsUserAliveid))
 return
 if(!
Get_BitVar(g_Dashingid))
 return
 if(!
zd_get_user_zombie(id))
 return
 if(
zd_get_user_zombieclass(id) != g_zombieclass)
 return
 
 static 
Float:flFallVelocityflFallVelocity get_pdata_float(id2515)
        
 
if(flFallVelocity && pev(idpev_flags) & FL_ONGROUND)
 {
 
zd_set_fakeattack(id)
 
 
set_pev(idpev_framerate2.0)
 
set_pev(idpev_sequence113)
 
Set_WeaponAnim(id7)

 
UnSet_BitVar(g_Dashingid)
 }
}

public 
Active_SprintSkill(id)
{
 
Set_BitVar(g_Sprintingid)
 
CheckTime2[id] = get_gametime()
 
 
zd_set_fakeattack(id)
 
set_pev(idpev_framerate2.0)
 
set_pev(idpev_sequence110)
 
 
Set_WeaponAnim(id9)
 
GM_Set_PlayerSpeed(idfloat(g_BerserkSpeed), 1)

 if(
zd_get_user_nvg(id10))
 {
 
// ScreenFade
 
message_begin(MSG_ONE_UNRELIABLEg_MsgScreenFade_id)
 
write_short(0// duration
 
write_short(0// hold time
 
write_short(0x0004// fade type
 
write_byte(255// r
 
write_byte(0// g
 
write_byte(0// b
 
write_byte(35// alpha
 
message_end()
 }
 
 
set_pev(idpev_rendermodekRenderTransAlpha)
 
set_pev(idpev_renderfxkRenderFxNone)
 
set_pev(idpev_renderamt255.0
}

public 
Deactive_SprintSkill(id)
{
 if(!
Get_BitVar(g_Sprintingid))
 return
 
 
UnSet_BitVar(g_Sprintingid)
 
g_InvisiblePercent[id] = 0
 
 
// Reset
 
if(zd_get_user_nvg(id10))
 {
 
message_begin(MSG_ONE_UNRELIABLEg_MsgScreenFade_id)
 
write_short(0// duration
 
write_short(0// hold time
 
write_short(0x0000// fade type
 
write_byte(0// r
 
write_byte(0// g
 
write_byte(0// b
 
write_byte(0// alpha
 
message_end()
 }
 
 
// Speed
 
zd_set_hudfastupdate(id0)
 
zd_set_user_status(idSTATUS_SPEEDSPEED_NONE)
 
zd_set_user_status(idSTATUS_STRENGTHSTRENGTH_NONE)

 
// Reset Claw
 
set_pev(idpev_rendermodekRenderNormal)
 
Set_WeaponAnim(id11)
 
GM_Set_PlayerSpeed(idfloat(g_ClassSpeed), 1)
 
 static 
ClawModel[64]; formatex(ClawModelsizeof(ClawModel), "models/%s/%s"GAME_FOLDERg_ClawModel)
 
set_pev(idpev_viewmodel2ClawModel)
}

public 
Reset_Key(id)
{
 
g_PlayerKey[id][0] = 0
 g_PlayerKey
[id][1] = 0
}

public 
Recheck_Key(id)
{
 
id -= TASK_CHECKTIME
 
 
if(!is_user_connected(id))
 return
 
 
Reset_Key(id)
}

public 
zd_user_nvg(idOnZombie)
{
 if(!
Zombie) return
 if(!
Get_BitVar(g_Sprintingid))
 return
 
 if(!
On)
 {
 
// ScreenFade
 
message_begin(MSG_ONE_UNRELIABLEg_MsgScreenFade_id)
 
write_short(0// duration
 
write_short(0// hold time
 
write_short(0x0004// fade type
 
write_byte(255// r
 
write_byte(0// g
 
write_byte(0// b
 
write_byte(35// alpha
 
message_end()
 }
}

stock Setting_Load_Int(const filename[], const setting_section[], setting_key[])
{
 if (
strlen(filename) < 1)
 {
 
log_error(AMX_ERR_NATIVE"[ZD] Can't load settings: empty filename")
 return 
false;
 }
 
 if (
strlen(setting_section) < || strlen(setting_key) < 1)
 {
 
log_error(AMX_ERR_NATIVE"[ZD] Can't load settings: empty section/key")
 return 
false;
 }
 
 
// Build customization file path
 
new path[128]
 
get_configsdir(pathcharsmax(path))
 
format(pathcharsmax(path), "%s/ZombieDarkness/%s"pathfilename)
 
 
// File not present
 
if (!file_exists(path))
 {
 static 
DataA[128]; formatex(DataAsizeof(DataA), "[ZD] Can't load: %s"path)
 
set_fail_state(DataA)
 
 return 
false;
 }
 
 
// Open customization file for reading
 
new file fopen(path"rt")
 
 
// File can't be opened
 
if (!file)
 return 
false;
 
 
// Set up some vars to hold parsing info
 
new linedata[1024], section[64]
 
 
// Seek to setting's section
 
while (!feof(file))
 {
 
// Read one line at a time
 
fgets(filelinedatacharsmax(linedata))
 
 
// Replace newlines with a null character to prevent headaches
 
replace(linedatacharsmax(linedata), "^n""")
 
 
// New section starting
 
if (linedata[0] == '[')
 {
 
// Store section name without braces
 
copyc(sectioncharsmax(section), linedata[1], ']')
 
 
// Is this our setting's section?
 
if (equal(sectionsetting_section))
 break;
 }
 }
 
 
// Section not found
 
if (!equal(sectionsetting_section))
 {
 
fclose(file)
 return 
false;
 }
 
 
// Set up some vars to hold parsing info
 
new key[64], current_value[32]
 
 
// Seek to setting's key
 
while (!feof(file))
 {
 
// Read one line at a time
 
fgets(filelinedatacharsmax(linedata))
 
 
// Replace newlines with a null character to prevent headaches
 
replace(linedatacharsmax(linedata), "^n""")
 
 
// Blank line or comment
 
if (!linedata[0] || linedata[0] == ';') continue;
 
 
// Section ended?
 
if (linedata[0] == '[')
 break;
 
 
// Get key and value
 
strtok(linedatakeycharsmax(key), current_valuecharsmax(current_value), '=')
 
 
// Trim spaces
 
trim(key)
 
trim(current_value)
 
 
// Is this our setting's key?
 
if (equal(keysetting_key))
 {
 static 
return_value
 
// Return int by reference
 
return_value str_to_num(current_value)
 
 
// Values succesfully retrieved
 
fclose(file)
 return 
return_value
 
}
 }
 
 
// Key not found
 
fclose(file)
 return 
false;
}

stock Setting_Load_StringArray(const filename[], const setting_section[], setting_key[], Array:array_handle)
{
 if (
strlen(filename) < 1)
 {
 
log_error(AMX_ERR_NATIVE"[ZD] Can't load settings: empty filename")
 return 
false;
 }

 if (
strlen(setting_section) < || strlen(setting_key) < 1)
 {
 
log_error(AMX_ERR_NATIVE"[ZD] Can't load settings: empty section/key")
 return 
false;
 }
 
 if (
array_handle == Invalid_Array)
 {
 
log_error(AMX_ERR_NATIVE"[ZD] Array not initialized")
 return 
false;
 }
 
 
// Build customization file path
 
new path[128]
 
get_configsdir(pathcharsmax(path))
 
format(pathcharsmax(path), "%s/ZombieDarkness/%s"pathfilename)
 
 
// File not present
 
if (!file_exists(path))
 {
 static 
DataA[80]; formatex(DataAsizeof(DataA), "[ZD] Can't load: %s"path)
 
set_fail_state(DataA)
 
 return 
false;
 }
 
 
// Open customization file for reading
 
new file fopen(path"rt")
 
 
// File can't be opened
 
if (!file)
 return 
false;
 
 
// Set up some vars to hold parsing info
 
new linedata[1024], section[64]
 
 
// Seek to setting's section
 
while (!feof(file))
 {
 
// Read one line at a time
 
fgets(filelinedatacharsmax(linedata))
 
 
// Replace newlines with a null character to prevent headaches
 
replace(linedatacharsmax(linedata), "^n""")
 
 
// New section starting
 
if (linedata[0] == '[')
 {
 
// Store section name without braces
 
copyc(sectioncharsmax(section), linedata[1], ']')
 
 
// Is this our setting's section?
 
if (equal(sectionsetting_section))
 break;
 }
 }
 
 
// Section not found
 
if (!equal(sectionsetting_section))
 {
 
fclose(file)
 return 
false;
 }
 
 
// Set up some vars to hold parsing info
 
new key[64], values[1024], current_value[128]
 
 
// Seek to setting's key
 
while (!feof(file))
 {
 
// Read one line at a time
 
fgets(filelinedatacharsmax(linedata))
 
 
// Replace newlines with a null character to prevent headaches
 
replace(linedatacharsmax(linedata), "^n""")
 
 
// Blank line or comment
 
if (!linedata[0] || linedata[0] == ';') continue;
 
 
// Section ended?
 
if (linedata[0] == '[')
 break;
 
 
// Get key and values
 
strtok(linedatakeycharsmax(key), valuescharsmax(values), '=')
 
 
// Trim spaces
 
trim(key)
 
trim(values)
 
 
// Is this our setting's key?
 
if (equal(keysetting_key))
 {
 
// Parse values
 
while (values[0] != && strtok(valuescurrent_valuecharsmax(current_value), valuescharsmax(values), ','))
 {
 
// Trim spaces
 
trim(current_value)
 
trim(values)
 
 
// Add to array
 
ArrayPushString(array_handlecurrent_value)
 }
 
 
// Values succesfully retrieved
 
fclose(file)
 return 
true;
 }
 }
 
 
// Key not found
 
fclose(file)
 return 
false;
}

stock Setting_Load_String(const filename[], const setting_section[], setting_key[], return_string[], string_size)
{
 if (
strlen(filename) < 1)
 {
 
log_error(AMX_ERR_NATIVE"[ZD] Can't load settings: empty filename")
 return 
false;
 }

 if (
strlen(setting_section) < || strlen(setting_key) < 1)
 {
 
log_error(AMX_ERR_NATIVE"[ZD] Can't load settings: empty section/key")
 return 
false;
 }
 
 
// Build customization file path
 
new path[128]
 
get_configsdir(pathcharsmax(path))
 
format(pathcharsmax(path), "%s/ZombieDarkness/%s"pathfilename)
 
 
// File not present
 
if (!file_exists(path))
 {
 static 
DataA[128]; formatex(DataAsizeof(DataA), "[ZD] Can't load: %s"path)
 
set_fail_state(DataA)
 
 return 
false;
 }
 
 
// Open customization file for reading
 
new file fopen(path"rt")
 
 
// File can't be opened
 
if (!file)
 return 
false;
 
 
// Set up some vars to hold parsing info
 
new linedata[1024], section[64]
 
 
// Seek to setting's section
 
while (!feof(file))
 {
 
// Read one line at a time
 
fgets(filelinedatacharsmax(linedata))
 
 
// Replace newlines with a null character to prevent headaches
 
replace(linedatacharsmax(linedata), "^n""")
 
 
// New section starting
 
if (linedata[0] == '[')
 {
 
// Store section name without braces
 
copyc(sectioncharsmax(section), linedata[1], ']')
 
 
// Is this our setting's section?
 
if (equal(sectionsetting_section))
 break;
 }
 }
 
 
// Section not found
 
if (!equal(sectionsetting_section))
 {
 
fclose(file)
 return 
false;
 }
 
 
// Set up some vars to hold parsing info
 
new key[64], current_value[128]
 
 
// Seek to setting's key
 
while (!feof(file))
 {
 
// Read one line at a time
 
fgets(filelinedatacharsmax(linedata))
 
 
// Replace newlines with a null character to prevent headaches
 
replace(linedatacharsmax(linedata), "^n""")
 
 
// Blank line or comment
 
if (!linedata[0] || linedata[0] == ';') continue;
 
 
// Section ended?
 
if (linedata[0] == '[')
 break;
 
 
// Get key and value
 
strtok(linedatakeycharsmax(key), current_valuecharsmax(current_value), '=')
 
 
// Trim spaces
 
trim(key)
 
trim(current_value)
 
 
// Is this our setting's key?
 
if (equal(keysetting_key))
 {
 
formatex(return_stringstring_size"%s"current_value)
 
 
// Values succesfully retrieved
 
fclose(file)
 return 
true;
 }
 }
 
 
// Key not found
 
fclose(file)
 return 
false;
}

stock Set_WeaponAnim(idanim)
{
 
set_pev(idpev_weaponanimanim)
 
 
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM_id)
 
write_byte(anim)
 
write_byte(0)
 
message_end() 
}

stock Get_SpeedVector(const Float:origin1[3],const Float:origin2[3],Float:speedFloat:new_velocity[3])
{
 
new_velocity[0] = origin2[0] - origin1[0]
 
new_velocity[1] = origin2[1] - origin1[1]
 
new_velocity[2] = origin2[2] - origin1[2]
 new 
Float:num floatsqroot(speed*speed / (new_velocity[0]*new_velocity[0] + new_velocity[1]*new_velocity[1] + new_velocity[2]*new_velocity[2]))
 
new_velocity[0] *= (num 2.0)
 
new_velocity[1] *= (num 2.0)
 
new_velocity[2] *= (num 2.0)
}
  

stock get_position
(id,Float:forwFloat:rightFloat:upFloat:vStart[])
{
 static 
Float:vOrigin[3], Float:vAngle[3], Float:vForward[3], Float:vRight[3], Float:vUp[3]
 
 
pev(idpev_originvOrigin)
 
pev(idpev_view_ofsvUp//for player
 
xs_vec_add(vOriginvUpvOrigin)
 
pev(idpev_v_anglevAngle// if normal entity ,use pev_angles
 
 
vAngle[0] = 0.0
 
 angle_vector
(vAngle,ANGLEVECTOR_FORWARDvForward//or use EngFunc_AngleVectors
 
angle_vector(vAngle,ANGLEVECTOR_RIGHTvRight)
 
angle_vector(vAngle,ANGLEVECTOR_UPvUp)
 
 
vStart[0] = vOrigin[0] + vForward[0] * forw vRight[0] * right vUp[0] * up
 vStart
[1] = vOrigin[1] + vForward[1] * forw vRight[1] * right vUp[1] * up
 vStart
[2] = vOrigin[2] + vForward[2] * forw vRight[2] * right vUp[2] * up
}

stock Get_RandomArray(Array:ArrayName)
{
 return 
random_num(0ArraySize(ArrayName) - 1)
}

stock FixedUnsigned16(Float:flValueiScale)
{
 new 
iOutput;

 
iOutput floatround(flValue iScale);

 if ( 
iOutput )
 
iOutput 0;

 if ( 
iOutput 0xFFFF )
 
iOutput 0xFFFF;

 return 
iOutput;


No me deja subir el model Whatdone https://github.com/GlobalModders/GlobalM...20%232.zip
(20/09/2020, 09:32 PM)suxors escribió: siempre en vez de ayudar el hypnooob siempre mongoliquiando el dia xD
usa este man
https://amxmodx-es.com/Thread-Mix-Ultimate

[Imagen: 76561198204267641.png]
Responder
#2
Puede ser que el codigo o plugin del zombie fue mal hecho o tiene errores al usar las acciones del zombie en cada movimiento. Ademas descompilar un models para luego compilarlo de nuevo suele lanzar error porque el codigo o block que usa para compilarlo no esta bien editado o hecho, pero es solo una supocion de lo que puede estar pasando, ya que me estoy guiando con tu testimonio, porque no se si el error es por lo que mencione o falto un archivo. Tendrias que poner imagenes del error, si no, no podemos ayudar en mucho.
[Imagen: jrXxqRT.png]
*Maper Del Cstrike* - *Estudiante De Sistema*
(03/09/2018, 08:32 PM)Skylar escribió: Obviamente, no va a hablar con super pro para que le mueva el thread
(04/01/2019, 05:12 PM)Pan Bimbo (? escribió: QUE HICISTE QUE??????? YO QUERIA LA PLACA DE VIDEO PORQUE LA TIRASTE CTM
(15/01/2019, 04:08 AM)FreDDy escribió:
(15/01/2019, 03:45 AM)Hernandez escribió: Qué más dan las palabras si a donde vayas están en tetas protestando sin sentido

No todas salen en tetas y no todas protestan sin sentido. Estás generalizando algo que sólo unas pocas lo hacen a diferencia de las muchas que realmente tienen un motivo para protestar.
(17/01/2019, 12:34 PM)totopizza escribió: el orden de los factores no altera el producto xD
(23/01/2019, 01:10 AM)GoldenCosta escribió:
Cita:E visto que este ZP , ESTA AQUI EN EL FORO PERO NO ES EL ORIGINAL POR QUE? , LE FALTAN MILES DE COSAS ESTA BUGEADO , LE FALTAN CÓDIGOS NI SE IMAGINAN , BUENO EL MOD ESTE SE VENDE POR 70 DOLARES , ACEPTO PAYPAL Y EN PESOS CHILENOS $42.584
ya esta publicado.... y 70 us en arg son 2625,35 pesos... estas loco con esa guita neel mantiene el foro por 2 años
(23/01/2019, 01:17 AM)Skylar escribió:
(22/01/2019, 10:30 PM)el_juan_fail escribió:
(22/01/2019, 10:03 AM)Neeeeeeeeeel.- escribió: Por favor subir las cosas al foro y no links a blogs externos. Solamente en caso de que haya recursos que no se pudiesen subir por un tema de tamaño, poenr un link de descarga directo (tipo mega) de los recursos y subir los plugins y demás archivos livianos al foro.

deberia ponerle en un link mediante el mediafire o mega o link externo lo que sea pero no es bueno dejar cosa agregada sin descargar solo por el blog no se puede se puede bajar el recurso o que haya sido creado disculpa neeeeel. estaba leyendose las reglas u.uMario

Dijiste lo mismo que dijo Neeel!
(27/02/2019, 08:00 PM)Sugisaki escribió:
(27/02/2019, 05:37 PM)Pan Bimbo (? escribió:
(27/02/2019, 12:06 AM)luxor xD escribió: Hola, si precacheo algo en un plugin, no es necesario precachearlo en otro plugin?

Si yo cargo una caja en un camion, mi amigo puede cargar la MISMA caja en el camion?, y no porque ya esta cargada.
[R]ak escribió: Mis conocimientos aumentaron un 500% con este post
(14/03/2019, 10:26 PM)KrR10VnZl escribió: en Venezuela aprendes a ser desde bombas molotov hasta velas, es algo así como supervivencia al desnudo jaja
(18/04/2019, 11:04 PM)Jose88 escribió:
(18/04/2019, 09:55 PM)Hypnotize escribió: arriba marica

papa me va perdonar pero aquí no sale ningún download. solo sale esto

Código PHP:
PDNiños Ratas eviten sacar el autor jaja.
REMOVIDO POR TUTOR Y SLOWHACK
(21/04/2019, 09:38 AM)SHENK! =D escribió: ASDASD

Si nos organizamos cojemos todos.
(11/08/2019, 05:11 PM)Cr3470r escribió: Todo Software es crackeable ... No importa cuantas validaciones hagan, la ventaja siempre la tenemos nosotros ...
(28/07/2015, 09:34 PM)Nazi.- escribió: :ohgodwhy buen aporte

PD: situación sentimental: Sin internetOh god why

Sigue así Proud

(28/02/2020, 12:23 AM)Skylar escribió:
(27/02/2020, 11:28 PM)4evergaming escribió: Ya me puse como autor y lo subi a mi empresa


Abrazos

FIX
Responder
#3
(16/09/2020, 01:15 PM)El pirucho XP-007 escribió: Puede ser que el codigo o plugin del zombie fue mal hecho o tiene errores al usar las acciones del zombie en cada movimiento. Ademas descompilar un models para luego compilarlo de nuevo suele lanzar error porque el codigo o block que usa para compilarlo no esta bien editado o hecho, pero es solo una supocion de lo que puede estar pasando, ya que me estoy guiando con tu testimonio, porque no se si el error es por lo que mencione o falto un archivo. Tendrias que poner imagenes del error, si no, no podemos ayudar en mucho.

puse una imagen del error xd, ahora actualizo el tema con un zombie.
(20/09/2020, 09:32 PM)suxors escribió: siempre en vez de ayudar el hypnooob siempre mongoliquiando el dia xD
usa este man
https://amxmodx-es.com/Thread-Mix-Ultimate

[Imagen: 76561198204267641.png]
Responder
#4
El model en si no tiene ningun problema. Esa animacion dummy es un placeholder que usan los desarrolladores al momento que un jugador o entidad no este presente o esta bugeada(en los models default del cs, tienen una animacion dummy que cuando un jugador queda en timeout, se ve en el juego.)
(03/08/2018, 03:13 PM)Skylar escribió: Está bien que pidas ayudas, pero no para que crees 20 post todos los días mogolico de mierda, me tenes re podrido ya, contraté 10000 sicarios para que te busquen y te maten toda la familia, y a vos que te revienten con una bazooka.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)