Sie sind nicht angemeldet.

1

Mittwoch, 25. Februar 2009, 00:12

Teamflash HP abzug!

Hallo,

da Ihr mir schon sehr gut geholfen habt in diesem Forum!

Habe ich eine Frage und zwar gibt es ein evetscript das anzeigt von wem man geflasht wurde,wie lange und das es bei Teamflashes die entsprenden HP abzieht.

Stelle mir das so vor! You are Flashed by ........ for 3.sec und der jenige bekommt dann 3 Hp abgezogen!

Ist das Möglich das hin zu bekommen oder gibt es so etwas schon?

Mit dank und freundlichem Gruß

2

Mittwoch, 25. Februar 2009, 08:13

Re: Teamflash HP abzug!

es gibt das ES-Script TFlash.

Dieses zeigt an wer wen und wie lange geflasht hat, ausserdem kannst du damit für bestimmte Aktionen in den Stats Punkte verteilen oder abziehen.

3

Mittwoch, 25. Februar 2009, 10:05

Re: Teamflash HP abzug!

Ja das kenne ich glaube ich.

Wollte aber gerne das den Leuten dann die entsprechenden HP´s abgezogen werden damit nicht andauern unkontrolliert Flash durch die gegend fliegen!

Gruß

4

Freitag, 27. Februar 2009, 10:25

Re: Teamflash HP abzug!

Hallo,

Chrisber,bekommst du so etwas wohl hin, das umzuschreiben? Habe schon überall gesucht, aber leider nichts gefunden.

Wäre Dir für deine Hilfe sehr dankbar!

Kannst dich ja mal per PM melden oder so.

Danke
Bounty

Chrisber

Administrator

Beiträge: 1 030

Wohnort: localhost

Rootserver vorhanden: Ja

  • Nachricht senden

5

Freitag, 27. Februar 2009, 13:31

Re: Teamflash HP abzug!

Hi.
Du installierst ganz normal folgendes Script: http://addons.eventscripts.com/addons/view/tflash">http://addons.eventscripts.com/addons/view/tflash</a>
Danach änderst du den Inhalt der addons/eventscripts/tflash/tflash.py auf diesen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
import es,gamethread,playerlib,timeit, math

info = es.AddonInfo()
info.name		= "TFlash"
info.version	 = "1.53P"
info.author	  = "*XYZ*SaYnt"
info.url		 = "http://addons.eventscripts.com/addons/view/tflash"
info.basename	= "tflash"
info.description = "Detects team flashes and reports all flash stats for logging; also simple round-end flash stats."

#===============================================================================
# User configurable parameters
#duration of a flash under which a player is not considered blind.
#in seconds.
tf_cfg_durationlimit = 0.75

# flag to show end of round overall team flash stats.  Set to zero to disable.
tf_cfg_end_of_round_stats = 1

# flag to disable flash logging for hlstatsx/psychostats.  Set to zero to disable.
tf_cfg_log = 1
#===============================================================================









# global variables
flashed_for = {}
log_events = []
flash_stats = {}
flash_stats['2'] = {}
flash_stats['3'] = {}

	 
	  
def load():
	#es.msg("TFlash %s by *XYZ*SaYnt loaded." % info.version)
	es.set("tflash_version",info.version)
	es.makepublic("tflash_version")
	
	
def round_start(ev):
	reset_flash_stats() 
	

#This is our custom version of statlog until the python version comes out.
def statlog(userid,event):
	es.server.queuecmd("statlog " + str(userid) + " " + event)
  
##############################################################################
#ASSUMPTION.....FLASHBANG DETONATE HAPPENS VERY QUICKLY AFTER PLAYER BLIND.
##############################################################################

def player_blind(ev):
   global log_events
   global flashed_for
   global tf_cfg_durationlimit
   global flash_stats
   userid = ev['userid']
   p = playerlib.getPlayer(userid)
   
   #add blinded players to a dictionary; userid is the key; store the
   #flash duration.
   #and only store if flash magnitude is high (255)
   isdead = int(p.attributes['isdead'])
   if not isdead:  
	   alpha = int(p.get('flashalpha'))
	   if alpha == 255:
		   duration = float(p.get('flashduration'))
		   if duration > tf_cfg_durationlimit:
			   teamid = str(p.attributes['teamid'])
			   log_events.append([userid,"Player_Blind"])
			   flash_stats[teamid]["blind"] += 1
			   flashed_for[userid] = duration 



