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

ZP VIP System


Post New Thread Reply   
 
Thread Tools Display Modes
Plugin Info:     Modification:   Counter-Strike        Category:   Gameplay       
riste.kgb
Junior Member
Join Date: Oct 2019
Location: Macedonia, Bogdanci
Old 11-06-2019 , 14:25   ZP VIP System
Reply With Quote #1

Note: This plugin requires that you have enabled this plugin https://forums.alliedmods.net/showthread.php?t=161255 in order to work

Plugin version: 2.3 [ New version released.Scroll down to see new feature
Plugin Author: Riste.kgb
Category: Zombie Plague / Zombie Escape modes

Credits to: Edon1337 (For file reading/writting)

Cvars:
Code:
zv_vip_damage (default 3.0)
zv_vip_nofall ( default 1) // 1 = ON | 0 = OFF)
zv_freevip_enabled (default 1) // 1 = ON | 0 = OFF)
zv_freevip_start (default 20) // hour is always in 24hr format. When will be freevip started
zv_freevip_end (default 22) // hour when the freevip ends
zv_freevip_flags (default "abd") // flags that freevips will have
// New cvars as from version 2.2
zv_vip_bonushp (default 2000)
zv_vip_infect_bonus (default is 5)
zv_vip_human_bonusap ( default is 5) // when vip player human inflicts damage more than 300 to the victim (zombie) it will get additional 5 ammo packs
Player commands:
Code:
say /status = it will print the message when their vip status automatically ends and his flags
say /vips = it will print the currently online vips on the server
Advantages that this system offers:

- When the freevip hour started no need to wait for next map to have freevip privileges.
- When the vip player expire date reached, it is automatically removed
- VIP players can have custom models for each vip
- VIP players can do more damage (depending of the flag)
- VIP Players if fall they will not get any damage (depending of the cvar)
- VIP Players have multi jump



Saving vips in config/vips.ini:
Code:
Flags
A = Multi jump
B = Custom Model
C = Damage
D = Custom flag

< name or authid > < password > < flags > <expire date (%d.%M.%y %H:%m> <Custom_Model_Human> <custom_model_zombie>
Example for setting vip by name:
"Name" "password" "abcd" "07.12.2019 12:10" "custom_model_human" "custom_model_zombie"
Authorization:
Code:
The vip player should use  setinfo _pass "password" to authorize as a vip.
Plugin API:
Code:
native zv_get_vip_flag(index, const flag[]) // returns boolean true if the vip player has that flag or false if not.
native zv_is_vip_expired(index)
native zv_is_vip_authorized(index) // returns true if the vip is not expired and if it is authorized  no need to use zv_is_vip_expired if it is using this api
native zv_get_freevip_flag(const flag[]) // returns boolean true if the freevip is enabled & if that flag exists or false if not
Suggestions are welcomed. Any questions if you have feel free to ask.
Ill post in next post how to register a extra item / zombie class available to vips only.

Update Changelog:

Code:
- Fixed bugs  in ZP mode ( that i wasn't tested it, now it everything works fine)
-say /vips  - will print now and free vips on freehour
-The vip model now will work fine for zm / human
API update changelog:

Code:
- Added new native zv_register_extra_item(const name[], const desc[], cost,teams,const flag[])
for now is useless because it is still working on it to have this system own vip menu that will be there registered vip extra items.
Code:
Changelog v2.2:

- fixed errors in zp_user_infected_post
- added cvar zv_vip_bonushp that will have vip zombies
- added cvar zv_vip_bonusarmor that will have vip humans each round
- added bonus ammo packs for infecting player.
- added bonus ammo packs for inflicting zombie
Code:
Update v2.3
 - Added vip extra items menu, say /vm to open vip menu.
 - fixed several bugs with natives
API implementation
Code:
native zv_register_extra_item( const name[], const desc[], cost, teams, const flags[]) // teams = ZP_TEAM_HUMAN or ZP_TEAM_ZOMBIE |  vip flags
forward zv_extra_item_selected(id,itemid)
Code:
Update v2.4

- Fixed bug with flags for registering extra items. Now if vip doesn't have that flag for item, he can not buy it.
- Fixed bug that can dead player open vip extra items.
- Added bonus armor each round for humans.
Preview: https://prnt.sc/pxe8nq
Attached Files
File Type: zip vip_systemv2.4.zip (7.5 KB, 403 views)

Last edited by riste.kgb; 11-15-2019 at 17:02. Reason: Plugin updated.Fixed critical error that can crash the server.
riste.kgb is offline
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 11-06-2019 , 16:05   Re: ZP VIP System
Reply With Quote #2

MK: fun, cellaray и fakemeta се непотребни. Обиди се да го индентираш/подредиш кодот подобро за да биде полесно читлив за луѓего, вклучително и за самиот тебе.

EN: fun, cellarray and fakemeta are not needed. You should indent your code better to make it easier for people (including yourself) to read it.
__________________
OciXCrom is offline
Send a message via Skype™ to OciXCrom
riste.kgb
Junior Member
Join Date: Oct 2019
Location: Macedonia, Bogdanci
Old 11-08-2019 , 14:43   Re: ZP VIP System
Reply With Quote #3

Plugin is updated.

Read the first post about the change and new features that will be live soon.

It's recommended to update the plugin, so the new version comes without bugs.

Last edited by riste.kgb; 11-08-2019 at 14:43.
riste.kgb is offline
edon1337
Penguin Enthusiast
Join Date: Jun 2016
Location: Macedonia
Old 11-09-2019 , 05:42   Re: ZP VIP System
Reply With Quote #4

This code seems like a bunch of copy-pasting, especially Elite Admin System.

Suggestions:
1. You're only pre-caching 1 model from the array, then breaking the loop, resulting into server crash because of un-precached models.
PHP Code:
public plugin_precache(){
    
g_playerData ArrayCreate(PlayerData);
    
    
ReloadFile();
    
    new 
iPlayer[PlayerData];
    
    for(new 
iArraySize(g_playerData); i++)
    {
        
ArrayGetArray(g_playerData,i,iPlayer)
        new 
szModel[64]
        if(
iPlayer[Player_ModelCT][0])
        {
            
formatex(szModel,charsmax(szModel),"models/player/%s/%s.mdl",iPlayer[Player_ModelCT],iPlayer[Player_ModelCT])
            
precache_model(szModel)
        }
        
        if(
iPlayer[Player_ModelT][0])
        {
            
formatex(szModel,charsmax(szModel),"models/player/%s/%s.mdl",iPlayer[Player_ModelT],iPlayer[Player_ModelT])
            
precache_model(szModel)
        }
        break;
    }

2. Don't use ResetHUD to set models, it's not the appropriate event.

3. Implement ML
__________________

Last edited by edon1337; 11-09-2019 at 05:52.
edon1337 is offline
riste.kgb
Junior Member
Join Date: Oct 2019
Location: Macedonia, Bogdanci
Old 11-09-2019 , 05:55   Re: ZP VIP System
Reply With Quote #5

Quote:
Originally Posted by edon1337 View Post
This code seems like a bunch of copy-pasting, especially Elite Admin System.

Suggestions:
1. You're only pre-caching 1 model from the array, then breaking the loop, resulting into server crash because of un-precached models.
PHP Code:
public plugin_precache(){
    
g_playerData ArrayCreate(PlayerData);
    
    
ReloadFile();
    
    new 
iPlayer[PlayerData];
    
    for(new 
iArraySize(g_playerData); i++)
    {
        
ArrayGetArray(g_playerData,i,iPlayer)
        new 
szModel[64]
        if(
iPlayer[Player_ModelCT][0])
        {
            
formatex(szModel,charsmax(szModel),"models/player/%s/%s.mdl",iPlayer[Player_ModelCT],iPlayer[Player_ModelCT])
            
precache_model(szModel)
        }
        
        if(
iPlayer[Player_ModelT][0])
        {
            
formatex(szModel,charsmax(szModel),"models/player/%s/%s.mdl",iPlayer[Player_ModelT],iPlayer[Player_ModelT])
            
precache_model(szModel)
        }
        break;
    }

2. Don't use ResetHUD to set models, it's not the appropriate event.

3. Implement ML
for the suggestion #2: - For now it will be like this, it's working very well every round the player model is reseting as it means to be.
ML - will be added later when i finish with /vm menu.

EDIT: The bug with precaching models should be fixed now. Updated the first post with a new update.

Last edited by riste.kgb; 11-09-2019 at 06:13.
riste.kgb is offline
edon1337
Penguin Enthusiast
Join Date: Jun 2016
Location: Macedonia
Old 11-09-2019 , 06:26   Re: ZP VIP System
Reply With Quote #6

Quote:
Originally Posted by riste.kgb View Post
I'm not copy/pasting the codes. I'll look at this problem with precaching.
Yes, I'm blind, you're right.

Ur plugin:
PHP Code:
enum _:PlayerData
{
    
Player_IDMAX_NAME_LENGTH ],
    
Player_PasswordMAX_PASSWORD_LENGTH ],
    
Player_AccessFlagsMAX_FLAGS_LENGTH ],
    
Player_ExpireDateMAX_DATE_LENGTH ],
    
Player_ModelCTMAX_NAME_LENGTH ],
    
Player_ModelTMAX_NAME_LENGTH ],
    
