EventScripts Forums
Mattie's EventScripts and Source Forums
Script Categories
16000 (15) abilities (15) addon (72) addons (18) admin (355) admins (24) advert (30) adverts (32) afk (18) alerts (12) ammo (25) anti (21) armor (11) auth (16) automatic (15) awp (29) ban (25) bank (11) ba_jail (35) bhop (46) block (27) bomb (48) bonus (25) boost (22) bot (36) bot-management (20) bots (24) bullet (13) bunnyhop (19) Buy (27) buymenu (13) c4 (12) cash (77) Change (14) chat (77) cheat (15) clan (17) classes (24) color (30) colors (21) command (23) commands (21) config (28) configurable (11) connect (58) counter (12) Counter-Strike-Source (20) CS:S (20) css (3404) custom (13) Damage (49) database (14) dead (19) Deagle (11) death (20) deathmatch (79) deathrun (17) deutsch (15) dice (12) disconnect (26) Dissolve (12) dm (24) dod:s (11) dods (502) download (13) easy (26) effect (14) effects (126) English (20) entity (24) est (12) es_tools (14) Eventscript (12) exploit (11) flashbang (27) français (104) french (36) fun (312) funny (18) Gabeee (11) game (12) gamemode (13) gameplay (175) German (11) give (22) gravity (16) grenade (28) grenades (32) gun (16) GunGame (31) GunGame5 (11) guns (20) Hack (16) headshot (37) health (72) hegrenade (15) help (11) hit (13) hl2dm (444) HP (26) hudhint (13) hun (18) hungarian (26) info (53) information (19) invisible (11) IP (13) jail (82) jailbreak (14) join (47) jump (19) kick (25) kill (51) kills (24) knife (66) leveling (38) LnD (14) lol (11) magyar (49) management (14) manager (11) mani (16) map (32) map-management (26) maps (17) match (25) Memphis-84 (13) menu (144) message (34) messaging (52) minecraft (12) mod (121) model (18) models (33) modye (16) money (50) motd (13) music (33) mute (20) nades (20) name (15) new (13) noblock (54) orangebox (23) player (49) player-management (31) player-tracking (28) popup (72) prop (13) propmenu (14) props (34) protect (12) protection (32) punish (11) punishment (51) python (80) quake (33) QuakeSounds (12) race (13) races (20) radio (31) random (47) rank (42) rates (15) rcon (12) realism (22) Regeln (23) respawn (69) restrict (41) round (26) rpg (32) rules (63) say (17) score (16) scout (29) Script (25) script-helper (25) scriptpack (33) sdk (171) server (63) server-tools (42) shop (12) showdamage (20) silly (31) simple (33) skin (17) skins (35) slay (13) soccer (14) sound (68) sounds (109) source (14) spanish (20) spawn (82) speed (26) statistics (14) stats (57) status (15) Steam (11) STEAMID (30) Superhero (15) surf (41) Team (30) team-balance (14) teleport (17) text (19) TF2 (142) time (23) timer (15) tools (15) tracers (19) triggers (11) uedi (17) uses_auth (18) vip (24) vote (40) voting (22) war (25) Warcraft (12) warcraft-source (20) wc3 (14) wcs (47) wcs:Python (32) weapon (88) weapons (120) web (16) welcome (14) wuerfeln (11) zm (26) zombie (100) zombiemod (55) zombies (12)
Script Authors
*XYZ*SaYnt (12) .:MiB:. (20) .:modye:. (14) .eMko* (6) 101satoon101 (12) 3R10N (24) 4u571n91 (5) 7355608 (9) Absolute (9) Ace Rimmer (40) adminc (5) adyshor37 (5) Adz (8) AgathaKnuppelkuh (8) aidden (8) ajax (5) ak_47 (6) Al3c Tr3v3lyan (6) allstareng (5) ashbash1987 (9) ATAMAH (7) Ayuto (5) aznone (5) B00M (5) BackRaw (41) BFH_RedBull (8) bigfabi (8) Bioko (10) blackshoxx (9) Blade (10) bladesback (13) bobdole (11) bodzsar1 (8) bonbon (36) Brainsucker (32) cagemonkey (8) capo azzlack (7) captain master (6) carbon-14 (10) CaskioUTF (5) cbirou (15) CbRRR (16) ChaCaLz2psy4 (5) CharlesT (5) Chris1888 (5) Chrisber (5) chrismrulz (10) Chun (6) cladiron (10) clipz934 (8) Colster (21) Cookieman8 (7) CrAzD (6) craziest (11) dani12356 (12) DanielB (19) Darkness123 (8) Dave (9) dbozan99 (7) dead man walker (12) deathx9 (5) Deathyy (16) dhack (17) Di[M]aN (12) DJ Fire-Black prod (8) DoCky (31) Don (15) dordtcore (9) DragonFreddo (8) Drassil (5) dretax14 (11) Einlanzers (47) EmbouT (10) emilplov (7) Errant (10) Eun (6) Fantole (10) FMIS (5) Franc1sco (17) freddukes (18) Frequency (6) Fridge (5) Fugi91 (6) Fulmine (5) G4ME (5) GAMEREN2 (8) german9114 (13) GODJonez (40) GoodfellaDeal (5) Hansi (6) Hisoka (6) HitThePipe (7) HOLLDIDAY (24) Icetouch (6) ichthys (25) Im the new guy (14) iNexus (13) infamous1 (9) isivisi (13) ispaine (7) Jackmaster (9) Jeff91 (45) JoeyT2006 (30) Juba_PornBorn (12) jxl180 (11) KDBFame (6) L'In20Cible (11) L.P.H (8) Largo Usagi (10) LnD (14) Lobe (11) loKkdoKk (8) lolo-le-haricot (7) LosNir (5) [email protected] (9) M4rc3L-XCN (7) macshot (7) magyar-oneill (9) Matth (7) Mattie (21) mave1993 (5) MBchrono (15) McFly (20) Medda (5) Memphis-84 (15) Messiah93 (20) Mickyy (5) micmacx (6) minimal42O (5) Mitchell (5) Mixer57 (5) modye (6) Monster_Bitch1 (9) Mordavolt (7) motomoto (23) MrScriptaz (6) mryoung (6) MyTechZone.de (9) NicolasConfigz (9) Nicolous (23) ojii (31) oliVier (10) Omega68 (6) Omega_K2 (11) Owned|Myself (8) P3N (7) pand3mic (6) parsimba (5) Pascal257 (9) PatPeter (7) PDrop (10) Phaedrus (18) PhantOm Fury (7) phoenix131 (9) pinkyyy -.- (5) pitbull0993 (7) PixelGamer (7) qwern (5) randomknifer (9) Raptor150 (31) Ratzee (6) ReaCtioN2oo9 (6) RedCliff (5) Rennnyyy (17) revolutionfighters (8) RideGuy (12) Rio (9) Roeliekt (6) roof (16) runamagic (13) Ryezin (5) sandking220 (6) Sarcasm_Poisoning (10) saRs| Johnny-5 (13) Schubaal (10) sea212 (5) sega74rus (15) sgt.angel (6) Shad0w (11) ShoTaXx# (7) sicilia (7) sicman_adrian (22) skillz92 (7) sn4k3 (18) Snake12 (7) snake38 (10) sonicsight (7) SpeedFreak (9) spoonman184 (12) stabby (22) stas (27) Stirni (6) stonedegg (8) Strontium Dog (30) SumGuy14 (25) SuperDave (49) surfteam (5) TaCo (5) TanaToS (17) Tealk (6) teowow (16) TheCheeTaH (27) TheDonFather (5) theresthatguy (6) Tiny Tod (7) tooshkan4uk (8) Totyahun (9) uedi (38) ultimatebuster (6) Undead (25) usernamesaretaken (15) wanted241 (9) Warren (13) westham (6) WhiteAvenger (7) Wonder (14) Wundermaxe (5) X-Mania (5) XE_ManUp (14) xfalcon61 (5) zSweetXz (5) ZZMatty (6) [Cs]Lord_Inferno2 (11) [DAP]Kickbutt (5) [NATO]Hunter (28) ||Wolf|| (10)
Search

