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

ZombieClasses.ini File Problem


Post New Thread Reply   
 
Thread Tools Display Modes
Supremache
Veteran Member
Join Date: Sep 2019
Location: Egypt
Old 06-27-2020 , 14:51   Re: ZombieClasses.ini File Problem
Reply With Quote #11

My friend told me the problem in this code "str_to_num(value)"

str_to_num(value) = numbers

And i changed everything about adminflags to ArrayPushString

PHP Code:
else if (equal(key"FLAG"))
                
ArrayPushString(g_zclass2_adminvalue
After i did this i got problem in zombie classes plugin
What is the problem:
when i change everything about adminflags to ArrayPushString then i need to make changes too in zombie class and i did this

I have changed the code from this:

PHP Code:
 const zclass1_adminflags ADMIN_ALL 
To this:
PHP Code:
 new const zclass1_adminflags[] = ADMIN_ALL 
But i got those Erorrs

Code:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team

Error: Argument type mismatch (argument 9) on line 158
Error: Argument type mismatch (argument 9) on line 159
Error: Argument type mismatch (argument 9) on line 160
Error: Argument type mismatch (argument 9) on line 161
Error: Argument type mismatch (argument 9) on line 162
Error: Argument type mismatch (argument 9) on line 163
Error: Argument type mismatch (argument 9) on line 164
Error: Argument type mismatch (argument 9) on line 165
Error: Argument type mismatch (argument 9) on line 166
Error: Argument type mismatch (argument 9) on line 167
Error: Argument type mismatch (argument 9) on line 168

11 Errors.
Could not locate output file C:\Users\mohamed\Desktop\Classes.amx (compile failed).
Zombie Classes File:
PHP Code:
/*================================================================================
    
    -----------------------------------
    -*- [BB] Default Zombie Classes -*-
    -----------------------------------
    
    ~~~~~~~~~~~~~~~
    - Description -
    ~~~~~~~~~~~~~~~
    
    This plugin adds the default zombie classes from Zombie Plague
    into Base Builder. All credit belongs to MeRcyLeZZ.
    
    All classes have been balanced, but feel free to edit them if
    you are not satisfied.
    
================================================================================*/
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <basebuilder>
#include <hamsandwich>
#include <fun>

/*================================================================================
 [Plugin Customization]
=================================================================================*/

// Classic Zombie Attributes
new const zclass1_name[] = { "Classic Zombie" }
new const 
zclass1_info[] = { "FREE" }
new const 
zclass1_model[] = { "Classic Zombie" }
new const 
zclass1_clawmodel[] = { "v_bloodyhands" }
const 
zclass1_health 3000
const zclass1_speed 260
const Float:zclass1_gravity 0.8
new const zclass1_adminflags[] = ADMIN_ALL

// Jumper Zombie Attributes
new const zclass2_name[] = { "Jumper Zombie" }
new const 
zclass2_info[] = { "FREE" }
new const 
zclass2_model[] = { "Jumper Zombie" }
new const 
zclass2_clawmodel[] = { "v_darkhand" }
const 
zclass2_health 3000
const zclass2_speed 280
const Float:zclass2_gravity 0.5
new const zclass2_adminflags[] = ADMIN_ALL

// Tanker Zombie Attributes
new const zclass3_name[] = { "Tanker Zombie" }
new const 
zclass3_info[] = { "FREE" }
new const 
zclass3_model[] = { "Tanker Zombie" }
new const 
zclass3_clawmodel[] = { "v_darkhand" }
const 
zclass3_health 3500
const zclass3_speed 300
const Float:zclass3_gravity 0.8
new const zclass3_adminflags[] = ADMIN_ALL

// Boogeyman Zombie Attributes
new const zclass4_name[] = { "Boogeyman Zombie" }
new const 
zclass4_info[] = { "FREE" }
new const 
zclass4_model[] = { "Boogeyman Zombie" }
new const 
zclass4_clawmodel[] = { "v_darkhand" }
const 
zclass4_health 4000
const zclass4_speed 210
const Float:zclass4_gravity 0.8
new const zclass4_adminflags[] = ADMIN_ALL

// StingFinger Zombie Attributes
new const zclass5_name[] = { "StingFinger Zombie" }
new const 
zclass5_info[] = { "Gold Member's" }
new const 
zclass5_model[] = { "StingFinger Zombie" }
new const 
zclass5_clawmodel[] = { "v_finger" }
const 
zclass5_health 4500
const zclass5_speed 260
const Float:zclass5_gravity 0.5
new const zclass5_adminflags[] = ADMIN_LEVEL_H

//Every 15 seconds, regenerates 2.5% max health
#define REGENERATION_DELAY 15.0
#define HEAL_ALGORITHM (get_user_health(id) + (zclass7_health * 0.025))


// Nemesis Zombie Attributes
new const zclass6_name[] = { "Nemesis Zombie" }
new const 
zclass6_info[] = { "Junior Admin's" }
new const 
zclass6_model[] = { "Nemesis Zombie" }
new const 
zclass6_clawmodel[] = { "v_nemesis" }
const 
zclass6_health 5500
const zclass6_speed 250
const Float:zclass6_gravity 0.8
new const zclass6_adminflags[] = ADMIN_LEVEL_F

// Spawn Zombie Attributes
new const zclass7_name[] = { "Spawn Zombie" }
new const 
zclass7_info[] = { "Super Admin's" }
new const 
zclass7_model[] = { "Spawn Zombie" }
new const 
zclass7_clawmodel[] = { "v_darkhand" }
const 
zclass7_health 6000
const zclass7_speed 250
const Float:zclass7_gravity 0.8
new const zclass7_adminflags[] = ADMIN_LEVEL_E

// Hunter Zombie Attributes
new const zclass8_name[] = { "Hunter Zombie" }
new const 
zclass8_info[] = { "Full Admin's" }
new const 
zclass8_model[] = { "Hunter Zombie" }
new const 
zclass8_clawmodel[] = { "v_hunter" }
const 
zclass8_health 7000
const zclass8_speed 280
const Float:zclass8_gravity 0.4
new const zclass8_adminflags[] = ADMIN_LEVEL_D


// Lavva Zombie Attributes
new const zclass9_name[] = { "Lavva Zombie" }
new const 
zclass9_info[] = { "Head Admin's" }
new const 
zclass9_model[] = { "Lavva Zombie" }
new const 
zclass9_clawmodel[] = { "v_yollowhand" }
const 
zclass9_health 7500
const zclass9_speed 300
const Float:zclass9_gravity 0.4
new const zclass9_adminflags[] = ADMIN_LEVEL_C

// Monster Zombie Attributes
new const zclass10_name[] = { "Monster Zombie" }
new const 
zclass10_info[] = { "Co Owner's" }
new const 
zclass10_model[] = { "Monster Zombie" }
new const 
zclass10_clawmodel[] = { "v_monster" }
const 
zclass10_health 8000
const zclass10_speed 300
const Float:zclass10_gravity 0.4
new const zclass10_adminflags[] = ADMIN_LEVEL_B

// Boss Zombie Attributes
new const zclass11_name[] = { "Boss Zombie" }
new const 
zclass11_info[] = { "Vlasnik/Owner's" }
new const 
zclass11_model[] = { "Boss Zombie" }
new const 
zclass11_clawmodel[] = { "v_boss" }
const 
zclass11_health 10000
const zclass11_speed 300
const Float:zclass11_gravity 0.3
new const zclass11_adminflags[] = ADMIN_LEVEL_A

/*============================================================================*/

new g_zclass_regenerator
new Floatg_fRegenDelay[33]



// Zombie Classes MUST be registered on plugin_precache
public plugin_precache()
{
    
register_plugin("[BB] Default Zombie Classes""6.5""Tirant")
    
    
// Register all classes
    
bb_register_zombie_class(zclass1_namezclass1_infozclass1_modelzclass1_clawmodelzclass1_healthzclass1_speedzclass1_gravity0.0zclass1_adminflags)
    
bb_register_zombie_class(zclass2_namezclass2_infozclass2_modelzclass2_clawmodelzclass2_healthzclass2_speedzclass2_gravity0.0zclass2_adminflags)
    
bb_register_zombie_class(zclass3_namezclass3_infozclass3_modelzclass3_clawmodelzclass3_healthzclass3_speedzclass3_gravity0.0zclass3_adminflags)
    
bb_register_zombie_class(zclass4_namezclass4_infozclass4_modelzclass4_clawmodelzclass4_healthzclass4_speedzclass4_gravity0.0zclass4_adminflags)
    
g_zclass_regenerator bb_register_zombie_class(zclass5_namezclass5_infozclass5_modelzclass5_clawmodelzclass5_healthzclass5_speedzclass5_gravity0.0zclass5_adminflags)
    
bb_register_zombie_class(zclass6_namezclass6_infozclass6_modelzclass6_clawmodelzclass6_healthzclass6_speedzclass6_gravity0.0zclass6_adminflags)
    
bb_register_zombie_class(zclass7_namezclass7_infozclass7_modelzclass7_clawmodelzclass7_healthzclass7_speedzclass7_gravity0.0zclass7_adminflags)
    
bb_register_zombie_class(zclass8_namezclass8_infozclass8_modelzclass8_clawmodelzclass8_healthzclass8_speedzclass8_gravity0.0zclass8_adminflags)
    
bb_register_zombie_class(zclass9_namezclass9_infozclass9_modelzclass9_clawmodelzclass9_healthzclass9_speedzclass9_gravity0.0zclass9_adminflags)
    
bb_register_zombie_class(zclass10_namezclass10_infozclass10_modelzclass10_clawmodelzclass10_healthzclass10_speedzclass10_gravity0.0zclass10_adminflags)
    
bb_register_zombie_class(zclass11_namezclass11_infozclass11_modelzclass11_clawmodelzclass11_healthzclass11_speedzclass11_gravity0.0zclass11_adminflags)
}

public 
plugin_init()
{
    
register_forward(FM_PlayerPreThink"fw_PlayerPreThink");
}



public 
fw_PlayerPreThink(id)
{
    if (!
is_user_alive(id) || !is_user_connected(id))
        return 
FMRES_IGNORED

    
if (zp_get_user_zombie_class(id) == g_zclass_regenerator && bb_is_user_zombie(id))
    {
        static 
FloatfGameTime;
        
fGameTime get_gametime();
        if (
g_fRegenDelay[id] < fGameTime)
        {
            
g_fRegenDelay[id] = fGameTime REGENERATION_DELAY;
    
            new 
iHealth floatround(HEAL_ALGORITHM);
            
iHealth clamp(iHealth0zclass5_health);
            
set_user_health(idiHealth);
        }
    }
    return 
FMRES_IGNORED    
}
/*-----------------------------------------------------------------------------------------------------*/ 
Anyone can fix this problme plz !!

Last edited by Supremache; 06-27-2020 at 14:58.
Supremache is offline
alferd
Veteran Member
Join Date: Dec 2019
Location: Iran is Always Eternal
Old 06-27-2020 , 15:27   Re: ZombieClasses.ini File Problem
Reply With Quote #12

PHP Code:
new const zclass1_adminflags[] = ADMIN_ALL 
to
PHP Code:
new const zclass1_adminflags[] = { "ADMIN_ALL" 
But it doesn't work

--------------------------

PHP Code:
new const zclass1_adminflags[] = ADMIN_ALL 
Remove ( [] )

PHP Code:
new const zclass1_adminflags ADMIN_ALL 
It works
alferd is offline
Supremache
Veteran Member
Join Date: Sep 2019
Location: Egypt
Old 06-27-2020 , 15:44   Re: ZombieClasses.ini File Problem
Reply With Quote #13

Quote:
Originally Posted by alferd View Post
PHP Code:
new const zclass1_adminflags[] = ADMIN_ALL 
to
PHP Code:
new const zclass1_adminflags[] = { "ADMIN_ALL" 
But it doesn't work

--------------------------

PHP Code:
new const zclass1_adminflags[] = ADMIN_ALL 
Remove ( [] )

PHP Code:
new const zclass1_adminflags ADMIN_ALL 
It works
Not worked
PHP Code:
public native_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hpspeedFloat:gravityFloat:knockback, const adminflags[], credits)
{
    if (!
g_boolArraysCreated)
        return 
0;
        
    
// Strings passed byref
    
param_convert(1)
    
param_convert(2)
    
param_convert(3)
    
param_convert(4)
    
    
// Add the class
    
ArrayPushString(g_zclass_namename)
    
ArrayPushString(g_zclass_infoinfo)
    
    
ArrayPushCell(g_zclass_modelsstartArraySize(g_zclass_playermodel))
    
ArrayPushString(g_zclass_playermodelmodel)
    
ArrayPushCell(g_zclass_modelsendArraySize(g_zclass_playermodel))
    
ArrayPushCell(g_zclass_modelindex, -1)
    
    
ArrayPushString(g_zclass_clawmodelclawmodel)
    
ArrayPushCell(g_zclass_hphp)
    
ArrayPushCell(g_zclass_spdspeed)
    
ArrayPushCell(g_zclass_gravgravity)
    
ArrayPushString(g_zclass_adminadminflags)
    
ArrayPushCell(g_zclass_creditscredits)
    
    
// Set temporary new class flag
    
ArrayPushCell(g_zclass_new1)
    
    
// Override zombie classes data with our customizations
    
new ikbuffer[32], Float:buffer2nummodels_customnummodels_defaultprec_mdl[100], size ArraySize(g_zclass2_realname)
    for (
0sizei++)
    {
        
ArrayGetString(g_zclass2_realnameibuffercharsmax(buffer))
        
        
// Check if this is the intended class to override
        
if (!equal(namebuffer))
            continue;
        
        
// Remove new class flag
        
ArraySetCell(g_zclass_newg_iZClasses0)
        
        
// Replace caption
        
ArrayGetString(g_zclass2_nameibuffercharsmax(buffer))
        
ArraySetString(g_zclass_nameg_iZClassesbuffer)
        
        
// Replace info
        
ArrayGetString(g_zclass2_infoibuffercharsmax(buffer))
        
ArraySetString(g_zclass_infog_iZClassesbuffer)
        
        
nummodels_custom ArrayGetCell(g_zclass2_modelsendi) - ArrayGetCell(g_zclass2_modelsstarti)
        
nummodels_default ArrayGetCell(g_zclass_modelsendg_iZClasses) - ArrayGetCell(g_zclass_modelsstartg_iZClasses)
            
        
// Replace each player model and model index
        
for (0min(nummodels_customnummodels_default); k++)
        {
            
ArrayGetString(g_zclass2_playermodelArrayGetCell(g_zclass2_modelsstarti) + kbuffercharsmax(buffer))
            
ArraySetString(g_zclass_playermodelArrayGetCell(g_zclass_modelsstartg_iZClasses) + kbuffer)
                
            
// Precache player model and replace its modelindex with the real one
            
formatex(prec_mdlcharsmax(prec_mdl), "models/player/%s/%s.mdl"bufferbuffer)
            
ArraySetCell(g_zclass_modelindexArrayGetCell(g_zclass_modelsstartg_iZClasses) + kengfunc(EngFunc_PrecacheModelprec_mdl))
        }
            
        
// We have more custom models than what we can accommodate,
        // Let's make some space...
        
if (nummodels_custom nummodels_default)
        {
            for (
nummodels_defaultnummodels_customk++)
            {
                
ArrayGetString(g_zclass2_playermodelArrayGetCell(g_zclass2_modelsstarti) + kbuffercharsmax(buffer))
                
ArrayInsertStringAfter(g_zclass_playermodelArrayGetCell(g_zclass_modelsstartg_iZClasses) + 1buffer)
                
                
// Precache player model and retrieve its modelindex
                
formatex(prec_mdlcharsmax(prec_mdl), "models/player/%s/%s.mdl"bufferbuffer)
                
ArrayInsertCellAfter(g_zclass_modelindexArrayGetCell(g_zclass_modelsstartg_iZClasses) + 1engfunc(EngFunc_PrecacheModelprec_mdl))
            }
                
            
// Fix models end index for this class
            
ArraySetCell(g_zclass_modelsendg_iZClassesArrayGetCell(g_zclass_modelsendg_iZClasses) + (nummodels_custom nummodels_default))
        }
        
        
// Replace clawmodel
        
ArrayGetString(g_zclass2_clawmodelibuffercharsmax(buffer))
        
ArraySetString(g_zclass_clawmodelg_iZClassesbuffer)
        
        
// Precache clawmodel
        
formatex(prec_mdlcharsmax(prec_mdl), "models/%s.mdl"buffer)
        
engfunc(EngFunc_PrecacheModelprec_mdl)
        
        
// Replace health
        
buffer[0] = ArrayGetCell(g_zclass2_hpi)
        
ArraySetCell(g_zclass_hpg_iZClassesbuffer[0])
        
        
// Replace speed
        
buffer[0] = ArrayGetCell(g_zclass2_spdi)
        
ArraySetCell(g_zclass_spdg_iZClassesbuffer[0])
        
        
// Replace gravity
        
buffer2 Float:ArrayGetCell(g_zclass2_gravi)
        
ArraySetCell(g_zclass_gravg_iZClassesbuffer2)
        
        
// Replace admin flags
        
ArrayGetString(g_zclass2_adminibuffercharsmax(buffer))
        
ArraySetString(g_zclass_adming_iZClassesbuffer)
        
//buffer2 = ArrayGetCell(g_zclass2_admin, i)
        //ArraySetCell(g_zclass_admin, g_iZClasses, buffer2)
    
        // Replace credits
        
buffer2 ArrayGetCell(g_zclass2_creditsi)
        
ArraySetCell(g_zclass_creditsg_iZClassesbuffer2)
    }
    
    
// If class was not overriden with customization data
    
if (ArrayGetCell(g_zclass_newg_iZClasses))
    {
        
// Precache default class model and replace modelindex with the real one
        
formatex(prec_mdlcharsmax(prec_mdl), "models/player/%s/%s.mdl"modelmodel)
        
ArraySetCell(g_zclass_modelindexArrayGetCell(g_zclass_modelsstartg_iZClasses), engfunc(EngFunc_PrecacheModelprec_mdl))
        
        
// Precache default clawmodel
        
formatex(prec_mdlcharsmax(prec_mdl), "models/%s.mdl"clawmodel)
        
engfunc(EngFunc_PrecacheModelprec_mdl)
    }

    
g_iZClasses++
    
    return 
g_iZClasses-1

I have to add [] and new const
Because all codes of adminflag and trasforement form ArrayGetCell to ArrayGetString
PHP Code:
const adminflags[]
// Replace admin flags
        
ArrayGetString(g_zclass2_adminibuffercharsmax(buffer))
        
ArraySetString(g_zclass_adming_iZClassesbuffer

Last edited by Supremache; 06-27-2020 at 15:45.
Supremache is offline
Supremache
Veteran Member
Join Date: Sep 2019
Location: Egypt
Old 06-27-2020 , 16:48   Re: ZombieClasses.ini File Problem
Reply With Quote #14

This is bb mod after i added zombieclasses.ini file codes
I hope someone fix this problem.
Attached Files
File Type: sma Get Plugin or Get Source (basebuilder.sma - 36 views - 87.9 KB)

Last edited by Supremache; 06-27-2020 at 16:49.
Supremache is offline
Supremache
Veteran Member
Join Date: Sep 2019
Location: Egypt
Old 06-28-2020 , 05:20   Re: ZombieClasses.ini File Problem
Reply With Quote #15

I don't know how to explain that but i hope someone understand me!!
What is the code that can work with zombie classes flag ?

ArrayPushString or ArrayPushCell ??

ArrayPushCell = numbers
ArrayPushString = names

Is there's anycode working for flags ??
Supremache is offline
alferd
Veteran Member
Join Date: Dec 2019
Location: Iran is Always Eternal
Old 06-28-2020 , 05:25   Re: ZombieClasses.ini File Problem
Reply With Quote #16

Quote:
Originally Posted by Supremache View Post
I don't know how to explain that but i hope someone understand me!!
What is the code that can work with zombie classes flag ?

ArrayPushString or ArrayPushCell ??

ArrayPushCell = numbers
ArrayPushString = names

Is there's anycode working for flags ??
PHP Code:
ArrayPushString 
Flags are not a number but a letter

Last edited by alferd; 06-28-2020 at 05:33.
alferd is offline
Supremache
Veteran Member
Join Date: Sep 2019
Location: Egypt
Old 06-28-2020 , 05:52   Re: ZombieClasses.ini File Problem
Reply With Quote #17

Quote:
Originally Posted by alferd View Post
PHP Code:
ArrayPushString 
Flags are not a number but a letter
I know but if i use ArrayPushString i need to change everything in mod and i did that and also chaning everything on zombie class file to be

From This
PHP Code:
const zclass1_adminflags ADMIN_ALL 
To this

PHP Code:
new const zclass1_adminflags[] = ADMIN_ALL 
Class Exmple:
PHP Code:
// Classic Zombie Attributes
new const zclass1_name[] = { "Classic Zombie" }
new const 
zclass1_info[] = { "FREE" }
new const 
zclass1_model[] = { "Classic Zombie" }
new const 
zclass1_clawmodel[] = { "v_bloodyhands" }
const 
zclass1_health 3000
const zclass1_speed 260
const Float:zclass1_gravity 0.8
const zclass1_adminflags ADMIN_ALL 
See "name, info, model, clowmodel" those had coded with ArrayPushString but when i do the same in adminflags plugin didn't get compileing

This is native_register_zombie_class, See const name[], const info[], const model[] when i use ArrayPushString i have to add "const + []" for code and i did that but i had got problem in zombie classes plugin because as i said when i changing everything from ArrayPushCell to ArrayPushString i need to do the changing also in zombie class plugin but i dont know how this code can be work
PHP Code:
new const zclass1_adminflags[] = { "ADMIN_ALL" 
I want to know if there's code can be work with flag access?, or the problem from the mod ?, or there's some wrongs in what i did ?
PHP Code:
public native_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hpspeedFloat:gravityFloat:knockbackadminflagscredits)
{
    if (!
g_boolArraysCreated)
        return 
0;
        
    
// Strings passed byref
    
param_convert(1)
    
param_convert(2)
    
param_convert(3)
    
param_convert(4)
    
    
// Add the class
    
ArrayPushString(g_zclass_namename)
    
ArrayPushString(g_zclass_infoinfo)


    
ArrayPushCell(g_zclass_modelsstartArraySize(g_zclass_playermodel))
    
ArrayPushString(g_zclass_playermodelmodel)
    
ArrayPushCell(g_zclass_modelsendArraySize(g_zclass_playermodel))
    
ArrayPushCell(g_zclass_modelindex, -1)
    
    
ArrayPushString(g_zclass_clawmodelclawmodel)
    
ArrayPushCell(g_zclass_hphp)
    
ArrayPushCell(g_zclass_spdspeed)
    
ArrayPushCell(g_zclass_gravgravity)
    
ArrayPushCell(g_zclass_adminadminflags)
    
ArrayPushCell(g_zclass_creditscredits)
    
    
// Set temporary new class flag
    
ArrayPushCell(g_zclass_new1)
    
    
// Override zombie classes data with our customizations
    
new ikbuffer[32], Float:buffer2nummodels_customnummodels_defaultprec_mdl[100], size ArraySize(g_zclass2_realname)
    for (
0sizei++)
    {
        
ArrayGetString(g_zclass2_realnameibuffercharsmax(buffer))
        
        
// Check if this is the intended class to override
        
if (!equal(namebuffer))
            continue;
        
        
// Remove new class flag
        
ArraySetCell(g_zclass_newg_iZClasses0)
        
        
// Replace caption
        
ArrayGetString(g_zclass2_nameibuffercharsmax(buffer))
        
ArraySetString(g_zclass_nameg_iZClassesbuffer)
        
        
// Replace info
        
ArrayGetString(g_zclass2_infoibuffercharsmax(buffer))
        
ArraySetString(g_zclass_infog_iZClassesbuffer)    
        
        
nummodels_custom ArrayGetCell(g_zclass2_modelsendi) - ArrayGetCell(g_zclass2_modelsstarti)
        
nummodels_default ArrayGetCell(g_zclass_modelsendg_iZClasses) - ArrayGetCell(g_zclass_modelsstartg_iZClasses)
            
        
// Replace each player model and model index
        
for (0min(nummodels_customnummodels_default); k++)
        {
            
ArrayGetString(g_zclass2_playermodelArrayGetCell(g_zclass2_modelsstarti) + kbuffercharsmax(buffer))
            
ArraySetString(g_zclass_playermodelArrayGetCell(g_zclass_modelsstartg_iZClasses) + kbuffer)
                
            
// Precache player model and replace its modelindex with the real one
            
formatex(prec_mdlcharsmax(prec_mdl), "models/player/%s/%s.mdl"bufferbuffer)
            
ArraySetCell(g_zclass_modelindexArrayGetCell(g_zclass_modelsstartg_iZClasses) + kengfunc(EngFunc_PrecacheModelprec_mdl))
        }
            
        
// We have more custom models than what we can accommodate,
        // Let's make some space...
        
if (nummodels_custom nummodels_default)
        {
            for (
nummodels_defaultnummodels_customk++)
            {
                
ArrayGetString(g_zclass2_playermodelArrayGetCell(g_zclass2_modelsstarti) + kbuffercharsmax(buffer))
                
ArrayInsertStringAfter(g_zclass_playermodelArrayGetCell(g_zclass_modelsstartg_iZClasses) + 1buffer)
                
                
// Precache player model and retrieve its modelindex
                
formatex(prec_mdlcharsmax(prec_mdl), "models/player/%s/%s.mdl"bufferbuffer)
                
ArrayInsertCellAfter(g_zclass_modelindexArrayGetCell(g_zclass_modelsstartg_iZClasses) + 1engfunc(EngFunc_PrecacheModelprec_mdl))
            }
                
            
// Fix models end index for this class
            
ArraySetCell(g_zclass_modelsendg_iZClassesArrayGetCell(g_zclass_modelsendg_iZClasses) + (nummodels_custom nummodels_default))
        }
        
        
// Replace clawmodel
        
ArrayGetString(g_zclass2_clawmodelibuffercharsmax(buffer))
        
ArraySetString(g_zclass_clawmodelg_iZClassesbuffer)
        
        
// Precache clawmodel
        
formatex(prec_mdlcharsmax(prec_mdl), "models/%s.mdl"buffer)
        
engfunc(EngFunc_PrecacheModelprec_mdl)
        
        
// Replace health
        
buffer[0] = ArrayGetCell(g_zclass2_hpi)
        
ArraySetCell(g_zclass_hpg_iZClassesbuffer[0])
        
        
// Replace speed
        
buffer[0] = ArrayGetCell(g_zclass2_spdi)
        
ArraySetCell(g_zclass_spdg_iZClassesbuffer[0])
        
        
// Replace gravity
        
buffer2 Float:ArrayGetCell(g_zclass2_gravi)
        
ArraySetCell(g_zclass_gravg_iZClassesbuffer2)
        
        
buffer2 ArrayGetCell(g_zclass2_admini)
        
ArraySetCell(g_zclass_adming_iZClassesbuffer2)    
    
        
// Replace credits
        
buffer2 ArrayGetCell(g_zclass2_creditsi)
        
ArraySetCell(g_zclass_creditsg_iZClassesbuffer2)
    }
    
    
// If class was not overriden with customization data
    
if (ArrayGetCell(g_zclass_newg_iZClasses))
    {
        
// Precache default class model and replace modelindex with the real one
        
formatex(prec_mdlcharsmax(prec_mdl), "models/player/%s/%s.mdl"modelmodel)
        
ArraySetCell(g_zclass_modelindexArrayGetCell(g_zclass_modelsstartg_iZClasses), engfunc(EngFunc_PrecacheModelprec_mdl))
        
        
// Precache default clawmodel
        
formatex(prec_mdlcharsmax(prec_mdl), "models/%s.mdl"clawmodel)
        
engfunc(EngFunc_PrecacheModelprec_mdl)
    }

    
g_iZClasses++
    
    return 
g_iZClasses-1


Last edited by Supremache; 06-28-2020 at 05:56.
Supremache is offline
alferd
Veteran Member
Join Date: Dec 2019
Location: Iran is Always Eternal
Old 06-28-2020 , 07:32   Re: ZombieClasses.ini File Problem
Reply With Quote #18

test
Code:
public native_register_zombie_class(const name[], const info[], const model[], const clawmodel[], const adminflags[], hp, speed, Float:gravity, Float:knockback, credits) {     if (!g_boolArraysCreated)         return 0;             // Strings passed byref     param_convert(1)     param_convert(2)     param_convert(3)     param_convert(4)     param_convert(5)         // Add the class     ArrayPushString(g_zclass_name, name)     ArrayPushString(g_zclass_info, info)     ArrayPushCell(g_zclass_modelsstart, ArraySize(g_zclass_playermodel))     ArrayPushString(g_zclass_playermodel, model)     ArrayPushCell(g_zclass_modelsend, ArraySize(g_zclass_playermodel))     ArrayPushCell(g_zclass_modelindex, -1)         ArrayPushString(g_zclass_clawmodel, clawmodel)     ArrayPushCell(g_zclass_hp, hp)     ArrayPushCell(g_zclass_spd, speed)     ArrayPushCell(g_zclass_grav, gravity)     ArrayPushString(g_zclass_admin, adminflags)     ArrayPushCell(g_zclass_credits, credits)         // Set temporary new class flag     ArrayPushCell(g_zclass_new, 1)         // Override zombie classes data with our customizations     new i, k, buffer[32], Float:buffer2, nummodels_custom, nummodels_default, prec_mdl[100], size = ArraySize(g_zclass2_realname)     for (i = 0; i < size; i++)     {         ArrayGetString(g_zclass2_realname, i, buffer, charsmax(buffer))                 // Check if this is the intended class to override         if (!equal(name, buffer))             continue;                 // Remove new class flag         ArraySetCell(g_zclass_new, g_iZClasses, 0)                 // Replace caption         ArrayGetString(g_zclass2_name, i, buffer, charsmax(buffer))         ArraySetString(g_zclass_name, g_iZClasses, buffer)                 // Replace info         ArrayGetString(g_zclass2_info, i, buffer, charsmax(buffer))         ArraySetString(g_zclass_info, g_iZClasses, buffer)                    nummodels_custom = ArrayGetCell(g_zclass2_modelsend, i) - ArrayGetCell(g_zclass2_modelsstart, i)         nummodels_default = ArrayGetCell(g_zclass_modelsend, g_iZClasses) - ArrayGetCell(g_zclass_modelsstart, g_iZClasses)                     // Replace each player model and model index         for (k = 0; k < min(nummodels_custom, nummodels_default); k++)         {             ArrayGetString(g_zclass2_playermodel, ArrayGetCell(g_zclass2_modelsstart, i) + k, buffer, charsmax(buffer))             ArraySetString(g_zclass_playermodel, ArrayGetCell(g_zclass_modelsstart, g_iZClasses) + k, buffer)                             // Precache player model and replace its modelindex with the real one             formatex(prec_mdl, charsmax(prec_mdl), "models/player/%s/%s.mdl", buffer, buffer)             ArraySetCell(g_zclass_modelindex, ArrayGetCell(g_zclass_modelsstart, g_iZClasses) + k, engfunc(EngFunc_PrecacheModel, prec_mdl))         }                     // We have more custom models than what we can accommodate,         // Let's make some space...         if (nummodels_custom > nummodels_default)         {             for (k = nummodels_default; k < nummodels_custom; k++)             {                 ArrayGetString(g_zclass2_playermodel, ArrayGetCell(g_zclass2_modelsstart, i) + k, buffer, charsmax(buffer))                 ArrayInsertStringAfter(g_zclass_playermodel, ArrayGetCell(g_zclass_modelsstart, g_iZClasses) + k - 1, buffer)                                 // Precache player model and retrieve its modelindex                 formatex(prec_mdl, charsmax(prec_mdl), "models/player/%s/%s.mdl", buffer, buffer)                 ArrayInsertCellAfter(g_zclass_modelindex, ArrayGetCell(g_zclass_modelsstart, g_iZClasses) + k - 1, engfunc(EngFunc_PrecacheModel, prec_mdl))             }                             // Fix models end index for this class             ArraySetCell(g_zclass_modelsend, g_iZClasses, ArrayGetCell(g_zclass_modelsend, g_iZClasses) + (nummodels_custom - nummodels_default))         }                 // Replace clawmodel         ArrayGetString(g_zclass2_clawmodel, i, buffer, charsmax(buffer))         ArraySetString(g_zclass_clawmodel, g_iZClasses, buffer)             ArrayGetString(g_zclass2_admin, i, buffer, charsmax(buffer))         ArraySetString(g_zclass_admin, g_iZClasses, buffer)                 // Precache clawmodel         formatex(prec_mdl, charsmax(prec_mdl), "models/%s.mdl", buffer)         engfunc(EngFunc_PrecacheModel, prec_mdl)                 // Replace health         buffer[0] = ArrayGetCell(g_zclass2_hp, i)         ArraySetCell(g_zclass_hp, g_iZClasses, buffer[0])                 // Replace speed         buffer[0] = ArrayGetCell(g_zclass2_spd, i)         ArraySetCell(g_zclass_spd, g_iZClasses, buffer[0])                 // Replace gravity         buffer2 = Float:ArrayGetCell(g_zclass2_grav, i)         ArraySetCell(g_zclass_grav, g_iZClasses, buffer2)              // Replace credits         buffer2 = ArrayGetCell(g_zclass2_credits, i)         ArraySetCell(g_zclass_credits, g_iZClasses, buffer2)     }         // If class was not overriden with customization data     if (ArrayGetCell(g_zclass_new, g_iZClasses))     {         // Precache default class model and replace modelindex with the real one         formatex(prec_mdl, charsmax(prec_mdl), "models/player/%s/%s.mdl", model, model)         ArraySetCell(g_zclass_modelindex, ArrayGetCell(g_zclass_modelsstart, g_iZClasses), engfunc(EngFunc_PrecacheModel, prec_mdl))                 // Precache default clawmodel         formatex(prec_mdl, charsmax(prec_mdl), "models/%s.mdl", clawmodel)         engfunc(EngFunc_PrecacheModel, prec_mdl)     }     g_iZClasses++         return g_iZClasses-1 }

PHP Code:
new const zclass1_adminflags[] = ADMIN_ALL 
alferd is offline
Supremache
Veteran Member
Join Date: Sep 2019
Location: Egypt
Old 06-28-2020 , 11:52   Re: ZombieClasses.ini File Problem
Reply With Quote #19

I think i aslo have to change those code right ?

From:
PHP Code:
    g_zclass_admin ArrayCreate(11)

    
g_zclass2_admin ArrayCreate(11)

public 
show_zclass_menu(id,offset)
{
    if(
offset<0offset 0

    
new keyscurnummenu[512], szCache1[32], szCache2[32], iCache3
    
for(new i=offset;i<g_iZClasses;i++)
    {
        
ArrayGetString(g_zclass_nameiszCache1charsmax(szCache1))
        
ArrayGetString(g_zclass_infoiszCache2charsmax(szCache2))
        
iCache3 ArrayGetCell(g_zclass_admini)
        
        
// Add to menu
        
if (== g_iZombieClass[id])
            
format(menu,511,"%s^n\d%d. %s %s \r%s"menucurnum+1szCache1szCache2iCache3 == ADMIN_ALL "" "(Admin Only)")
        else
            
format(menu,511,"%s^n\w%d. %s \y%s \r%s"menucurnum+1szCache1szCache2iCache3 == ADMIN_ALL "" "(Admin Only)")
        
        
g_iMenuOptions[id][curnum] = i
        keys 
+= (1<<curnum)
    
        
curnum++
        
        if(
curnum==8)
            break;
    }

    
format(menu,511,"\r[OhMyWay]\y Select Your Class:^n\w%s^n"menu)
    if(
curnum==&& offset<12)
    {
        
keys += (1<<8)
        
format(menu,511,"%s^n\w9. Next",menu)
    }
    if(
offset)
    {
        
keys += (1<<9)
        
format(menu,511,"%s^n\w0. Back",menu)
    }

    
show_menu(id,keys,menu,-1,"ZClassSelect")
}

else if (
equal(key"FLAG"))
ArrayPushCell(g_zclass2_adminstr_to_num(value))

formatex(buffercharsmax(buffer), "nFLAG = %d ^n"ArrayGetCell(g_zclass_admini))
fputs(filebuffer
To This

PHP Code:

    g_zclass_admin 
ArrayCreate(321)

    
g_zclass2_admin ArrayCreate(321)

public 
show_zclass_menu(id,offset)
{
    if(
offset<0offset 0

    
new keyscurnummenu[512], szCache1[32], szCache2[32], szCache2[32]
    for(new 
i=offset;i<g_iZClasses;i++)
    {
        
ArrayGetString(g_zclass_nameiszCache1charsmax(szCache1))
        
ArrayGetString(g_zclass_infoiszCache2charsmax(szCache2))
        
ArrayGetString(g_zclass_adminiszCache3charsmax(szCache3))

        
        
// Add to menu
        
if (== g_iZombieClass[id])
            
format(menu,511,"%s^n\d%d. %s %s \r%s"menucurnum+1szCache1szCache3)
        else
            
format(menu,511,"%s^n\w%d. %s \y%s \r%s"menucurnum+1szCache1szCache3)
        
        
g_iMenuOptions[id][curnum] = i
        keys 
+= (1<<curnum)
    
        
curnum++
        
        if(
curnum==8)
            break;
    }

    
format(menu,511,"\r[OhMyWay]\y Select Your Class:^n\w%s^n"menu)
    if(
curnum==&& offset<12)
    {
        
keys += (1<<8)
        
format(menu,511,"%s^n\w9. Next",menu)
    }
    if(
offset)
    {
        
keys += (1<<9)
        
format(menu,511,"%s^n\w0. Back",menu)
    }

    
show_menu(id,keys,menu,-1,"ZClassSelect")
}

else if (
equal(key"FLAG"))
ArrayPushString(g_zclass2_adminvalue)

ArrayGetString(g_zclass_adminbuffercharsmax(buffer))
format(buffercharsmax(buffer), "nFLAG = %d ^n"buffer)
fputs(filebuffer
Is that correct ??
Supremache is offline
alferd
Veteran Member
Join Date: Dec 2019
Location: Iran is Always Eternal
Old 06-28-2020 , 12:34   Re: ZombieClasses.ini File Problem
Reply With Quote #20

Appearance shows that everything is right
But you have to test
alferd 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 19:56.


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