Version 1.7

Community News/Announcements
User avatar
Z0uha1r_LK
Moderator
Moderator
Morocco
Posts: 374
Joined: 3 Years Ago
Location: Morocco
Has thanked: 103 times
Been thanked: 41 times
Age: 20
Contact:

Re: Version 1.7

#11

Post by Z0uha1r_LK » 6 Months Ago

karan wrote:
6 Months Ago
Night Fury wrote:
11 Months Ago
Hello there, as you know, we regularly make new version of the mod in order to make it as stable as possible including new features & improvements for any problems that exist.
So in this topic, post whatever new ideas or suggestions to be added or any bugs that currently exist to be fixed in the next version, if you have any. It may happen that there are some ideas that didn't make but we are doing our best to provide as many good ideas as possible.
Please make sure to write as clear as possible so it is easier for us to understand what you mean.
Waiting your awesome ideas :boom: :boom: :boom:.
try doing one more thing if possible dk what happens but from v1 of this mod when humanized event pops up it consumes cpu power for few sec(depending on how much players u have). if this could get fixed in v1.7 that can increase mod stability for all servers...
We need optimize codes and switch more natives FakeMeta & Ham Sandwich to ReAPI.
Last edited by Z0uha1r_LK on 17 Nov 2021, 18:24, edited 1 time in total.

User avatar
Z0uha1r_LK
Moderator
Moderator
Morocco
Posts: 374
Joined: 3 Years Ago
Location: Morocco
Has thanked: 103 times
Been thanked: 41 times
Age: 20
Contact:

#12

Post by Z0uha1r_LK » 6 Months Ago

ze_core is use more CPU usage!

User avatar
Z0uha1r_LK
Moderator
Moderator
Morocco
Posts: 374
Joined: 3 Years Ago
Location: Morocco
Has thanked: 103 times
Been thanked: 41 times
Age: 20
Contact:

#13

Post by Z0uha1r_LK » 6 Months Ago

We need fix this error in v1.7:
Reason: When use last version of the ReAPI:
Solution: viewtopic.php?f=22&p=12179#p12179
or
change set_member and get_member ----> set_member_s and get_member_s

  1. L 11/15/2021 - 12:13:08: [ReAPI] get_member_s: 'm_iTeam' has no refs to the base class of an entity 'worldspawn'
  2. L 11/15/2021 - 12:13:08: [AMXX] Run time error 10 (plugin "ze_coins_system.amxx") (native "get_member_s") - debug not enabled!

User avatar
Z0uha1r_LK
Moderator
Moderator
Morocco
Posts: 374
Joined: 3 Years Ago
Location: Morocco
Has thanked: 103 times
Been thanked: 41 times
Age: 20
Contact:

#14

Post by Z0uha1r_LK » 6 Months Ago

Plugin: ze_core.amxx
  1. public Fw_TraceAttack_Pre(iVictim, iAttacker, Float:flDamage, Float:flDirection[3], iTracehandle, bitsDamageType)
  2. {
  3.     if (iVictim == iAttacker || !is_user_connected(iVictim) || !is_user_connected(iAttacker))
  4.         return HC_CONTINUE
  5.    
  6.     // Attacker and Victim is in same teams? Skip code blew
  7.     if (get_member(iAttacker, m_iTeam) == get_member(iVictim, m_iTeam))
  8.         return HC_CONTINUE
  9.  
  10.     // ...
Now, It's better:
  1. public Fw_TraceAttack_Pre(iVictim, iAttacker, Float:flDamage, Float:flDirection[3], iTracehandle, bitsDamageType)
  2. {
  3.     // Invalid player or Attacker is himself.
  4.     if (iVictim == iAttacker || !is_user_connected(iVictim) || !is_user_connected(iAttacker))
  5.         return HC_CONTINUE;
  6.    
  7.     // Attacker and Victim is in same teams? Skip code blew
  8.     if (g_bIsZombie[iVictim] || !g_bIsZombie[iAttacker])
  9.         return HC_CONTINUE;
  10.  
  11.     // ...
  12. }

User avatar
Z0uha1r_LK
Moderator
Moderator
Morocco
Posts: 374
Joined: 3 Years Ago
Location: Morocco
Has thanked: 103 times
Been thanked: 41 times
Age: 20
Contact:

#15

Post by Z0uha1r_LK » 6 Months Ago

I tried optimize this and check from all codes, I haven't tried it:
zombie_escape_stocks.inc
New version 0.1b
(16.18 KiB) Downloaded 24 times
zombie_escape_stocks.inc
New version 0.1b
(16.18 KiB) Downloaded 24 times
Updated: 28/03/2022

User avatar
Z0uha1r_LK
Moderator
Moderator
Morocco
Posts: 374
Joined: 3 Years Ago
Location: Morocco
Has thanked: 103 times
Been thanked: 41 times
Age: 20
Contact:

#16

Post by Z0uha1r_LK » 6 Months Ago

I optimize code using ReAPI :100:
ze_block_events_messages.sma
.SMA
(4.03 KiB) Downloaded 82 times
ze_block_events_messages.sma
.SMA
(4.03 KiB) Downloaded 82 times
Required: Last version of ReAPI

User avatar
Z0uha1r_LK
Moderator
Moderator
Morocco
Posts: 374
Joined: 3 Years Ago
Location: Morocco
Has thanked: 103 times
Been thanked: 41 times
Age: 20
Contact:

#17

Post by Z0uha1r_LK » 3 Months Ago

Add this feature in resource.amxx, to set player model using ze_set_user_model
  1. #include <zombie_escape>
  2.  
  3. // Defintions.
  4. #define MAX_MODEL_LENGTH 64
  5.  
  6. // Variables.
  7. new bool:g_bHumanCustomModel[MAX_CLIENTS+1]
  8. new bool:g_bZombieCustomModel[MAX_CLIENTS+1]
  9. new g_szHumanCustomModel[MAX_CLIENTS+1][MAX_MODEL_LENGTH]
  10. new g_szZombieCustomModel[MAX_CLIENTS+1][MAX_MODEL_LENGTH]
  11.  
  12. // Forward called after server activation.
  13. public plugin_init() {
  14.     // Load plugin.
  15.     register_plugin("[ZE] Resource", "0.1", "Escapers-Zone.NET")
  16. }
  17.  
  18. // Forward allows registering natives.
  19. public plugin_natives() {
  20.     register_native("ze_set_user_model", "_native_set_user_model", 0)
  21.     register_native("ze_reset_user_model", "_native_reset_user_model", 0)
  22. }
  23.  
  24. // Forward called when set player Human (when cure).
  25. public ze_user_humanized(id) {
  26.     // Human Custom Model is enabled?
  27.     if (g_bHumanCustomModel[id])  {
  28.         // Set player new Human Model.
  29.         rg_set_user_model(id, g_szHumanCustomModel[id])
  30.     }
  31. }
  32.  
  33. // Forward called after infect Human.
  34. public ze_user_infected(iVictim, iAttacker)
  35. {
  36.     // Zombie Custom Model is enabled?
  37.     if (g_bZombieCustomModel[id]) {
  38.         // Set player new Zombie Model.
  39.         rg_set_user_model(id, g_szZombieCustomModel[id])       
  40.     }
  41. }
  42.  
  43. public _native_set_user_model(id, szModel[], iTeam) {
  44.     // Player not found?
  45.     if (!is_user_connected(id)) {
  46.         log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player (%d)", id)
  47.         return 0; // Return false.
  48.     }
  49.  
  50.     // Set player Human/Zombie Model.
  51.     switch (iTeam) {
  52.         case ZE_TEAM_HUMAN: {
  53.             g_bHumanCustomModel[id] = true
  54.             copy(g_szHumanCustomModel[id], charsmax(g_szHumanCustomModel[]), szModel)
  55.         } case ZE_TEAM_ZOMBIE: {
  56.             g_bZombieCustomModel[id] = true
  57.             copy(g_szZombieCustomModel[id], charsmax(g_szZombieCustomModel[]), szModel)
  58.         } default: {
  59.             log_error(AMX_ERR_NATIVE, "[ZE] Invalid Team (%d)", iTeam)
  60.             return 0; // Return false.
  61.         }
  62.     }
  63.  
  64.     // Return true.
  65.     return 1;
  66. }
  67.  
  68. public _native_reset_user_model(id, iTeam) {
  69.     // Player not found?
  70.     if (!is_user_connected(id)) {
  71.         log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player (%d)", id)
  72.         return 0; // Return false.
  73.     }
  74.  
  75.     // Set player Human/Zombie Model.
  76.     switch (iTeam) {
  77.         case ZE_TEAM_HUMAN: {
  78.             g_bHumanCustomModel[id] = false
  79.             g_szHumanCustomModel[id] = '^0'
  80.         } case ZE_TEAM_ZOMBIE: {
  81.             g_bZombieCustomModel[id] = false
  82.             g_szZombieCustomModel[id] = '^0'
  83.         } default: {
  84.             log_error(AMX_ERR_NATIVE, "[ZE] Invalid Team (%d)", iTeam)
  85.             return 0; // Return false.
  86.         }
  87.     }
  88.  
  89.     // Return true.
  90.     return 1;
  91. }
Last edited by Z0uha1r_LK on 12 Feb 2022, 23:48, edited 1 time in total.

User avatar
Z0uha1r_LK
Moderator
Moderator
Morocco
Posts: 374
Joined: 3 Years Ago
Location: Morocco
Has thanked: 103 times
Been thanked: 41 times
Age: 20
Contact:

#18

Post by Z0uha1r_LK » 1 Month Ago

Add new native ze_infection_status(bool:bStatus) to enable or disabled infection.

Do this in ze_core
  1. #include <zombie_escape>
  2.  
  3. // Variables.
  4. new bool:g_bStatusInfection
  5.  
  6. // Hook Chains Variable.
  7. new HookChain:g_hcTraceAttack
  8.  
  9. // Forward allows registering natives.
  10. public plugin_natives() {
  11.     register_native("ze_infection_status", "_native_infection_status", 1)
  12. }
  13.  
  14. // Forward called after server activation.
  15. public plugin_init() {
  16.     // ...
  17.  
  18.     // Hook Chains.
  19.     g_hcTraceAttack = RegisterHookChain(RG_CBasePlayer_TraceAttack, "Fw_TraceAttack_Pre", 0)
  20.  
  21.     // Static Values.
  22.     g_bStatusInfection = true
  23. }
  24.  
  25. public _native_infection_status(bool:bStatus) {
  26.     if (!bStatus) {
  27.         g_bStatusInfection = false
  28.         DisableHookChain(g_hcTraceAttack)
  29.     } else {
  30.         g_bStatusInfection = true
  31.         EnableHookChain(g_hcTraceAttack)
  32.     }
  33. }

User avatar
Z0uha1r_LK
Moderator
Moderator
Morocco
Posts: 374
Joined: 3 Years Ago
Location: Morocco
Has thanked: 103 times
Been thanked: 41 times
Age: 20
Contact:

#19

Post by Z0uha1r_LK » 1 Month Ago

I see this is better method to chosen player in previous round.

Change this:
  1. // Dynamic Arrays
  2. new Array:g_aChosenPlayers
By this:
  1. // Trie Variables.
  2. new Trie:g_tChosenPlayers
No need to check, If smart random is Enabled, can Owner enable it in any time, and change dyanmic array to Triepublic
  1. public DelaySmartRandom() {
  2.     // Create our Trie to store SteamIDs in
  3.     g_tChosenPlayers = TrieCreate()
  4. }
This better:
  1. Choose_Zombies() {
  2.     new szAuthID[35], iAliveCount, iReqZombies, iZombies, id
  3.    
  4.     // Get total alive players and required players
  5.     iAliveCount  = GetAllAlivePlayersNum()
  6.     iReqZombies = RequiredZombies()
  7.    
  8.     // Get integer value from cvar.
  9.     new iSmartRandom = get_pcvar_num(g_pCvarSmartRandom)
  10.  
  11.     // Get float value (first zombie health) from cvar
  12.     new Float:flFirstZombieHealth = get_pcvar_float(g_pCvarFirstZombiesHealth)
  13.  
  14.     // Loop till we find requires players
  15.     while (iZombies < iReqZombies) {
  16.         // Get random player index.
  17.         id = GetRandomAlive(random_num(1, iAliveCount))
  18.        
  19.         // Get auth (SteamID) of player.
  20.         get_user_authid(id, szAuthID, charsmax(szAuthID))
  21.  
  22.         // Player is died or is already Zombie?
  23.         if (!is_user_alive(id) || g_bIsZombie[id])
  24.             continue;
  25.        
  26.         // Check if CVAR enabled and if player in the Trie, it means he chosen previous round so skip him this round
  27.         if (iSmartRandom && TrieKeyExists(g_tChosenPlayers, szAuthID))
  28.             continue;
  29.  
  30.         // Infect player.
  31.         Set_User_Zombie(id)
  32.  
  33.         // Set zombie health.
  34.         set_entvar(id, var_health, flFirstZombieHealth)
  35.  
  36.         // Set zombie frozen flag.
  37.         g_bIsZombieFrozen[id] = true
  38.         set_entvar(id, var_maxspeed, 1.0)
  39.  
  40.         // New Zombie
  41.         iZombies++
  42.     }
  43.    
  44.     if (iZombies > 0) {
  45.         g_bZombieFreezeTime = true
  46.         set_task(0.1, "Zombies_Speed", ZOMBIES_SPEED, _, _, "b") // Better than PreThink
  47.         ExecuteForward(g_iForwards[FORWARD_ZOMBIE_APPEAR], g_iFwReturn)
  48.     }
  49.  
  50.     // Check from Smart Random is enable?
  51.     if (iSmartRandom) {
  52.         // Clear the Trie first
  53.         TrieClear(g_tChosenPlayers)
  54.        
  55.         new szAuthID[35], id
  56.        
  57.         // Add steamid of chosen zombies, so we don't choose them next round again (using steamid means it support reconnect)
  58.         for (id = 1; id <= g_iMaxClients; id++) {
  59.             // Player not found or is a Zombie?
  60.             if(!is_user_connected(id) || !g_bIsZombie[id])
  61.                 continue
  62.            
  63.             // Get authid (SteamID) of player.
  64.             get_user_authid(id, szAuthID, charsmax(szAuthID))
  65.            
  66.             // Stors SteamIDs of chosen players in Trie.
  67.             TrieSetCell(g_tChosenPlayers, szAuthID, 0)
  68.         }
  69.     }
  70.    
  71.     // 2 is Hardcoded Value, It's Fix for the countdown to work correctly
  72.     g_iCountDown = get_pcvar_num(g_pCvarZombieReleaseTime) - 2
  73.    
  74.     // Show release time.
  75.     set_task(1.0, "ReleaseZombie_CountDown", TASK_COUNTDOWN2, _, _, "b")
  76. }

User avatar
Z0uha1r_LK
Moderator
Moderator
Morocco
Posts: 374
Joined: 3 Years Ago
Location: Morocco
Has thanked: 103 times
Been thanked: 41 times
Age: 20
Contact:

#20

Post by Z0uha1r_LK » 1 Month Ago

in cs_weap_models_api
change this:
  1. // cstrike
  2. cs_get_weapon_id(entity_id)
to this:
  1. #define EXTRAOFFSET_WEAPONS 4
  2. #define OFFSET_WEAPONTYPE 43
  3.  
  4. // fakemeta.
  5. get_pdata_int(entity_id, OFFSET_WEAPONTYPE, EXTRAOFFSET_WEAPONS)

Post Reply

Create an account or sign in to join the discussion

You need to be a member in order to post a reply

Create an account

Not a member? register to join our community
Members can start their own topics & subscribe to topics
It’s free and only takes a minute

Register

Sign in

Who is online

Users browsing this forum: No registered users and 2 guests