+ Antworten
Ergebnis 1 bis 5 von 5
  1. #1
    Planierer Avatar von Pirat92
    Registriert seit
    30.08.2009
    Ort
    Bremen
    Beiträge
    37

    Standard gibt es eine IsSoldier Funktion

    Hallo
    Gibt es ein Funktion um zu überprüfen ob eine Entitie ein Soldat ist?

    Hier das Anwendungsbeispiel:
    Code:
    function AngstHasen()
      for i = 1, table.getn(Angst) do
      local hase = {Logic.GetPlayerEntitiesInArea(Daten.Wolfopfer, 0, Angst[i].startX, Angst[i].startY, Angst[i].radius, 16)}
        for j = 2, hase[1]+1 do
          if Logic.IsSoldier(hase[j]) == 0 then --hier muss eine funktionierende Funktion hin--
          Move(hase[j], Angst[i].name, 100)
          end
        end
      end 
    end
    Eine Lösungsidee die ich hatte war diese:
    Code:
    local lo = GetEntityType(GetEntityId(hase[j]))
    if not (lo < ?) and not (lo > ?) then
    --Movebefehl--
    end
    Erklärung: GetEntityType liefert ja den Type als Zahl zurück wenn es irgentwo eine Liste gibt auf der die zahlenwerte von allen Entitiy Typen sind könnte man überprüfen ob "lo" in eine bestimmten Zahlenbereich liegt in dem nur Soldaten sind.

    Pirat92

  2. #2
    Holzfäller Avatar von Noigi
    Registriert seit
    31.12.2007
    Beiträge
    118

    Standard AW: gibt es eine IsSoldier Funktion

    Ich glaube nicht, dass alle Entity-Typen in einem bestimmen "Bereich" im Entities-table liegen. Eine ähnliche Abfrage funktioniert aber, wenn man sich selbst so einen globalen table bastelt:
    Code:
    SoldierTypes = { -- Alle Soldaten-EntityTypes
        [Entities.CU_BanditSoldierBow1] = true,
        [Entities.CU_BanditSoldierSword1] = true,
        [Entities.CU_BanditSoldierSword2] = true,
        [Entities.CU_Barbarian_SoldierClub1] = true,
        [Entities.CU_Barbarian_SoldierClub2] = true,
        [Entities.CU_BlackKnight_SoldierMace1] = true,
        [Entities.CU_Evil_SoldierBearman1] = true,
        [Entities.CU_Evil_SoldierSkirmisher1] = true,
        [Entities.PU_SoldierBow1] = true,
        [Entities.PU_SoldierBow2] = true,
        [Entities.PU_SoldierBow3] = true,
        [Entities.PU_SoldierBow4] = true,
        [Entities.PU_SoldierCavalry1] = true,
        [Entities.PU_SoldierCavalry2] = true,
        [Entities.PU_SoldierHeavyCavalry1] = true,
        [Entities.PU_SoldierHeavyCavalry2] = true,
        [Entities.PU_SoldierPoleArm1] = true,
        [Entities.PU_SoldierPoleArm2] = true,
        [Entities.PU_SoldierPoleArm3] = true,
        [Entities.PU_SoldierPoleArm4] = true,
        [Entities.PU_SoldierRifle1] = true,
        [Entities.PU_SoldierRifle2] = true,
        [Entities.PU_SoldierSword1] = true,
        [Entities.PU_SoldierSword2] = true,
        [Entities.PU_SoldierSword3] = true,
        [Entities.PU_SoldierSword4] = true,
    };
    (Etwas Ähnliches hatte ich schon rumliegen, daher hab ich gleich die Lösung parat. )
    Für dein "lo" ist die Abfrage dann einfach nur:
    if SoldierTypes[lo] then
    ...

    Für solche Abfragen, bei denen du von Anfang an ganz genau weißt, welcher Input für welchen Output sorgen soll, ist so ein selbstgebauter Zuordnungstable oft besser als eine Funktion.

  3. #3
    Planierer Avatar von Pirat92
    Registriert seit
    30.08.2009
    Ort
    Bremen
    Beiträge
    37

    Standard AW: gibt es eine IsSoldier Funktion

    Danke für die Antwort das ist genau das was ich gebraucht hab .
    diese Tables sind echt toll.

  4. #4
    12 of 5
    Registriert seit
    28.01.2010
    Beiträge
    3

    Standard AW: gibt es eine IsSoldier Funktion

    Noch einfacher gehts mit:

    Code:
    if Logic.IsEntityInCategory(hase[j], EntityCategories.Military ) then
    --hier weiter
    end
    andre111

  5. #5
    Planierer Avatar von Pirat92
    Registriert seit
    30.08.2009
    Ort
    Bremen
    Beiträge
    37

    Standard AW: gibt es eine IsSoldier Funktion

    Das spart eine Menge Text bei mir dann kann man das auch noch in der werwolf Funktion ergänzen, die ich dir grade geschickt hab

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Ähnliche Themen

  1. Wasserhöhe oder gibt s eigentlich eine
    Von SpiderFive im Forum S6 Scriptecke
    Antworten: 51
    Letzter Beitrag: 09.02.2010, 20:49
  2. Es gibt nun auch eine Hall of Fame
    Von SpiderFive im Forum Flutlicht Siedlersportforum
    Antworten: 11
    Letzter Beitrag: 07.09.2009, 20:10
  3. Es gibt nun auch eine statistische Übersicht über
    Von SpiderFive im Forum Flutlicht Siedlersportforum
    Antworten: 2
    Letzter Beitrag: 04.09.2009, 18:04
  4. Gibt es eine Mitgliederkarte/Membermap ?
    Von BW_spiderfive im Forum Forentutorial
    Antworten: 65
    Letzter Beitrag: 26.05.2009, 21:05
  5. Funktion Assert()
    Von Sokrates im Forum Siedler 6 AeK Mapperecke
    Antworten: 3
    Letzter Beitrag: 17.06.2008, 19:24

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein