BF2 Python Script leicht verändern.

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Lemming
User
Beiträge: 1
Registriert: Freitag 23. Februar 2007, 22:13

Hallöchen :)

ich bräuchte Hilfe bei einem Battlefield 2 Python Code.
http://bf2.fun-o-matic.org/index.php/Sc ... BaseRapeMM

Das Script verhindert, dass man "Hauptbasen" nicht angreifen kann. Tut man es dennoch, so werden einige Strafen eingeleitet. Erst Verwarnungen und dann wird man eliminiert :)
Ich fände es toll, wenn mir jemand helfen könnte das Script zu umzubauen, dass es nur bei Fahrzeugen Strafen einleitet.

Code: Alles auswählen

   # ------------------------------------------------------------------------
   # Punish attacker, give victim life back and inform all
   # ------------------------------------------------------------------------
   def justify(self, attacker, victim, controlPoint, distanceTo):
      victim.score.deaths += -1
      attacker.score.kills += -1
      attacker.score.score += -2 - attacker.baseRapeWarning
      attacker.baseRapeWarning += 1
      self.sendWarning(attacker, controlPoint, distanceTo)
      if attacker.baseRapeWarning > ALLOWED_SAFEBASEKILLS:
         attacker.score.TKs += 1
         if attacker.isAlive():
            vehicle = attacker.getVehicle()
            rootVehicle = getRootParent(vehicle)
            if getVehicleType(rootVehicle.templateName) == VEHICLE_TYPE_SOLDIER:
               rootVehicle.setDamage(0)
               # This should kill them !
            else:
               rootVehicle.setDamage(1) 
               # a vehicle will likely explode within 1 sec killing entire crew,
               # not so sure about base defenses though

Ich habe es auch schon versucht, aber da ich mich absolut nicht mit Python auskenne und für dieses eine Script wohl auch nicht lohnt es zu lernen, wäre es nett, wenn mir jemand helfen könnte. Folgendes habe ich schon probiert, aber dannach blieb das Script "deaktiviert":

Code: Alles auswählen

   # ------------------------------------------------------------------------
   # Punish attacker, give victim life back and inform all
   # ------------------------------------------------------------------------
   def justify(self, attacker, victim, controlPoint, distanceTo):
   vehicle = attacker.getVehicle()
   rootVehicle = getRootParent(vehicle)
   if getVehicleType(rootVehicle.templateName) == VEHICLE_TYPE_SOLDIER:
      return
   else:

	victim.score.deaths += -1
      attacker.score.kills += -1
      attacker.score.score += -2 - attacker.baseRapeWarning
      attacker.baseRapeWarning += 1
      self.sendWarning(attacker, controlPoint, distanceTo)
      if attacker.baseRapeWarning > ALLOWED_SAFEBASEKILLS:
         attacker.score.TKs += 1
         if attacker.isAlive():
            vehicle = attacker.getVehicle()
            rootVehicle = getRootParent(vehicle)
            if getVehicleType(rootVehicle.templateName) == VEHICLE_TYPE_SOLDIER:
               return
            else:
               rootVehicle.setDamage(1) 
BlackJack

Das sieht so aus als wenn die Einrückung nicht stimmt. Das ist bei Python wichtig, weil so zusammengehörige Codeblöcke gekennzeichnet werden. Nach dem ``def`` ist der Quelltext nicht weit genug eingerückt, das ist ein `SyntaxError`.
Antworten