bool:Player_Expired,
    
bool:Player_Suspended

EAS:
PHP Code:
enum _:PlayerData
{
    
Player_IDMAX_NAME_LENGTH ],
    
Player_PasswordMAX_PASSWORD_LENGTH ],
    
Player_AccessFlagsMAX_FLAGS_LENGTH ],
    
Player_Prefix32 ],
    
Player_Model_T64 ],
    
Player_Model_CT64 ],
    
Player_Expire_DateMAX_DATE_LENGTH ],
    
Player_FlagsExpireMAX_FLAGS_LENGTH ],
    
Player_Immunity,
    
bool:Player_Suspended,
    
bool:Player_Expired,
    
bool:Player_KeepPrivileges

ur plugin:
PHP Code:
public plugin_precache(){

    
g_playerData ArrayCreate(PlayerData);
    
    
ReloadFile();
    
    new 
iPlayer[PlayerData];
    for(new 
iArraySize(g_playerData); i++
    {
        
ArrayGetArray(g_playerData,i,iPlayer)
        new 
szModel[64]
        if(
iPlayer[Player_ModelCT][0]
                {
                    
formatex(szModel,charsmax(szModel),"models/player/%s/%s.mdl",iPlayer[Player_ModelCT],iPlayer[Player_ModelCT])
                    
precache_model(szModel)
                }
                if(
iPlayer[Player_ModelT][0])
        {
            
formatex(szModel,charsmax(szModel),"models/player/%s/%s.mdl",iPlayer[Player_ModelT],iPlayer[Player_ModelT])
            
precache_model(szModel)
        }
        break;
    }

EAS (older version):
PHP Code:
public plugin_precache( )
{    
    
g_aDatabase ArrayCreatePlayerData );
    
g_aCommands ArrayCreateCommands );

    
ReloadFile( );

    new 
eDataPlayerData ], szModel64 ];
    for( new 
iArraySizeg_aDatabase ); i++ )
    {
        
ArrayGetArrayg_aDatabaseieData );
        
        if( 
eDataPlayer_Model_T ][ ] )
        {
            
formatexszModelcharsmaxszModel ), "models/player/%s/%s.mdl"eDataPlayer_Model_T ], eDataPlayer_Model_T ] );
            
precache_modelszModel );
        }
        
        if( 
eDataPlayer_Model_CT ][ ] )
        {
            
formatexszModelcharsmaxszModel ), "models/player/%s/%s.mdl"eDataPlayer_Model_CT ], eDataPlayer_Model_CT ] );
            
precache_modelszModel );
        }
    }

ur plugin:
PHP Code:
ReloadFile()
{
    
ArrayClear(g_playerData)
    new 
szFile[64],szPlayersData[512],eData[PlayerData];
    
formatex(szFile,charsmax(szFile),"%s/vips.ini",g_szConfig)
    new 
iFile fopen(szFile,"rt")
    
    if(!
iFile)
    {
        
log_amx("File not found: %s"szFile);
    }
    
    if(
iFile)
    {
        while(
fgets(iFile,szPlayersData,charsmax(szPlayersData)))
        {
            
trim(szPlayersData)
            switch(
szPlayersData[0])
            {
            case 
EOS,'#','/','\':
                {
                    continue;
                }

                default:
                {
                    parse(szPlayersData,eData[Player_ID],charsmax(eData[Player_ID]),eData[Player_Password],charsmax(eData[Player_Password]),eData[Player_AccessFlags],charsmax(eData[Player_AccessFlags]),eData[Player_ExpireDate],charsmax(eData[Player_ExpireDate]),eData[Player_ModelCT],charsmax(eData[Player_ModelCT]),eData[Player_ModelT],charsmax(eData[Player_ModelT]))
            
                    if(szPlayersData[0] == '
;')
                    {
                        eData[Player_Suspended] = true;
                        replace(eData[Player_ID],charsmax(eData[Player_ID]),";","");
                    }
            
                    if(eData[Player_ExpireDate][0])
                    {
                        if(HasVipExpired(eData[Player_ExpireDate]))
                        {
                            eData[Player_Expired] = true;
                        }
                    }
                    ArrayPushArray(g_playerData,eData)
                    arrayset(eData,0,sizeof(eData))
                }
            }
        }
        fclose(iFile);
    }

EAS:
PHP Code:
ReloadFile( )
{
    
ArrayClearg_aDatabase );

    new 
szFormat64 ], szPlayerData512 ], eDataPlayerData ];
    
formatexszFormatcharsmaxszFormat ), "%s/%s"g_szConfigsDirg_iConfigUSERS_FILE ] );
    
    new 
iFile fopenszFormat"rt" );
    
    if( 
iFile )
    {
        while( 
fgetsiFileszPlayerDatacharsmaxszPlayerData ) ) )
        {
            
trimszPlayerData );
            
            switch( 
szPlayerData] )
            {
            case 
EOS'#''/''\':
                {
                    continue;
                }
                
            default:
                {
                    new szImmunity[ 8 ], szKeepPrivileges[ 3 ];
                    if( parse( szPlayerData, eData[ Player_ID ], charsmax( eData[ Player_ID ] ), eData[ Player_Password ], charsmax( eData[ Player_Password ] ), eData[ Player_AccessFlags ], charsmax( eData[ Player_AccessFlags ] ),
                                eData[ Player_Prefix ], charsmax( eData[ Player_Prefix ] ), eData[ Player_Model_T ], charsmax( eData[ Player_Model_T ] ), eData[ Player_Model_CT ], charsmax( eData[ Player_Model_CT ] ), szImmunity, charsmax( szImmunity ),
                                eData[ Player_Expire_Date ], charsmax( eData[ Player_Expire_Date ] ), eData[ Player_FlagsExpire ], charsmax( eData[ Player_FlagsExpire ] ), szKeepPrivileges, charsmax( szKeepPrivileges ) ) < 10 )
                    {
                        continue;
                    }
                    
                    if( szPlayerData[ 0 ] == '
;' )
                    {
                        eData[ Player_Suspended ] = true;
                        replace( eData[ Player_ID ], charsmax( eData[ Player_ID ] ), ";", "" );
                    }
                    
                    if( eData[ Player_Expire_Date ][ 0 ] )
                    {
                        if( HasAdminExpired( eData[ Player_Expire_Date ] ) )
                        {
                            eData[ Player_Expired ] = true;
                        }
                    }
                    
                    // we don'
t want to use models that don't exist
                    if( eData[ Player_Model_T ][ 0 ] )
                    {
                        if( ! ModelExists( eData[ Player_Model_T ] ) )
                        {
                            eData[ Player_Model_T ][ 0 ] = EOS;
                        }
                    }
                    
                    if( eData[ Player_Model_CT ][ 0 ] )
                    {
                        if( ! ModelExists( eData[ Player_Model_CT ] ) )
                        {
                            eData[ Player_Model_CT ][ 0 ] = EOS;
                        }
                    }
                    
                    new iImmunity = str_to_num( szImmunity );
                    eData[ Player_Immunity ] = ( ! is_str_num( szImmunity ) || iImmunity < 0 ) ? 0 : iImmunity;
                    
                    new iKeepPrivileges = str_to_num( szKeepPrivileges );
                    eData[ Player_KeepPrivileges ] = bool:( ( ! is_str_num( szKeepPrivileges ) || !( 0 <= iKeepPrivileges <= 1 ) ) ? 0 : iKeepPrivileges );
                    
                    ArrayPushArray( g_aDatabase, eData );
                    arrayset( eData, 0, sizeof( eData ) );
                }
            }
        }
        fclose( iFile );
    }

You didn't even re-name the variables..
__________________

Last edited by edon1337; 11-09-2019 at 06:30.
edon1337 is offline
riste.kgb
Junior Member
Join Date: Oct 2019
Location: Macedonia, Bogdanci
Old 11-09-2019 , 06:33   Re: ZP VIP System
Reply With Quote #7

Quote:
Originally Posted by edon1337 View Post
Yes, I'm blind, you're right.

Ur plugin:
PHP Code:
enum _:PlayerData
{
    
Player_IDMAX_NAME_LENGTH ],
    
Player_PasswordMAX_PASSWORD_LENGTH ],
    
Player_AccessFlagsMAX_FLAGS_LENGTH ],
    
Player_ExpireDateMAX_DATE_LENGTH ],
    
Player_ModelCTMAX_NAME_LENGTH ],
    
Player_ModelTMAX_NAME_LENGTH ],
    
bool:Player_Expired,
    
bool:Player_Suspended

EAS:
PHP Code:
enum _:PlayerData
{
    
Player_IDMAX_NAME_LENGTH ],
    
Player_PasswordMAX_PASSWORD_LENGTH ],
    
Player_AccessFlagsMAX_FLAGS_LENGTH ],
    
Player_Prefix32 ],
    
Player_Model_T64 ],
    
Player_Model_CT64 ],
    
Player_Expire_DateMAX_DATE_LENGTH ],
    
Player_FlagsExpireMAX_FLAGS_LENGTH ],
    
Player_Immunity,
    
bool:Player_Suspended,
    
bool:Player_Expired,
    
bool:Player_KeepPrivileges

ur plugin:
PHP Code:
public plugin_precache(){

    
g_playerData ArrayCreate(PlayerData);
    
    
ReloadFile();
    
    new 
iPlayer[PlayerData];
    for(new 
iArraySize(g_playerData); i++
    {
        
ArrayGetArray(g_playerData,i,iPlayer)
        new 
szModel[64]
        if(
iPlayer[Player_ModelCT][0]
                {
                    
formatex(szModel,charsmax(szModel),"models/player/%s/%s.mdl",iPlayer[Player_ModelCT],iPlayer[Player_ModelCT])
                    
precache_model(szModel)
                }
                if(
iPlayer[Player_ModelT][0])
        {
            
formatex(szModel,charsmax(szModel),"models/player/%s/%s.mdl",iPlayer[Player_ModelT],iPlayer[Player_ModelT])
            
precache_model(szModel)
        }
        break;
    }

EAS (older version):
PHP Code:
public plugin_precache( )
{    
    
g_aDatabase ArrayCreatePlayerData );
    
g_aCommands ArrayCreateCommands );

    
ReloadFile( );

    new 
eDataPlayerData ], szModel64 ];
    for( new 
iArraySizeg_aDatabase ); i++ )
    {
        
ArrayGetArrayg_aDatabaseieData );
        
        if( 
eDataPlayer_Model_T ][ ] )
        {
            
formatexszModelcharsmaxszModel ), "models/player/%s/%s.mdl"eDataPlayer_Model_T ], eDataPlayer_Model_T ] );
            
precache_modelszModel );
        }
        
        if( 
eDataPlayer_Model_CT ][ ] )
        {
            
formatexszModelcharsmaxszModel ), "models/player/%s/%s.mdl"eDataPlayer_Model_CT ], eDataPlayer_Model_CT ] );
            
precache_modelszModel );
        }
    }

