xp,coins loss for humans (camper)

Unpaid Requests, Public Plugins
Post Reply
czirimbolo
Veteran Member
Veteran Member
Poland
Posts: 598
Joined: 7 years ago
Contact:

xp,coins loss for humans (camper)

#1

Post by czirimbolo » 4 years 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: 2214
Joined: 7 years ago
Contact:

#2

Post by Raheem » 4 years 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: 598
Joined: 7 years ago
Contact:

#3

Post by czirimbolo » 4 years ago

Raheem wrote: 4 years 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: 2214
Joined: 7 years ago
Contact:

#4

Post by Raheem » 4 years 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 3 years ago, 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: 598
Joined: 7 years ago
Contact:

#5

Post by czirimbolo » 4 years 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: 2214
Joined: 7 years ago
Contact:

#6

Post by Raheem » 4 years 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: 598
Joined: 7 years ago
Contact:

#7

Post by czirimbolo » 4 years ago

Raheem wrote: 4 years 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: 2214
Joined: 7 years ago
Contact:

#8

Post by Raheem » 4 years 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: 598
Joined: 7 years ago
Contact:

#9

Post by czirimbolo » 4 years ago

Raheem wrote: 4 years 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: 598
Joined: 7 years ago
Contact:

#10

Post by czirimbolo » 4 years ago

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

Templaso
Senior Member
Senior Member
Romania
Posts: 119
Joined: 5 years ago
Location: Bucharest
Contact:

#11

Post by Templaso » 4 years ago

  1. #include <zombie_escape>
  2.  
  3. #define COINS 50
  4. #define XP 50
  5. #define KILLED_FROM 5 // Time that anyone killed during will be punished
  6.  
  7. new g_iKilledTime[33]
  8.  
  9. public plugin_init()
  10. {
  11.     register_plugin("Campers Punishment", "1.0", "Raheem")
  12.    
  13.     RegisterHookChain(RG_CBasePlayer_Killed, "Fw_PlayerKilled_Post", 1)
  14. }
  15.  
  16. public ze_user_humanized(id)
  17. {
  18.     g_iKilledTime[id] = 0;
  19. }
  20.  
  21. public ze_roundend(WinTeam)
  22. {
  23.     if (WinTeam == ZE_TEAM_HUMAN)
  24.     {
  25.         for(new id = 1; id <= MAX_PLAYERS; id++)
  26.         {
  27.             if (!ze_is_user_zombie(id) && !is_user_alive(id))
  28.             {
  29.                 if ((floatround(get_gametime() - g_iKilledTime[id])) <= KILLED_FROM)
  30.                 {
  31.                     ze_set_escape_coins(id, ze_get_escape_coins(id) - COINS)
  32.                     ze_set_user_xp(id, ze_get_user_xp(id) - XP)
  33.                 }
  34.             }
  35.         }
  36.     }
  37. }
  38.  
  39. public Fw_PlayerKilled_Post(id)
  40. {
  41.     g_iKilledTime[id] = floatround(get_gametime())
  42. }

Try this

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#12

Post by Raheem » 3 years ago

He who fails to plan is planning to fail

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 5 guests