Post new topic Reply to topic
Author Message
User avatar
Expert
Profile

Posts: 969
Location:
Germany - Heidelberg

Steam Friends Name: millius
 
New postPosted: 2013-12-26, 6:51 pm 
   Post subject: Dropped Health

Dropped Health 1.0
Geschrieben von: dead man walker am 2013-12-26 18:29:59.

Benötigt:Beschreibung:
    Dropped Health drops a healthkit whenever a player dies at the death location. By touching it the healthkit disappears and gives this player a specified amount of health.

    The configuration can easily be done through an external .cfg file located in the cfg folder.
    Code:
    // *****************************************************************
    // *** Dropped Health Config
    // *****************************************************************


    // Path of the model to be spawned
       pickup_model_path "models/healthvial.mdl"

    // Path of the sound to be played when the model gets picked up
       pickup_sound "items/medshot4.wav"

    // Volume of the sound. 0-1
       pickup_sound_volume 0.7

    // Amount of health to gain
       pickup_health 100

    // Limit of players health. Set to 0 for no limit
       pickup_health_limit 1000

    // Dropp health if player committed suicide. 1=yes, 0=no
       pickup_on_suicide 1

    // Dropp health if death was caused by a teamkill. 1=yes, 0=no
       pickup_on_teamkill 1

    // Linux "StartTouch" offset. May need to be changed on updates (See/ ask forums)
       pickup_linux_offset 99

    Note that this addon does not come with any models, materials or sounds, as the chosen ones are already in the clients vpk packs. You are welcome to use different ones, but make sure to actually have every file needed on the server, and to make them downloadable (Ie. by using my Auto Downloader)