def flashbang_detonate(ev):
	global log_events
	global flashed_for
	global flash_stats
	userid = ev['userid']
	userteam = ev['es_userteam']
	log_events.append([userid,"Flash_Detonate"])
	flash_stats[userteam]["flashbang"] += 1

	#we already have a list of players that were just blinded, so we loop through
	#that list and see if any were on our team.
	for k, v in flashed_for.iteritems():	 
	   tfcheck(userid,userteam,k,v)

	# now clear out the dictionaries that we have created
	flashed_for.clear()



def tfcheck(userid_of_flasher,team_of_flasher,userid_of_flashed,duration):
	global log_events
	global flash_stats
	
	flash_stats[team_of_flasher]["blind_caused_by"] += 1
	pobj = playerlib.getPlayer(userid_of_flasher)
		
	team_of_flashed = es.getplayerteam(userid_of_flashed)
	if int(team_of_flasher) == int(team_of_flashed): 
		if int(userid_of_flasher) == int(userid_of_flashed):
			# player flashed himself.
			es.tell(userid_of_flashed,"[FT] You just flashed yourself for %.2f seconds" % duration)
			log_events.append([userid_of_flashed,"Self_Flasher"])
			flash_stats[team_of_flasher]["self_flashed"] += 1
		else:
			schaden = math.ceil(math.ceil(duration * schadensmultiplizierer))
			# player flashed a teammate. tattle.
			#es.msg("tattle")
			leben = pobj.get("health") - schaden
			if leben > 0:
				pobj.set("health", leben)
			else:
				es.sexec(userid_of_flasher, "kill")
			
			blinded_name = es.getplayername(userid_of_flashed)
			flasher_name = es.getplayername(userid_of_flasher)
			es.tell(userid_of_flashed,"[FT] You were just teamflashed for %.2f seconds by %s (He got %i damage for that)" % (duration,flasher_name, schaden))
			es.tell(userid_of_flasher,"[FT] You just teamflashed %s for %.2f seconds (Damage for that: %i)" % (blinded_name,duration, schaden))
			log_events.append([userid_of_flasher,"Team_Flasher"])
			log_events.append([userid_of_flashed,"Team_Flashee"])
			flash_stats[team_of_flasher]["team_flashed"] += 1
			
	else:
		# player flashed the opposite team, which is good.
		log_events.append([userid_of_flasher,"OppositeTeam_Flasher"])
		flash_stats[team_of_flasher]["opposing_flashed"] += 1


def round_end(ev):
	# at round end, we dump the stats.  This is for efficiency so that we are not
	# calling statslog quite so much during the middle of gameplay.  I've never
	# seen a problem with doing this, but still, it pays to be efficient.  We also
	# delay it slightly so that it gets taken care of in a different tick than 
	# all of the other round end events.
	if tf_cfg_end_of_round_stats:
		gamethread.delayed(0.3, write_flashstats)
	if tf_cfg_log:
		gamethread.delayed(0.5, write_logs)
	

def write_logs_timed():
	thetime  = timeit.Timer("tflash.write_logs()","from tflash import tflash").timeit(1)
	es.log("Wrote tflash logs in %f seconds" % thetime);
	
	
def write_logs():
	global log_events
	for x in log_events:
		statlog(x[0],x[1])
	del log_events[:]

	  
def write_flashstats():
	write_flashstat('CT','3')
	write_flashstat(' T','2')


	