ur plugin:
PHP Code:
ReloadFile()
{
    
ArrayClear(g_playerData)
    new 
szFile[64],szPlayersData[512],eData[PlayerData];
    
formatex(szFile,charsmax(szFile),"%s/vips.ini",g_szConfig)
    new 
iFile fopen(szFile,"rt")
    
    if(!
iFile)
    {
        
log_amx("File not found: %s"szFile);
    }
    
    if(
iFile)
    {
        while(
fgets(iFile,szPlayersData,charsmax(szPlayersData)))
        {
            
trim(szPlayersData)
            switch(
szPlayersData[0])
            {
            case 
EOS,'#','/','\':
                {
                    continue;
                }

                default:
                {
                    parse(szPlayersData,eData[Player_ID],charsmax(eData[Player_ID]),eData[Player_Password],charsmax(eData[Player_Password]),eData[Player_AccessFlags],charsmax(eData[Player_AccessFlags]),eData[Player_ExpireDate],charsmax(eData[Player_ExpireDate]),eData[Player_ModelCT],charsmax(eData[Player_ModelCT]),eData[Player_ModelT],charsmax(eData[Player_ModelT]))
            
                    if(szPlayersData[0] == '
;')
                    {
                        eData[Player_Suspended] = true;
                        replace(eData[Player_ID],charsmax(eData[Player_ID]),";","");
                    }
            
                    if(eData[Player_ExpireDate][0])
                    {
                        if(HasVipExpired(eData[Player_ExpireDate]))
                        {
                            eData[Player_Expired] = true;
                        }
                    }
                    ArrayPushArray(g_playerData,eData)
                    arrayset(eData,0,sizeof(eData))
                }
            }
        }
        fclose(iFile);
    }

EAS:
PHP Code:
ReloadFile( )
{
    
ArrayClearg_aDatabase );

    new 
szFormat64 ], szPlayerData512 ], eDataPlayerData ];
    
formatexszFormatcharsmaxszFormat ), "%s/%s"g_szConfigsDirg_iConfigUSERS_FILE ] );
    
    new 
iFile fopenszFormat"rt" );
    
    if( 
iFile )
    {
        while( 
fgetsiFileszPlayerDatacharsmaxszPlayerData ) ) )
        {
            
trimszPlayerData );
            
            switch( 
szPlayerData] )
            {
            case 
EOS'#''/''\':
                {
                    continue;
                }
                
            default:
                {
                    new szImmunity[ 8 ], szKeepPrivileges[ 3 ];
                    if( parse( szPlayerData, eData[ Player_ID ], charsmax( eData[ Player_ID ] ), eData[ Player_Password ], charsmax( eData[ Player_Password ] ), eData[ Player_AccessFlags ], charsmax( eData[ Player_AccessFlags ] ),
                                eData[ Player_Prefix ], charsmax( eData[ Player_Prefix ] ), eData[ Player_Model_T ], charsmax( eData[ Player_Model_T ] ), eData[ Player_Model_CT ], charsmax( eData[ Player_Model_CT ] ), szImmunity, charsmax( szImmunity ),
                                eData[ Player_Expire_Date ], charsmax( eData[ Player_Expire_Date ] ), eData[ Player_FlagsExpire ], charsmax( eData[ Player_FlagsExpire ] ), szKeepPrivileges, charsmax( szKeepPrivileges ) ) < 10 )
                    {
                        continue;
                    }
                    
                    if( szPlayerData[ 0 ] == '
;' )
                    {
                        eData[ Player_Suspended ] = true;
                        replace( eData[ Player_ID ], charsmax( eData[ Player_ID ] ), ";", "" );
                    }
                    
                    if( eData[ Player_Expire_Date ][ 0 ] )
                    {
                        if( HasAdminExpired( eData[ Player_Expire_Date ] ) )
                        {
                            eData[ Player_Expired ] = true;
                        }
                    }
                    
                    // we don'
t want to use models that don't exist
                    if( eData[ Player_Model_T ][ 0 ] )
                    {
                        if( ! ModelExists( eData[ Player_Model_T ] ) )
                        {
                            eData[ Player_Model_T ][ 0 ] = EOS;
                        }
                    }
                    
                    if( eData[ Player_Model_CT ][ 0 ] )
                    {
                        if( ! ModelExists( eData[ Player_Model_CT ] ) )
                        {
                            eData[ Player_Model_CT ][ 0 ] = EOS;
                        }
                    }
                    
                    new iImmunity = str_to_num( szImmunity );
                    eData[ Player_Immunity ] = ( ! is_str_num( szImmunity ) || iImmunity < 0 ) ? 0 : iImmunity;
                    
                    new iKeepPrivileges = str_to_num( szKeepPrivileges );
                    eData[ Player_KeepPrivileges ] = bool:( ( ! is_str_num( szKeepPrivileges ) || !( 0 <= iKeepPrivileges <= 1 ) ) ? 0 : iKeepPrivileges );
                    
                    ArrayPushArray( g_aDatabase, eData );
                    arrayset( eData, 0, sizeof( eData ) );
                }
            }
        }
        fclose( iFile );
    }

You didn't even re-name the variables..
i edited the message,and i copied only in file reading/writting in ReloadFile. I told u doni in steam if u didn't remember.

I copied only that in realodfile bcz i had something bugged in file writting/reading and that's all.

Why i should rename variables? if u look everywhere now 70% have similar variables or same variables.

Variables never be edited im continuing to finish this and gave it free to the people.

If u want credits, ill put it no problem

Last edited by riste.kgb; 11-09-2019 at 06:35.
riste.kgb is offline
edon1337
Penguin Enthusiast
Join Date: Jun 2016
Location: Macedonia
Old 11-09-2019 , 06:47   Re: ZP VIP System
Reply With Quote #8

Quote:
Originally Posted by riste.kgb View Post
i copied only in file reading/writting in ReloadFile.
You copied data storing, precaching and file reading. I just showed you literal proof 2 posts above. That's like 50% of the entire code. You also copied the multijump code from twistedeuphoria

Quote:
Originally Posted by riste.kgb View Post
Why i should rename variables? if u look everywhere now 70% have similar variables or same variables.
It was sarcasm, if you changed the variable names and the overall structural look, even I wouldn't notice whether you copied something from my own code. You didn't even make the effort to change them.

Quote:
Originally Posted by riste.kgb View Post
If u want credits, ill put it no problem
I didn't post all these to get credit, I did it to explain it to you that you have to credit people from whom you've taken codes from or who helped you. This is an open-source community, you can copy codes from 10 plugins and make your own, but what effort did you put into that, apart from copying and pasting.
__________________

Last edited by edon1337; 11-09-2019 at 06:47.
edon1337 is offline
riste.kgb
Junior Member
Join Date: Oct 2019
Location: Macedonia, Bogdanci
Old 11-09-2019 , 06:50   Re: ZP VIP System
Reply With Quote #9

Quote:
Originally Posted by edon1337 View Post
You copied data storing, precaching and file reading. I just showed you literal proof 2 posts above. That's like 50% of the entire code. You also copied the multijump code from twistedeuphoria



It was sarcasm, if you changed the variable names and the overall structural look, even I wouldn't notice whether you copied something from my own code. You didn't even make the effort to change them.



I didn't post all these to get credit, I did it to explain it to you that you have to credit people from whom you've taken codes from or who helped you. This is an open-source community, you can copy codes from 10 plugins and make your own, but what effort did you put into that, apart from copying and pasting.
you've got credits. Ill reedit and change how will this work.

I didnt have time to edit because i was got too many bugs to be fixed. now i think its fixed bug with precaching.

PS: Data storing i learned from dynamic array tutorial in alliedmods so, this doesn't mean i was copied from u.
If u think bcz i used same variables then maybe

Upcoming features:

Code:
- VIP zm/human will get extra ammo packs for infecting / killing zombie depending of cvar
- VIP zm/human will have extra health/armor depending of cvar
@edon1337 don't worry in v3 will be changed how file reading/writting will be works i don't want a problems for this anymore.

Last edited by riste.kgb; 11-09-2019 at 06:52.
riste.kgb is offline
ZaX
Senior Member
Join Date: Jan 2015
Old 11-11-2019 , 00:10   Re: ZP VIP System
Reply With Quote #10

I think this plugin should be posted here
https://forums.alliedmods.net/forumdisplay.php?f=126
ZaX is offline
Reply


Thread Tools
Display Modes

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 08:33.


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