xp,coins loss for humans (camper)

Unpaid Requests, Public Plugins
czirimbolo
Veteran Member
Veteran Member
Poland
Posts: 571
Joined: 4 Years Ago
Has thanked: 20 times
Been thanked: 2 times
Contact:

xp,coins loss for humans (camper)

#1

Post by czirimbolo » 1 Year Ago

Raheem, Jack,

can we finally make it happen?

I need plugin working like this:

When you are human and you didnt escape (you were killed by bombs) you lose X coins and X exp. We need to punish campers. To sum up:

When you escape as a human - you will receive exp and coins (it's done!)
When you were infected or killed - nothing happens
When you didn't escape as a human - you will lose X coins and X exp (TO DO!)
Image

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2189
Joined: 4 Years Ago
Has thanked: 49 times
Been thanked: 149 times
Age: 23
Contact:

#2

Post by Raheem » 1 Year Ago

Try:
    1. #include <zombie_escape>
    2.  
    3. #define COINS 50
    4. #define XP 50
    5.  
    6. public plugin_init()
    7. {
    8.     register_plugin("Campers Punishment", "1.0", "Raheem")
    9. }
    10.  
    11. public ze_roundend(WinTeam)
    12. {
    13.     if (WinTeam == ZE_TEAM_HUMAN)
    14.     {
    15.         for(new id = 1; id <= MAX_PLAYERS; id++)
    16.         {
    17.             if (!ze_is_user_zombie(id) && !is_user_alive(id))
    18.             {
    19.                 ze_set_escape_coins(id, ze_get_escape_coins(id) - COINS)
    20.                 ze_set_user_xp(id, ze_get_user_xp(id) - XP)
    21.             }
    22.         }  
    23.     }
    24. }
He who fails to plan is planning to fail

czirimbolo
Veteran Member
Veteran Member
Poland
Posts: 571
Joined: 4 Years Ago
Has thanked: 20 times
Been thanked: 2 times
Contact:

#3

Post by czirimbolo » 1 Year Ago

Raheem wrote:
1 Year Ago
Try:
    1. #include <zombie_escape>
    2.  
    3. #define COINS 50
    4. #define XP 50
    5.  
    6. public plugin_init()
    7. {
    8.     register_plugin("Campers Punishment", "1.0", "Raheem")
    9. }
    10.  
    11. public ze_roundend(WinTeam)
    12. {
    13.     if (WinTeam == ZE_TEAM_HUMAN)
    14.     {
    15.         for(new id = 1; id <= MAX_PLAYERS; id++)
    16.         {
    17.             if (!ze_is_user_zombie(id) && !is_user_alive(id))
    18.             {
    19.                 ze_set_escape_coins(id, ze_get_escape_coins(id) - COINS)
    20.                 ze_set_user_xp(id, ze_get_user_xp(id) - XP)
    21.             }
    22.         }  
    23.     }
    24. }
You forgot about ze_levels.inc

Anyway, its working but player killed by lava, toxic water, laser etc is losing coins too. I dont want it, can you change it? Even slayed player loses his coins and exp. I want to punish only players (humans) who were killed by bombs or whatever at the end of map (trigger_hurt). Is it possible?
Image

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2189
Joined: 4 Years Ago
Has thanked: 49 times
Been thanked: 149 times
Age: 23
Contact:

#4

Post by Raheem » 1 Year Ago

This general approach may be easier and more accurate, try it:
    1. #include <zombie_escape>
    2. #include <ze_levels>
    3.  
    4. #define COINS 50
    5. #define XP 50
    6. #define KILLED_FROM 5 // Time that anyone killed during will be punished
    7.  
    8. new g_iKilledTime[33]
    9.  
    10. public plugin_init()
    11. {
    12.     register_plugin("Campers Punishment", "1.0", "Raheem")
    13.    
    14.     RegisterHookChain(RG_CBasePlayer_Killed, "Fw_PlayerKilled_Post", 1)
    15. }
    16.  
    17. public ze_user_humanized(id)
    18. {
    19.     g_iKilledTime[id] = 0;
    20. }
    21.  
    22. public ze_roundend(WinTeam)
    23. {
    24.     if (WinTeam == ZE_TEAM_HUMAN)
    25.     {
    26.         for(new id = 1; id <= MAX_PLAYERS; id++)
    27.         {
    28.             if (!ze_is_user_zombie(id) && !is_user_alive(id))
    29.             {
    30.                 if ((floatround(get_gametime() - g_iKilledTime[id])) <= KILLED_FROM)
    31.                 {
    32.                     ze_set_escape_coins(id, ze_get_escape_coins(id) - COINS)
    33.                     ze_set_user_xp(id, ze_get_user_xp(id) - XP)
    34.                 }
    35.             }
    36.         }
    37.     }
    38. }
    39.  
    40. public Fw_PlayerKilled_Post(id)
    41. {
    42.     g_iKilledTime[id] = floatround(get_gametime())
    43. }
Last edited by Raheem on 14 Oct 2020, 06:44, edited 1 time in total.
Reason: Fixed the compilation error.
He who fails to plan is planning to fail

czirimbolo
Veteran Member
Veteran Member
Poland
Posts: 571
Joined: 4 Years Ago
Has thanked: 20 times
Been thanked: 2 times
Contact:

#5

Post by czirimbolo » 1 Year Ago

#define KILLED_FROM 5 // Time that anyone killed during will be punished

its 5 minutes or 5 seconds? and what does it mean? Its working for 5 minutes, and after that you are not losing exp and coins?
Image

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2189
Joined: 4 Years Ago
Has thanked: 49 times
Been thanked: 149 times
Age: 23
Contact:

#6

Post by Raheem » 1 Year Ago

Example1: Human died at 0 sec, then after 3 seconds all humans who did not escaped killed from final trigger_hurt, then humans killed with trigger_hurt + the human killed at 0 sec both will be punished.

Example2: Human died at 0 sec, then after 6 seconds all humans who did not escaped killed from final trigger_hurt, then humans killed with trigger_hurt only who will be punished.

As #define KILLED_FROM 5 lower then accuracy is more, make #define KILLED_FROM 2 for best accuracy.

Try this approach and let me know if it's working or not.
He who fails to plan is planning to fail

czirimbolo
Veteran Member
Veteran Member
Poland
Posts: 571
Joined: 4 Years Ago
Has thanked: 20 times
Been thanked: 2 times
Contact:

#7

Post by czirimbolo » 1 Year Ago

Raheem wrote:
1 Year Ago
Example1: Human died at 0 sec, then after 3 seconds all humans who did not escaped killed from final trigger_hurt, then humans killed with trigger_hurt + the human killed at 0 sec both will be punished.

Example2: Human died at 0 sec, then after 6 seconds all humans who did not escaped killed from final trigger_hurt, then humans killed with trigger_hurt only who will be punished.

As #define KILLED_FROM 5 lower then accuracy is more, make #define KILLED_FROM 2 for best accuracy.

Try this approach and let me know if it's working or not.
Documents\Compiler v1.8.3\scripting\camper_punishment.sma(42) : error 032: array index out of bounds (variable "g_iKilledTime")
//
// 1 Error.
// Could not locate output file compiled\camper_punishment.amx (compile failed).
Image

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2189
Joined: 4 Years Ago
Has thanked: 49 times
Been thanked: 149 times
Age: 23
Contact:

#8

Post by Raheem » 1 Year Ago

Post the full error and the code you are trying to compile.
He who fails to plan is planning to fail

czirimbolo
Veteran Member
Veteran Member
Poland
Posts: 571
Joined: 4 Years Ago
Has thanked: 20 times
Been thanked: 2 times
Contact:

#9

Post by czirimbolo » 1 Year Ago

Raheem wrote:
1 Year Ago
Post the full error and the code you are trying to compile.
//// camper_punishment.sma
//
// C:\Users\macie\Documents\Compiler v1.8.3\scripting\camper_punishment.sma(42) : error 032: array index out of bounds (variable "g_iKilledTime")
//
// 1 Error.
// Could not locate output file compiled\camper_punishment.amx (compile failed).
//
// Compilation Time: 0,94 sec
Image

czirimbolo
Veteran Member
Veteran Member
Poland
Posts: 571
Joined: 4 Years Ago
Has thanked: 20 times
Been thanked: 2 times
Contact:

#10

Post by czirimbolo » 1 Year Ago

That is all. I tried your code from post nr 4
Image

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests