Sie sind nicht angemeldet.

1

Sonntag, 21. Oktober 2012, 22:34

Knife Begrenzung 1x knife pro Runde

Hallo,
Ich suche ein Plugin womit man beim zweiten mal knifen geslayt wird oder man einfach eine begrenzung hat.
das man nur einmal knifen kann.
Habe selbst schon danach gesucht, und leider nichs gefunden
Hoffe es kann mir jemand helfen ;)

2

Sonntag, 21. Oktober 2012, 22:35

1 Thread reicht brauchst nicht gleich 3 aufmachen

Jackmaster

Super Moderator

Beiträge: 660

Rootserver vorhanden: Ja

  • Nachricht senden

3

Sonntag, 21. Oktober 2012, 22:53

Spoiler Spoiler

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
# =============================================================================
# >> Import
# =============================================================================

import es

# =============================================================================
# >> Cfg
# =============================================================================

MAX_MESSERN = 1

# =============================================================================
# >> Cfg Ende
# =============================================================================

# =============================================================================
# >> Dictionary
# =============================================================================

playerDict = {}

# =============================================================================
# >> Load & Unload-Block
# =============================================================================

def load():
	for a in es.getUseridList():
		steamid = es.getplayersteamid(a)
		playerDict[steamid] = 0
		
	es.addons.registerTickListener(tickListen)
		
def unload():
	playerDict.clear()
	es.addons.unregisterTickListener(tickListen)
	
# =============================================================================
# >> Ticklistener, Art Timer
# =============================================================================

def tickListen():
	for a in es.getUseridList():
		attack = es.getplayerprop(a, 'CBaseCombatCharacter.bcc_localdata.m_flNextAttack')
		dead = es.getplayerprop(a, 'CCSPlayer.baseclass.pl.deadflag')
		steamid = es.getplayersteamid(a)
		if not steamid in playerDict:
			playerDict[steamid] = 0
			if dead:
				return
			if getActiveWeapon(a) == "weapon_knife":
				if attack => 0:
					playerDict[steamid] += 1
					if playerDict[steamid] == MAX_MESSERN:
						es.cexec(a, "kill")
						
# =============================================================================
# >> Returned aktive Waffe
# =============================================================================
			
			
def getActiveWeapon(userid):
	handle = es.getplayerprop(userid, 'CBaseCombatCharacter.m_hActiveWeapon')
	index = es.getindexfromhandle(handle)
	return es.entitygetvalue(index, 'classname')
	
# =============================================================================
# >> Gameevent Spawn
# =============================================================================
	
def player_spawn(ev):
	userid = ev["userid"]
	playerDict[es.getplayersteamid(userid)] = 0


Probier das mal.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »General_V« (22. Oktober 2012, 17:44)


General_V

Super Moderator

Beiträge: 1 043

Wohnort: Mönchengladbach

Beruf: Brückenkranführer / Staplerfahrer

Rootserver vorhanden: Nein

  • Nachricht senden

4

Montag, 22. Oktober 2012, 17:44

spoiler in Zukunft benutzen, Danke

Impact

Super Moderator

Beiträge: 1 276

Rootserver vorhanden: Nein

  • Nachricht senden

5

Montag, 22. Oktober 2012, 17:59

Jack, dein Plugin hat einen relativ großen Overhead für diese simple Aufgabe.
Hook doch einfach das PlayerDeath Event, prüfe ob es ein Messer war und erhöhe eine Variable.
Wenn die Variable über 1 ist dann führe eine Aktion aus, einen Ticklistener dafür zu verwenden ist nicht wirkliche gutes Coding.
Es ist nun wirklich nicht notwendig 66 mal die Sekunde zu prüfen ob jemand gerade ein Messer hat und damit IN_ATTACK ist.
Mal abgesehen davon wird man direkt mit dem ersten Messestich gekillt wenn man den Wert auf 1 hat.
Zudem wird es wohl so sein dass man wenn man attackiert nicht unbedingt jemanden dabei tötet, falls ich den Code falsch interpretiert habe verzeih mir.

So, genug geflamed^^

MfG
Impact

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Impact« (22. Oktober 2012, 18:05)


6

Montag, 22. Oktober 2012, 18:17

Hilfe pls.

Hallo also sry aber kenn mich nicht ganz so aus.
Könntest du mir erklären, wie ich das nach deiner Methode machen muss ?

Und bei JackMaster´s Methode müsste ich es eigentlich so machen oder:
Text was er geschickt hat einfügen und als knife.py speichern.
Dann einfügen bei eventscripts/knife/knife.py
Und in die autoexec reinschreiben es_load knife.?

Impact

Super Moderator

Beiträge: 1 276

Rootserver vorhanden: Nein

  • Nachricht senden

7

Montag, 22. Oktober 2012, 18:31

Ich supporte wie in meiner Signatur zu sehen ist kein Eventscripts, das waren einfach nur Tipps an Jackmaster.

MfG
Impact

Jackmaster

Super Moderator

Beiträge: 660

Rootserver vorhanden: Ja

  • Nachricht senden

8

Montag, 22. Oktober 2012, 19:20

Er wollte doch das man nur einmal knifen kann, deswegen check ich sobald er knifet :D
Und das man muss man als .py abspeichern

9

Montag, 5. November 2012, 19:45

Fehlermeldung am Server

Das ist die Fehlermeldung am Server bei dem knife Plugin.

*** EventScripts caught an exception:
Traceback (most recent call last):
File "/home/Kundennummer/server/css_test/css/cstrike/addons/eventscripts/es.py", line 409, in loadModuleAddon
newaddon = __import__(importname)
File "/home/Kundennummer/server/css_test/css/cstrike/addons/eventscripts/knife/knife.py", line 52
if attack => 0:

^
SyntaxError: invalid syntax
Could not open script for addons/eventscripts/knife/es_knife.txt
Error source (console): (no script)

Hoffe du kannst mir dabei helfen ;)