Download: http://addons.eventscripts.com/addons/download/dropped_health
Installation:
    -Extract the unzipped folders into your cstrike folder.
    -Add es_load dropped_health to your autoexec.cfg
    -Restart your server or type in (rcon) es_load dropped_health into your console
Versionshinweiße:
  • 1.0 -
  • 1.1
    -Bug fix (Typo caused error)
  • 1.2
    -Requires now SPE (Source Python Extensions)
    -Improved the way of detecting if a player touches the health model -> No ticklistener anymore
    -Bug fix (pickup_on_suicide 0 still dropped health on suicide)
    -No removal of psyco necessary anymore (yet still recommend)
    -> No visible changes (in-game), but improvement of performence


Last edited by Dead Man Walker on 2013-12-30, 6:44 pm, edited 5 times in total.




User avatar
Expert
Profile

Posts: 1089
 
New postPosted: 2013-12-27, 12:20 pm 
   Post subject: Re: Dropped Health

Did you test this? ^^

PYTHON:
       if (PICKUP_ON_SUICIDE and PICKUP_ON_TEAMKILL) or (attacker not in (0, userid) and uesrid_team != attacker_team):
          createProp(userid)
       elif attacker in (0, userid) and PICKUP_ON_SUICIDE:
          createProp(userid)
       elif uesrid_team == attacker_team and PICKUP_ON_TEAMKILL:
          createProp(userid)


This will never create any prop. ;)

Also I don't really get the point of creating a set and that even for each alive player.
Why do you add every entity index to the set to_delete, and later then you loop through it to remove it from prop_list?
Why not just removing it directly from prop_list?

Is there any difference in the result from this and your code?:
PYTHON:
    def tickListener():
       if prop_list:
          for userid in playerlib.getUseridList('#alive'):
             location = es.getplayerlocation(userid)
             for index in prop_list:
                if int(vecmath.distance(es.entitygetvalue(index, 'origin'), (location[0], location[1], location[2]+20))) <= 25 or int(vecmath.distance(es.entitygetvalue(index, 'origin'), (location[0], location[1], location[2]+50))) <= 25:
                   player = playerlib.getPlayer(userid)
                   if player.health == PICKUP_HEALTH_LIMIT:
                      continue
                   elif player.health + PICKUP_HEALTH <= PICKUP_HEALTH_LIMIT:
                      player.health += PICKUP_HEALTH
                   else:
                      player.health = PICKUP_HEALTH_LIMIT
                   es.playsound(userid, PICKUP_SOUND, PICKUP_SOUND_VOLUME)
                   prop_list.discard(index)
                   es.remove(index)


Furthermore you should link everyone to this post, because es.remove() and es.spawnentity() crashes the server, tho it's only important for linux servers. Or maybe put this directly into your code.

_________________
My Community | My Servers | My Steam

Image


User avatar
Expert
Profile

Posts: 969
Location:
Germany - Heidelberg

Steam Friends Name: millius
 
New postPosted: 2013-12-27, 2:02 pm 
   Post subject: Re: Dropped Health

Hey,
First, I appreciate your feedback.

stonedegg wrote:
Did you test this? ^^

I would never publish any code without testing it unless I explicitly state that it is untested. I will admit that I did two little changes without testings since it was only about variable names. And of course in these two untested changes I had to make a typo:
Quote:
if (PICKUP_ON_SUICIDE and PICKUP_ON_TEAMKILL) or (attacker not in (0, userid) and uesrid_team != attacker_team):

and
Quote:
elif uesrid_team == attacker_team and PICKUP_ON_TEAMKILL:

I apologize for that. If that is what you meant by
stonedegg wrote:
This will never create any prop.

you're still wrong. Using the default settings the prop would've been created even with the typo. But that is not an excuse of course.

