Ergebnis 1 bis 10 von 88

Thema: -> Crysis-HQ SandBox2 Tutorials DB

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #19
    User
    Registriert seit
    18.06.2008
    Beiträge
    104

    Standard HowTo: Asian_apc für SP modifizieren

    Hallo zusammen. Vorweg: Dies ist mein erstes Tutorial, daher bitte ich um Nachsicht falls es nicht Ausführlich genug ist, bzw. sich kleine Fehler eingeschlichen haben.

    Verbesserungsvorschläge, Erweiterungen und hinweise auf Fehler werden von mir selbstverständlich eingepflegt.

    gruß Blue.

    ----------------------------------------------------------------------------------------------------

    HowTo: Asian_apc Modifizierung für Singleplayermodus

    Schritt 1:
    - In den Editor gehen, eigene Datenbank anlegen (falls nicht sowieso schon vorhanden), neues Item hinzufügen:
    Scripts\Entities\Vehicles\Asian_apc
    - Speichern
    - Editor beenden.

    Schritt 2:
    [quote]
    - Crysis Verzeichnis öffnen
    - Unter \Game\Libs\EntityArchetypes findet ihr EureDatenbank.xml – diese öffnen
    - Ersetzt nun folgendes:
    Spoiler 1:

    alt
    <EntityPrototype Name="Amphibious.Asian_apc" Id="{437D4CE6-2020-49E3-905F-A59DFCABF390}" Class="Asian_apc" Description="">
    <Properties bAutoGenAIHidePts="0" bDisableEngine="0" bFrozen="0" FrozenModel="" Modification="" Paint="" soclasses_SmartObjectClass="" teamName="">
    <Respawn bAbandon="1" nAbandonTimer="90" bRespawn="0" nTimer="30" bUnique="0"/>
    </Properties>
    <ObjectVars OutdoorOnly="0" CastShadow="1" MotionBlurMultiplier="1" LodRatio="100" ViewDistRatio="100" HiddenInGame="0" RecvWind="0"/>
    </EntityPrototype>
    …und fügt dies stattdessen ein:

    neu
    <EntityPrototype Name="Land.Asian_APC" Id="{CCB29A89-E2E0-4983-97AA-06F1C67C8D6C}" Class="Asian_apc" Description="">
    <Properties accuracy="1" attackrange="100" bAutoGenAIHidePts="0" aicharacter_character="APC" commrange="100" bDisableEngine="0" followDistance="5" bFrozen="0" FrozenModel="" leaderName="" Modification="" Paint="NK" soclasses_SmartObjectClass="" bSpeciesHostility="1" teamName="">
    <Perception camoScale="1" FOVPrimary="-1" FOVSecondary="-1" persistence="10" sightrange="400" sightrangeVehicle="-1" stanceScale="1" velBase="1" velScale="0.5"/>
    <Respawn bAbandon="1" nAbandonTimer="60" bRespawn="0" nTimer="30" bUnique="0"/>
    </Properties>
    <ObjectVars OutdoorOnly="0" CastShadow="1" MotionBlurMultiplier="1" LodRatio="100" ViewDistRatio="100" HiddenInGame="0" RecvWind="0"/>
    </EntityPrototype>

    Anmerkung:
    Die „ID“ in „alt“ und „neu“ sind von mir fett hinterlegt worden, da ihr diese nicht aus diesem Tutorial übernehmen solltet. Als ID nehmt ihr die ID in eurer Datenbank die für dieses Objekt bereits eingetragen ist!

    Schritt 3:
    - Im verzeichniß: \Scripts\Entities\Vehicles\Implementations folgende Datei anlegen: „Asian_apc.lua“
    - Disen Code eintragen: (beliebig modifizierbar)
    Spoiler 2:

    Asian_apc =
    {
    }
    --------------------------------------------------------------------------
    Asian_apc.AIProperties =
    {
    -- AI attributes
    AIType = AIOBJECT_CAR,
    AICombatClass = SafeTableGet(AICombatClasses, "APC"),
    PropertiesInstance =
    {
    aibehavior_behaviour = "APCIdle",
    triggerRadius = 90,
    },
    Properties =
    {
    -- aicharacter_character = "Tank",
    aicharacter_character = "APC",

    Perception =
    {
    FOVPrimary = -1, -- normal fov
    FOVSecondary = -1, -- periferial vision fov
    sightrange = 400,
    persistence = 10,
    },

    },
    AIMovementAbility =
    {
    walkSpeed = 7.0,
    runSpeed = 11.0,
    sprintSpeed = 15.0,
    maneuverSpeed = 5.0,
    minTurnRadius = .2,
    maxTurnRadius = 10,
    pathType = AIPATH_TANK,
    pathLookAhead = 8,
    pathRadius = 3,
    pathSpeedLookAheadPerSpeed = 1.0,
    cornerSlowDown = 0.75,
    pathFindPrediction = 1.0,
    velDecay = 3,
    maneuverTrh = 2.0,
    passRadius = 5.0,
    resolveStickingInTrace = 0.1,
    pathRegenIntervalDuringTrace = 4.0,
    avoidanceRadius = 10.0,
    },
    }
    Schritt 4: (C++)
    Anmerkung:
    Nur eine Quick and Dirty variante – wenn jemand eine elegante Methode schreibt kann er sie gerne Posten, ich pflege sie hier dann ein.
    Spoiler 3:

    - Header: VehicleMovementStdWheeled.h diese Methode deklarieren:
    CMovementRequest GetMovementRequest();
    - cpp: Methode definieren:
    CMovementRequest CVehicleMovementStdWheeled::GetMovementRequest(){r eturn m__aiRequest;}
    - Header: VehicleMovementStdBoat.h diese Methode deklarieren
    void SetMovementRequest(CMovementRequest aiR)
    - cpp: Methode definieren:
    void CVehicleMovementStdBoat::SetMovementRequest(CMovem entRequest aiR){ m_aiRequest = aiR; }
    - In der VehicleMovementAmphibious.cpp die im Anschluss genannten Methoden durch folgenden Eintrag ergänzen:
    m_boat.SetMovementRequest(CVehicleMovementStdWheel ed::GetMovementRequest());
    - 1) ::PostInit()
    - 2) ::Update (vor m_boat.Update)
    - 3) ::ProcessMovement (in die Submerged abfrage an den Anfang)
    Update: Da ich darum gebeten wurde ein kleines Video zur veranschaulichung zu erstellen, hier der Link. Das Video wurde anhand einer Beispielmod namens Asian_APC erstellt.

    http://www.youtube.com/watch?v=5QgFDZhL9nY
    So – damit sind wir fertig und ihr solltet einen voll funktionsfähigen APC haben, viel spaß damit.
    Geändert von Blue (09.12.2008 um 20:56 Uhr)

Stichworte

Berechtigungen

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