mod Fahrzeuge

  • Hi, ich bins nomal, ich würde mal gerne wissen, wie ich mod fahrzeuge in eine mod map erstellen kann und dann das am besten in Form eines Beispiels (wie z. B. At-At).
    Aba auch die genaue beschreibung, also auch wie das bei Lua geht und so, mit allen namen, Ordnern und Dateien für das Bsp.(Ich glaub ich checks sonst nicht). Wenn geht könntet ihr bist zu einem bestimmten Punkt ja allgemein erklären, und dann mit einem BEispiel vortfahren.


    Zu den Vorraussetzungen:
    - ich hab den zeroeditor
    - ich hab swbf2
    - ich habe ein Programm namens PSpad Zum programmieren
    - ich habe windows xp
    -> ich möchte kein Geld für irgendwas ausgeben!


    - ich habe bis jetzt noch KEINE programmierkenntnisse!


    Am besten würden glaub ich schachtelsätze sein, das dauert nicht so lange, und is Präzise, also Beispiel:


    - auf Ok klicken
    - popup-Fenster öffnet sich
    - in dem Dropdown-Listenfeld den Menüpunkt blaba auswählen
    - den Radiobutten"a" anklicken
    - mit Ok bestätigen



    Das aben nur mit den Ordnern und mit den Dingern in lua (muss ich mir das eig. noch holen, wenn ja wo und ist das kostenlos???)


    Dann danke schonmal im Vorraus, denn durch euch habe ich schon gelernt, wie man ganz normale Objekte einfügt :thumbsup:


    MfG MTC

  • Tut mir Leid das ich dazu nix Präzises sagen kann da die Tools bei mir seit 2 Jahren nicht gehen ( :-( )
    Aber du fragtest das schonma:


    3. wie adde ich fahrzeuge und waffen? - muss ich dazu einfach Objekte einfügen und dann gehts?


    Die Antwort war:


    (G_M_StYlEr_M)
    3.waffen(dafür musst du ne coustome side machen genauso wie für charackter) fahrzeuge kannste einfach adden in dem du
    ne region erstellst (wie das geht müsstest ja wissen) dan gehst du auf browse objeckt gehst in den common ordner der sich bei dir in Data_XXX befindet und wählst glaube heißst vehicle_spawn oder so plazierst as ding innerhalb deiner Control region trägst die spwan zeit normal steht dort 45 machste einfach 5 draus und hallt die control region wie Z.b Cp1_control dan suchst du die abschnitte in der leiste wo was mit rep steht glaube repatt und repdef dort trägst du dan das fahrzeug ein (das muss nartürlich auch in der lua verschrieben sein aber nehmen wir mal den hover tank allso schreibst du da rep_inf_hovertank oder so rein musst schauen wie das heißt.


    Das ist doch verständlich ... und Google hätte es denk cih auch getan bzw. Gametoast oder so.


    Aber laut ihm musst du:
    1.Region erstellen
    2.Browse Object
    3.Data_XXX aufsuchen
    4.Vehicle_Spawn Selektieren
    5.Bestätigen
    6.innerhalb der Spawn Region platzieren
    Spawn Zeit auf 5 (standart auf 45!)
    7.Control Region festlegen(z.b. Kommando Posten 1)
    8.repatt und repdef aufsuchen
    9.z.b. rep_inf_hovertank eintragen
    10.Testen


    geht das?
    Wie gesagt Modtools + Zeroeditor gehen nicht mehr keine ahnung warum....

  • was heißt repdeff und repatt aufsuchen??? - wo?
    und meint ihr mit spawn object den object butten und dann einfach die odf-Datei in die Region schieben?



    Aba danke für antwort!
    Denn artikel hatte ich mich auch grade eben durchgelesen, aba ich würde irgendwie nicht schlauer, da er am ende sagte "und trag das alles noch in lua ein" - genau das ist der Knackpunkt - ich weiß ja garnicht was Lua genau ist (hab gehört ist ein script-programm - helfen tut mir das aba nett) und was man damit macht bzw. wie man damit umgeht...

  • ich übe jetzt mal das probier verfahren aus xD


    kann ich irgendwas von bf2 beschädigen, wenn ich nur irgendetwas in der data_XXX datei mache?

  • das mit den vehiclespawns ist so:
    du kannst die an einen kommandoposten koppeln und jenachdem, welche fraktion den grade besitzt, spawnt ein andres fahrzeug.
    wenn du im data_XXX/common/scripts/XXX/ die lua für den spielemodus, in dem du das fahrzeug hinzufügen willst, öffnest sind oben gleich die zeilen:

    Code
    1. -- These variables do not change
    2. ATT = REP;
    3. DEF = CIS;


    oder die:

    Code
    1. -- Empire Attacking (attacker is always #1)
    2. local ALL = 2
    3. local IMP = 1
    4. -- These variables do not change
    5. local ATT = 1
    6. local DEF = 2


    das heißt für das imperium musst du den namen des fahrzeuges bei impatt, für die rebellen bei alldeff, für die republik bei repatt und für die kus bei cisdeff eintragen
    allerdings musst du dann noch das fahrzeug dirch die lua laden
    du öffnest die lua von dem modus in dem das fahrzeug erscheinen soll und gehst zu den abschnitt, in dem die sidesgeladne werden:


    ja nach dem, zu welcher fraktion das fahreug gehört, musst du es aus dieser side laden, wenn du zum beispiel einen tiefighter ladne willst muss das dann so aussehen:


    die fahreugnamen stehen in den .req dateien der sides drin, die man ganz einfach mit notepad öffnen kann (die sides sind in bf2_modtools/assets/sides)


    für besondere fahrzeuge musst du noch mehr in die lua einfügen
    für den at-at und den at-te (weil sie als kommandoposten fungieren)

    Code
    1. local weaponCnt = 1024
    2. SetMemoryPoolSize("Aimer", 75)
    3. SetMemoryPoolSize("AmmoCounter", weaponCnt)
    4. SetMemoryPoolSize("BaseHint", 1024)
    5. SetMemoryPoolSize("EnergyBar", weaponCnt)


    dorthin musst du noch diese zeile schreiben:

    Code
    1. local weaponCnt = 1024
    2. SetMemoryPoolSize("Aimer", 75)
    3. SetMemoryPoolSize("CommandWalker", -Anzahl der fahrzeuge, die kommandoposten sind-)
    4. SetMemoryPoolSize("AmmoCounter", weaponCnt)
    5. SetMemoryPoolSize("BaseHint", 1024)
    6. SetMemoryPoolSize("EnergyBar", weaponCnt)


    und für alle fahrzeuge die laufen muss man noch etwas eintragen

    Code
    1. -- Level Stats
    2. ClearWalkers()
    3. AddWalkerType(0, 0) -- 0 droidekas
    4. AddWalkerType(1, 5) -- 6 atsts with 1 leg pairs each
    5. AddWalkerType(2, 2) -- 2 atats with 2 leg pairs each


    das ist ein beispiel aus der hothlua


    Code
    1. -- Level Stats
    2. ClearWalkers()
    3. AddWalkerType(0, 3) -- 8 droidekas (special case: 0 leg pairs)
    4. AddWalkerType(2, 3) -- 2 spider walkers with 2 leg pairs each
    5. AddWalkerType(3, 0) -- 2 attes with 3 leg pairs each


    und das eins aus der geonosis lua


    (das erklärt sich ja eigentlich von selbst)

    Einmal editiert, zuletzt von DarthD.U.C.K. ()

  • Fehlerbericht (1)


    Also, erstmal danke Leute für eure Hilfe, habt mir sehr weitergeholfen, dennoch funzt es noch nicht und es wäre nett, wenn ihr das, was ich falsch/ vergessen habe verbessert.
    Ich verheimliche euch nichts, hab das wie folgt gemacht.


    - Also zunächst hab ich ne map (ctf 1 Flag) erstell)
    - dann hab ich alle assets in den world ordner kopiert (ich weiß ist überflüssig)
    - dann hab ich folgende Datei geöffnet: C:\BF2_ModTools\data_MTC\Common\scripts\MTC\MTCg_1flag.lua
    - in der Datei hab ich den Tie-Fighter eingetragen (siehe Expander, ist rot markiert)
    [expander]
    --
    -- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
    --


    ScriptCB_DoFile("setup_teams")
    ScriptCB_DoFile("ObjectiveOneFlagCTF")


    -- Empire Attacking (attacker is always #1)
    local ALL = 2
    local IMP = 1
    -- These variables do not change
    local ATT = 1
    local DEF = 2


    function ScriptPostLoad()


    SoundEvent_SetupTeams( REP, 'rep', CIS, 'cis' )


    ctf = ObjectiveOneFlagCTF:New{teamATT = 1, teamDEF = 2,
    textATT = "game.modes.1flag", textDEF = "game.modes.1flag2",
    captureLimit = 8, flag = "flag", flagIcon = "flag_icon",
    flagIconScale = 3.0, homeRegion = "homeregion",
    captureRegionATT = "team1_capture", captureRegionDEF = "team2_capture",
    capRegionMarkerATT = "hud_objective_icon_circle", capRegionMarkerDEF = "hud_objective_icon_circle",
    capRegionMarkerScaleATT = 3.0, capRegionMarkerScaleDEF = 3.0, multiplayerRules = true}


    ctf:Start()


    EnableSPHeroRules()


    end



    ---------------------------------------------------------------------------
    -- FUNCTION: ScriptInit
    -- PURPOSE: This function is only run once
    -- INPUT:
    -- OUTPUT:
    -- NOTES: The name, 'ScriptInit' is a chosen convention, and each
    -- mission script must contain a version of this function, as
    -- it is called from C to start the mission.
    ---------------------------------------------------------------------------


    function ScriptInit()


    ReadDataFile("ingame.lvl")




    SetMaxFlyHeight(40)
    SetMaxPlayerFlyHeight(40)



    SetMemoryPoolSize ("ClothData",20)
    SetMemoryPoolSize ("Combo",50) -- should be ~ 2x number of jedi classes
    SetMemoryPoolSize ("Combo::State",650) -- should be ~12x #Combo
    SetMemoryPoolSize ("Combo::Transition",650) -- should be a bit bigger than #Combo::State
    SetMemoryPoolSize ("Combo::Condition",650) -- should be a bit bigger than #Combo::State
    SetMemoryPoolSize ("Combo::Attack",550) -- should be ~8-12x #Combo
    SetMemoryPoolSize ("Combo::DamageSample",6000) -- should be ~8-12x #Combo::Attack
    SetMemoryPoolSize ("Combo::Deflect",100) -- should be ~1x #combo


    ReadDataFile("sound\\tat.lvl;tat2gcw")
    ReadDataFile("SIDE\\all.lvl",
    "all_inf_rifleman",
    "all_inf_rocketeer",
    "all_inf_sniper",
    "all_inf_engineer",
    "all_inf_officer",
    "all_inf_wookiee",
    "all_hero_hansolo_tat")


    ReadDataFile("SIDE\\imp.lvl",
    "imp_inf_rifleman",
    "imp_inf_rocketeer",
    "imp_inf_engineer",
    "imp_inf_sniper",
    "imp_inf_officer",
    "imp_inf_dark_trooper",
    "imp_fly_tiefighter_sc";
    "imp_hero_bobafett",
    "imp_fly_destroyer_dome" )


    ReadDataFile("SIDE\\tur.lvl",
    "tur_bldg_tat_barge",
    "tur_bldg_laser")


    SetupTeams{
    all = {
    team = ALL,
    units = 20,
    reinforcements = 150,
    soldier = { "all_inf_rifleman",9, 25},
    assault = { "all_inf_rocketeer",1,4},
    engineer = { "all_inf_engineer",1,4},
    sniper = { "all_inf_sniper",1,4},
    officer = { "all_inf_officer",1,4},
    special = { "all_inf_wookiee",1,4},


    },
    imp = {
    team = IMP,
    units = 20,
    reinforcements = 150,
    soldier = { "imp_inf_rifleman",9, 25},
    assault = { "imp_inf_rocketeer",1,4},
    engineer = { "imp_inf_engineer",1,4},
    sniper = { "imp_inf_sniper",1,4},
    officer = { "imp_inf_officer",1,4},
    special = { "imp_inf_dark_trooper",1,4},
    },
    }


    SetHeroClass(ALL, "all_hero_hansolo_tat")
    SetHeroClass(IMP, "imp_hero_bobafett")


    -- Level Stats
    ClearWalkers()
    AddWalkerType(0, 0) -- special -> droidekas
    AddWalkerType(1, 0) -- 1x2 (1 pair of legs)
    AddWalkerType(2, 0) -- 2x2 (2 pairs of legs)
    AddWalkerType(3, 0) -- 3x2 (3 pairs of legs)
    local weaponCnt = 1024
    SetMemoryPoolSize("Aimer", 75)
    SetMemoryPoolSize("AmmoCounter", weaponCnt)
    SetMemoryPoolSize("BaseHint", 1024)
    SetMemoryPoolSize("EnergyBar", weaponCnt)
    SetMemoryPoolSize("EntityCloth", 32)
    SetMemoryPoolSize("EntityFlyer", 32)
    SetMemoryPoolSize("EntityHover", 32)
    SetMemoryPoolSize("EntityLight", 200)
    SetMemoryPoolSize("EntitySoundStream", 4)
    SetMemoryPoolSize("EntitySoundStatic", 32)
    SetMemoryPoolSize("MountedTurret", 32)
    SetMemoryPoolSize("Navigator", 128)
    SetMemoryPoolSize("Obstacle", 1024)
    SetMemoryPoolSize("PathNode", 1024)
    SetMemoryPoolSize("SoundSpaceRegion", 64)
    SetMemoryPoolSize("TreeGridStack", 1024)
    SetMemoryPoolSize("UnitAgent", 128)
    SetMemoryPoolSize("UnitController", 128)
    SetMemoryPoolSize("Weapon", weaponCnt)
    SetMemoryPoolSize("FlagItem", 1)


    SetSpawnDelay(10.0, 0.25)
    ReadDataFile("dc:MTC\\MTC.lvl", "MTC_1flag")
    SetDenseEnvironment("false")



    -- Sound Stats


    voiceSlow = OpenAudioStream("sound\\global.lvl", "all_unit_vo_slow")
    AudioStreamAppendSegments("sound\\global.lvl", "imp_unit_vo_slow", voiceSlow)
    AudioStreamAppendSegments("sound\\global.lvl", "des_unit_vo_slow", voiceSlow)
    AudioStreamAppendSegments("sound\\global.lvl", "global_vo_slow", voiceSlow)


    voiceQuick = OpenAudioStream("sound\\global.lvl", "all_unit_vo_quick")
    AudioStreamAppendSegments("sound\\global.lvl", "imp_unit_vo_quick", voiceQuick)


    OpenAudioStream("sound\\global.lvl", "gcw_music")
    OpenAudioStream("sound\\tat.lvl", "tat2")
    OpenAudioStream("sound\\tat.lvl", "tat2")
    -- OpenAudioStream("sound\\global.lvl", "global_vo_quick")
    -- OpenAudioStream("sound\\global.lvl", "global_vo_slow")


    SetBleedingVoiceOver(ALL, ALL, "all_off_com_report_us_overwhelmed", 1)
    SetBleedingVoiceOver(ALL, IMP, "all_off_com_report_enemy_losing", 1)
    SetBleedingVoiceOver(IMP, ALL, "imp_off_com_report_enemy_losing", 1)
    SetBleedingVoiceOver(IMP, IMP, "imp_off_com_report_us_overwhelmed", 1)


    SetLowReinforcementsVoiceOver(ALL, ALL, "all_off_defeat_im", .1, 1)
    SetLowReinforcementsVoiceOver(ALL, IMP, "all_off_victory_im", .1, 1)
    SetLowReinforcementsVoiceOver(IMP, IMP, "imp_off_defeat_im", .1, 1)
    SetLowReinforcementsVoiceOver(IMP, ALL, "imp_off_victory_im", .1, 1)


    SetOutOfBoundsVoiceOver(2, "Allleaving")
    SetOutOfBoundsVoiceOver(1, "Impleaving")


    SetAmbientMusic(ALL, 1.0, "all_tat_amb_start", 0,1)
    SetAmbientMusic(ALL, 0.8, "all_tat_amb_middle", 1,1)
    SetAmbientMusic(ALL, 0.2, "all_tat_amb_end", 2,1)
    SetAmbientMusic(IMP, 1.0, "imp_tat_amb_start", 0,1)
    SetAmbientMusic(IMP, 0.8, "imp_tat_amb_middle", 1,1)
    SetAmbientMusic(IMP, 0.2, "imp_tat_amb_end", 2,1)


    SetVictoryMusic(ALL, "all_tat_amb_victory")
    SetDefeatMusic (ALL, "all_tat_amb_defeat")
    SetVictoryMusic(IMP, "imp_tat_amb_victory")
    SetDefeatMusic (IMP, "imp_tat_amb_defeat")


    SetSoundEffect("ScopeDisplayZoomIn", "binocularzoomin")
    SetSoundEffect("ScopeDisplayZoomOut", "binocularzoomout")
    --SetSoundEffect("WeaponUnableSelect", "com_weap_inf_weaponchange_null")
    --SetSoundEffect("WeaponModeUnableSelect", "com_weap_inf_modechange_null")
    SetSoundEffect("SpawnDisplayUnitChange", "shell_select_unit")
    SetSoundEffect("SpawnDisplayUnitAccept", "shell_menu_enter")
    SetSoundEffect("SpawnDisplaySpawnPointChange", "shell_select_change")
    SetSoundEffect("SpawnDisplaySpawnPointAccept", "shell_menu_enter")
    SetSoundEffect("SpawnDisplayBack", "shell_menu_exit")


    -- Camera Stats
    --Tat2 Mos Eisley
    AddCameraShot(0.974338, -0.222180, 0.035172, 0.008020, -82.664650, 23.668301, 43.955681);
    AddCameraShot(0.390197, -0.089729, -0.893040, -0.205362, 23.563562, 12.914885, -101.465561);
    AddCameraShot(0.169759, 0.002225, -0.985398, 0.012916, 126.972809, 4.039628, -22.020613);
    AddCameraShot(0.677453, -0.041535, 0.733016, 0.044942, 97.517807, 4.039628, 36.853477);
    AddCameraShot(0.866029, -0.156506, 0.467299, 0.084449, 7.685640, 7.130688, -10.895234);
    end[/expander]



    - so dann hab ich map mit zeroeditor geöffnet
    - hab dann erst eine Region erstellt und sie oben in der länglichen Box (Feld Region ID) Kommando Posten 1 genannt
    - dann hab ich über Objekte folgendes objekt eingefügt: C:\BF2_ModTools\data_MTC\Common\odfs\com_item_vehicle_spawn.odf
    - dieses Objekt (ein Pfeil) hab ich dann in den blauen kasten (die Region) gesetzt.
    - hab dann gemunged


    ---> was war falsch???


    PLS HELP!


    MfG MTC


  • okay pass auf ich amche mal en video davon k!

  • Danke für das nette Video, aba ich bin irgendwie nicht wirklich schlauer geworden - aba ich weiß jezt wie ich kps mache;) naja, dass enscheidende fehlt mir irgendwie...

  • ir irge


    das tut war zu schnell waa XD


    allso pass auf du nimmst en namen meinetwegen rep_hover_fightertank
    das fügst du in diesem object (vehicle spwan) ein du suchst nach den zeilen repatt und repdef
    da schreibst das rein das dieses fahrzeige schon in der lua is alles okay das wars eigentlich auch schon !


    was dua ber nicht vergessen darfst wen du en neuen cp machst geh in die lua
    such danach


    --This defines the CPs. These need to happen first
    cp1 = CommandPost:New{name = "cp1"}
    cp2 = CommandPost:New{name = "cp2"}
    cp3 = CommandPost:New{name = "cp3"}
    cp4 = CommandPost:New{name = "cp4"}



    --This sets up the actual objective. This needs to happen after cp's are defined
    conquest = ObjectiveConquest:New{teamATT = ATT, teamDEF = DEF,
    textATT = "game.modes.con",
    textDEF = "game.modes.con2",
    multiplayerRules = true}

    --This adds the CPs to the objective. This needs to happen after the objective is set up
    conquest:AddCommandPost(cp1)
    conquest:AddCommandPost(cp2)
    conquest:AddCommandPost(cp3)
    conquest:AddCommandPost(cp4)



    du musst die cps adden dan amchste das so


    --This defines the CPs. These need to happen first
    cp1 = CommandPost:New{name = "cp1"}
    cp2 = CommandPost:New{name = "cp2"}
    cp3 = CommandPost:New{name = "cp3"}
    cp4 = CommandPost:New{name = "cp4"}
    cp5 = CommandPost:New{name = "cp5"}



    --This sets up the actual objective. This needs to happen after cp's are defined
    conquest = ObjectiveConquest:New{teamATT = ATT, teamDEF = DEF,
    textATT = "game.modes.con",
    textDEF = "game.modes.con2",
    multiplayerRules = true}

    --This adds the CPs to the objective. This needs to happen after the objective is set up
    conquest:AddCommandPost(cp1)
    conquest:AddCommandPost(cp2)
    conquest:AddCommandPost(cp3)
    conquest:AddCommandPost(cp4)
    conquest:AddCommandPost(cp5)



    das wars!

  • du musst keinen extrakommandopostenb für nen fahrzeugspawn machen, es geht auch wenn du nix in das controlregion-feld einträgst