cbacon93 0 Melden Geschrieben 15. Februar 2009 (bearbeitet) Hallo, ich hoste schon seit langem einen "Sniper Only" Server. Da ich und andere Admins nicht 24 Stunden am Tag aufpassen können, habe ich mir vorgenommen, ein Script zu schreiben, welche normale kills, die nicht vom Sniper kommen automatisch als Teamkill gezählt werden, was dann automatisch zum kick führt. Ich habe soweit alles Fertig gestellt mit dem Aufbau. Nun weiß ich aber nicht, in welcher Variable oder mit welcher Funktion ich die Waffe des Abfeuernden auslesen kann. Das Script ist mehr eine Apposition der Funktion def onPlayerKilled(victim, attacker, weapon, assists, object) Wobei, zumindest denke ich so, "weapon" für die Waffe steht, die ich weiter unten auslesen will. Nun habe ich vor dem "Normalen Kill" ein paar else' hingemacht, für alle Waffen, die ein Sniper tragen kann, und dann zum schluss den "Normalen Kill" als Teamkill gewertet ^^ ............ # killed by own team elif attacker.getTeam() == victim.getTeam(): # no teamkills from own wreck if killedByEmptyVehicle and object.getIsWreck(): return attacker.score.suicides += 1 addScore(attacker, SCORE_TEAMKILL, RPL) countAssists = True elif weapon == "ussni_m95_barret": attacker.score.kills += 1 addScore(attacker, SCORE_KILL, SKILL) countAssists = True elif weapon == "kni_knife": attacker.score.kills += 1 addScore(attacker, SCORE_KILL, SKILL) countAssists = True elif weapon == "usrif_m24": attacker.score.kills += 1 addScore(attacker, SCORE_KILL, SKILL) countAssists = True elif weapon == "ushgr_m67": attacker.score.kills += 1 addScore(attacker, SCORE_KILL, SKILL) countAssists = True elif weapon == "rurif_dragunov": attacker.score.kills += 1 addScore(attacker, SCORE_KILL, SKILL) countAssists = True elif weapon == "uspis_92fs_silencer": attacker.score.kills += 1 addScore(attacker, SCORE_KILL, SKILL) countAssists = True elif weapon == "rupis_baghira_silencer": attacker.score.kills += 1 addScore(attacker, SCORE_KILL, SKILL) countAssists = True elif weapon == "usmin_claymore": attacker.score.kills += 1 addScore(attacker, SCORE_KILL, SKILL) countAssists = True elif weapon == "defibrillator": attacker.score.kills += 1 addScore(attacker, SCORE_KILL, SKILL) countAssists = True # killed by enemy kills else: #Der ehemalige normale kill nun zum teamkill umgeformt attacker.score.TKs += 1 addScore(attacker, SCORE_TEAMKILL, RPL) ......... Die Namen der Waffen habe ich aus dem BF2 Editor genommen. Nun ist es so, dass wenn ich nun mit einen der "erlaubten" Waffen jemanden kille, es trotzdem als Teamkill gewertet wird. Heißt, die Waffennamen sind falsch. Es kann auch sein dass die Variable "weapon" nur auf true oder false gesetzt wird... oder aber man braucht dazu eine extra Funktion. Falls jemand schoneinmal so etwas gemacht hat, bitte ich um hilfe, damit unser Server endlich unterbrechungsfrei laufen kann =) EDIT: Die Datei die ich verändert habe ist die "scoringCommon.py" in dem Verzeichnis "/mods/bf2/phyton/game/" Bearbeitet 15. Februar 2009 von cbacon93