def write_flashstat(moniker,teamid):
	global flash_stats
	otherteam = other_team(teamid)
	flashbangs   = flash_stats[teamid]["flashbang"]
	blind		= flash_stats[teamid]["blind_caused_by"]
	if blind > 0:
		teamflashing = float(flash_stats[teamid]["team_flashed"])/float(blind)*100.0
		selfflashing = float(flash_stats[teamid]["self_flashed"])/float(blind)*100.0
		goodflashing = float(flash_stats[teamid]["opposing_flashed"])/float(blind)*100.0
	else:
		teamflashing = 0.0
		selfflashing = 0.0
		goodflashing = 0.0
	tellall("#green","[TF] %s: %d flashbangs thrown.  %.1f%% teamflash, %.1f%% opposingflash, %.1f%% selfflash." % (moniker,flashbangs,teamflashing,goodflashing,selfflashing))


def other_team(teamid):
	if teamid == '3':
		return '2'
	elif teamid == '2':
		return '3'
	else:
		return '0'

def reset_flash_stats():
	global flash_stats
	for k in flash_stats:
		flash_stats[k]["blind"] = 0 
		flash_stats[k]["blind_caused_by"] = 0	
		flash_stats[k]["flashbang"] = 0
		flash_stats[k]["self_flashed"] = 0
		flash_stats[k]["team_flashed"] = 0
		flash_stats[k]["opposing_flashed"] = 0	

def tellall(color,msg):
	userids = es.getUseridList()
	for k in userids:
	   es.tell(k,color,msg)


Ist ungetestet, sollte aber gehen!

~ Chris
Und das letzte, was gesagt wird, wenn die Welt untergeht, ist: das ist technisch unmöglich.

6

Freitag, 27. Februar 2009, 15:22

Re: Teamflash HP abzug!

Boh alter vadder! RESPEKT! RESPEKT! RESPEKT!

Vielen Dank!!!

Ihr seid Spitze!!!

Gruß

Chrisber

Administrator

Beiträge: 1 030

Wohnort: localhost

Rootserver vorhanden: Ja

  • Nachricht senden

7

Freitag, 27. Februar 2009, 17:54

Re: Teamflash HP abzug!

Schitte, das kann gar nicht gehen shaem2
Habe den Beitrag oben editiert. Der Code, der nun eingefügt ist sollte funktionieren ;)

~ Chris
Und das letzte, was gesagt wird, wenn die Welt untergeht, ist: das ist technisch unmöglich.

8

Freitag, 27. Februar 2009, 19:13

Re: Teamflash HP abzug!

gut gemacht! zwinker

Werde es auch erst morgen früh testen!

THX nochmal

9

Samstag, 28. Februar 2009, 12:42

Re: Teamflash HP abzug!

Hallo Chrisber,

habe es so gemacht wie du beschrieben hast, funzt leider net!

Habe das eventscript mal unter hlsw gestarte und dann kam das!

12:40:04 Traceback (most recent call last):
File "/home/gs341/games/srcds/cstrike/addons/eventscripts/es.py", line 334, in loadModuleAddon
newaddon = __import__(importname)
File "/home/gs341/games/srcds/cstrike/addons/eventscripts/tflash/tflash.py", line 120
leben = pobj.get("health") - schaden
^
SyntaxError: invalid syntax
Could not open script for addons/eventscripts/tflash/es_tflash.txt
Error source (console): (no script)

Gruß

Chrisber

Administrator

Beiträge: 1 030

Wohnort: localhost

Rootserver vorhanden: Ja

  • Nachricht senden

10

Samstag, 28. Februar 2009, 13:25

Re: Teamflash HP abzug!

*hust*
Da war ein Fehler.
Bitte probiere es noch einmal ;)

~ Chris
Und das letzte, was gesagt wird, wenn die Welt untergeht, ist: das ist technisch unmöglich.

11

Samstag, 28. Februar 2009, 14:16

Re: Teamflash HP abzug!

Hallo,

also das Script läuft soweit, aber es wird nicht mehr angezeigt wenn man geflashed hat von dem Team und die entsprechenden HP Punkte werden nicht abgezogen.

Aber sonst schon mal einen fetten Respekt.
Sehr geil.

Gruß

Chrisber

Administrator

Beiträge: 1 030

Wohnort: localhost

Rootserver vorhanden: Ja

  • Nachricht senden

12

Samstag, 28. Februar 2009, 14:38

Re: Teamflash HP abzug!

Dann mach mal HLSW an und flasche einen Teamkameraden. Normalerweise müsste dann ein Fehler in HLSW erscheinen den du hier bitte postest ;)

~ Chris
Und das letzte, was gesagt wird, wenn die Welt untergeht, ist: das ist technisch unmöglich.

13

Samstag, 28. Februar 2009, 15:06

Re: Teamflash HP abzug!

Hallo Chrisber,

habe wir gerade gemacht!
Wenn man eine Flash wirft steht da You flashed your Self 5,89 sec. Aber nicht das man den Teamkameraden auch geflashed hat. So das alos der Attacker die 5 HP abgezogen bekommt. Passiert aber nicht.

Hier der HLSW auszug!
/28/2009 - 15:00:32: "[L.H.C.]Bounty BoB<10><STEAM_0:0:><TERRORIST>" triggered "Player_Blind"
14:59:53 L 02/28/2009 - 15:00:32: "{SD¹} ???G-Mone?<11><STEAM_0:0:><TERRORIST>" triggered "Player_Blind"
14:59:53 L 02/28/2009 - 15:00:32: "[L.H.C.]Bounty BoB<10><STEAM_0:0:><TERRORIST>" triggered "Flash_Detonate"
14:59:53 L 02/28/2009 - 15:00:32: "[L.H.C.]Bounty BoB<10><STEAM_0:0:><TERRORIST>" triggered "Player_Blind"
14:59:53 L 02/28/2009 - 15:00:32: "{SD¹} ???G-Mone?<11><STEAM_0:0:><TERRORIST>" triggered "Player_Blind"
14:59:53 L 02/28/2009 - 15:00:32: "{SD¹} ???G-Mone?<11><STEAM_0:0:><TERRORIST>" triggered "Flash_Detonate"
14:59:53 L 02/28/2009 - 15:00:32: "{SD¹} ???G-Mone?<11><STEAM_0:0:><TERRORIST>" triggered "Self_Flasher"

Habe da leider keine Ahnung von. Ein Fehler hat er mir nicht angezeigt!

Gruß

Chrisber

Administrator

Beiträge: 1 030

Wohnort: localhost

Rootserver vorhanden: Ja

  • Nachricht senden

14

Samstag, 28. Februar 2009, 16:17

Re: Teamflash HP abzug!

Keine Ahnung, vllt. funktioniert dieses TFlash auch nicht richtig.
Bist du sicher dass du auch wirklich Teammates geflasht hast?

~ Chris
Und das letzte, was gesagt wird, wenn die Welt untergeht, ist: das ist technisch unmöglich.

15

Samstag, 28. Februar 2009, 17:38

Re: Teamflash HP abzug!

Hi Chrisber!

Der Server ist gerade neu aufgesetzt und wir waren nur mir 2 mann und 2 Bots auf dem Server!

Habe dann meinen Kumpel geflasht und da stand dann nur! You flashed your self 3.98 sec!

Nichts von you Flashed Teammate G-Money vor 3,98sec und kein Hp abzug! Schade!

Werde das Tool nachher nochmal per HLSW laden und schauen ob irgendwelche Fehler kommen.

Gruß

16

Sonntag, 1. März 2009, 09:01

Re: Teamflash HP abzug!

Hallo Chrisber,

habe das script jetzt ohne änderungen drauf gemacht und da ist ein Fehler, funzt net planmässig!

Habe ein etwas älteres script das auch läuft!

Soll ich Dir das evtl mal zu kommen lassen?

Danke Dir für die Hilfe!

Gruß

Chrisber

Administrator

Beiträge: 1 030

Wohnort: localhost

Rootserver vorhanden: Ja

  • Nachricht senden

17

Sonntag, 1. März 2009, 12:55

Re: Teamflash HP abzug!

Ja, kannst du mir auch schicken ;)

~ Chris
Und das letzte, was gesagt wird, wenn die Welt untergeht, ist: das ist technisch unmöglich.

18

Samstag, 7. März 2009, 10:38

Re: Teamflash HP abzug!

Hallo Chrisber,

konntest du was ändern mit dem Flsh Prog was ich dir zu geschickt habe???

Gruß Bounty BoB