stonedegg wrote:
Also I don't really get the point of creating a set and that even for each alive player.
Why do you add every entity index to the set to_delete, and later then you loop through it to remove it from prop_list?
Why not just removing it directly from prop_list?

Is there any difference in the result from this and your code?:

The answere is: yes
since prop_list is a set, your code would produce a RuntimeError: Set changed size during iteration

stonedegg wrote:
Furthermore you should link everyone to this post, because es.remove() and es.spawnentity() crashes the server, tho it's only important for linux servers.

True, I will go ahead and add this to the requirements
stonedegg wrote:
Or maybe put this directly into your code.

I'm not a fan of putting something in my code that changes stuff that is not closely related to my addon. Meaning that the user might still need/ want psyco for some other mods.

_________________
Try some of my addons
- Dead Man Walker -


User avatar
Guru
Guru
Profile

Posts: 1444
Location:
Germany
 
New postPosted: 2013-12-29, 6:11 am 
   Post subject: Re: Dropped Health

You might wanna make the engine keep track of when a medikit is touched by hooking StartTouch with SPE for example. (doing multiple square roots for each player every tick is not the best idea)

_________________
My public Addons:
Private Addons: (write me a PM, or add me in Steam)
  • Surf Timer
  • Bhop Timer


User avatar
Expert
Profile

Posts: 969
Location:
Germany - Heidelberg

Steam Friends Name: millius
 
New postPosted: 2013-12-29, 10:57 am 
   Post subject: Re: Dropped Health

Absolute wrote:
You might wanna make the engine keep track of when a medikit is touched by hooking StartTouch with SPE for example. (doing multiple square roots for each player every tick is not the best idea)

Yeah, I'm always trying to avoid a tickListener, but I'm not very good when it comes to spe and hooking^^ I'll try my best though

_________________
Try some of my addons
- Dead Man Walker -


User avatar
New User
Profile

Posts: 2
 
New postPosted: 2013-12-30, 2:07 pm 

Works fine with HL2DM server!

Thanks! :)


User avatar
Guru
Guru
Profile

Posts: 1743
Location:
Germany
 
New postPosted: 2013-12-30, 2:33 pm 
   Post subject: Re: Dropped Health

Dead Man Walker wrote:
Absolute wrote:
You might wanna make the engine keep track of when a medikit is touched by hooking StartTouch with SPE for example. (doing multiple square roots for each player every tick is not the best idea)

Yeah, I'm always trying to avoid a tickListener, but I'm not very good when it comes to spe and hooking^^ I'll try my best though

This might help you a little bit. :)
viewtopic.php?f=125&t=45682

_________________
ImageImage


User avatar
Expert
Profile

Posts: 969
Location:
Germany - Heidelberg

Steam Friends Name: millius
 
New postPosted: 2013-12-30, 6:46 pm 
   Post subject: Re: Dropped Health

Thank you all very much for the suggestions.

Version Update 1.2:
-Requires now SPE (Source Python Extensions)
-Improved the way of detecting if a player touches the health model -> No ticklistener anymore
-Bug fix (pickup_on_suicide 0 still dropped health on suicide)
-No removal of psyco necessary anymore (yet still recommend)
-> No visible changes (in-game), but improvement of performence

_________________
Try some of my addons
- Dead Man Walker -


User avatar
Newbie
Profile

Posts: 46
Location:
Canada

Steam Friends Name: RO
 
New postPosted: 2014-02-27, 9:27 pm 

Hi . Can add and time . I want to disappear after 3 seconds or something like theat.
THX

_________________
ImageImage


User avatar
Moderator
Moderator
Profile

Posts: 6615
 
New postPosted: 2014-02-27, 10:04 pm 
   Post subject: Re: Dropped Health

Dead Man Walker wrote:
stonedegg wrote:
Also I don't really get the point of creating a set and that even for each alive player.
Why do you add every entity index to the set to_delete, and later then you loop through it to remove it from prop_list?
Why not just removing it directly from prop_list?

Is there any difference in the result from this and your code?:

The answere is: yes
since prop_list is a set, your code would produce a RuntimeError: Set changed size during iteration
I just noticed this reply of yours and had to comment. Obviously you are not able to remove an item from a set while looping through it. However, you can also use something like the following to avoid that:
PYTHON:
        for prop in list(prop_list):
            prop_list.remove(prop)

        for prop in set(prop_list):
            prop_list.remove(prop)
Casting the object to another instance (whether of a list, set, tuple, or any other iterable type) will allow you to not iterate over the object directly, thus allowing you to remove items at your leisure.

Satoon

_________________
ImageImage


Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 10 posts ] 


Who is online

Users browsing this forum: No registered users and 7 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group