PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : @ Kai und Co.


orda
2004-06-22, 21:45:27
Ich habe mal eine Frage:

Wenn ich jetzt z.B einen Trigger setzte und da bei Command einen Befehl eingebe, z.B für einen Radarpunkt klappt das auch wunderbar. Aber nach erneutem Laden der Map hat der editor die notwendigen "" Zeichen in _ Zeichen umgewandelt. Und somit gehen die Befehle nicht mehr. Wieso? Wie kann man das umgehen?

Ich weiss das man das gannze auch mit einer LUA Datei umgehen kann, aber leider weiss ich nicht ganz genau was ich dann da reinschreiben muss damit es dann im Spiel fuzt. Ich habe mir zwar schon die Lua aus Light4 als Vorbild genommen, aber ohne Erfolg. :-(

Kai
2004-06-23, 13:28:32
Die LUA aus light4 ist nicht sonderlich aussagekräftig. Das ist der grösste Spaghettimurks den ich jemals zusammengeschnippelt habe. 80% des Codes darin sind totaler Bullshit und unnötig.

Aber wenn Du LUA-Scripting nicht lernst, dann kommst Du ab einem bestimmten Punkt sowieso nicht mehr mit der Map weiter. Schau dir mal diese hier an, die ist aus einer "noch nicht veröffentlichten" Singleplayer-Mission die ich zum üben gemacht habe. Sind auch ne Menge Beschreibungen drin:


Mission = {
};
function Mission:Event_Objective01()
--die Benamung meiner ersten Mission

Hud:SetRadarObjective("Radar1");
--Zeigt mir auf meinem Radar den ersten Anlaufpunkt am Strand an. Das muss mit einem Tagpoint auf der Map der Radar1 heisst assoziiert werden

Hud:PushObjective({},"Try to swim over to the shoreline");
--das steht im Missionsfenster des Huds

Hud:AddMessage("New Objective: Try to swim over to the shoreline",10);
--Zeigt mir fuer 10 Sekunden den Auftrag unten links im HUD an

end

function Mission:Event_Objective02()
--die Benamung meiner zweiten Mission

Hud:SetRadarObjective("Radar2");

Hud:CompleteObjective("Try to swim over to the shoreline");
--Graut den Auftrag aus meiner ersten Mission im HUD aus (wird also als erledigt markiert)

Hud:AddMessage("Objective achieved: Try to swim over to the shoreline",10);
--Zeigt mir fuer 10 Sekunden die Komplettierung des Auftrages an

Hud:PushObjective({},"Look for the fishermen");
--das steht im Missionsfenster des Huds

Hud:AddMessage("New Objective: Look for the fishermen",10);
--Zeigt mir fuer 10 Sekunden den Auftrag unten links im HUD an

Movie:PlaySequence('Cannibal')
--Spielt die Viech am Strand-Sequenz ab

end

function Mission:Event_Objective03()
--die Benamung meiner dritten Mission

Hud:CompleteObjective("Look for the fishermen");
--Graut den Auftrag aus meiner zweiten Mission im HUD aus (wird also als erledigt markiert)

Hud:AddMessage("Objective achieved: look for the fishermen",10);
--Zeigt mir fuer 10 Sekunden die Komplettierung des Auftrages an

Hud:PushObjective({},"Look around the camp to find a weapon");
--das steht im Missionsfenster des Huds

Hud:AddMessage("New Objective: Look around the camp to find a weapon",10);
--Zeigt mir fuer 10 Sekunden den Auftrag unten links im HUD an

Hud:SetRadarObjective("nil");
--Dieser Parameter bestimmt, das der Radarpunkt geloescht wird, falls die Mission ohne Radarziel fortgesetzt werden soll.

Movie:PlaySequence('keinefischer')
--Spielt die Sequenz mit Jack am Strand ab

end

function Mission:Event_NoWeaponFound()
--Die Waffe wurde nicht gefunden weil der Spieler zu doof dafuer ist, oder stur woanders rumrennt

Hud:CompleteObjective("Look around the camp to find a weapon");
--Weswegen er bestraft wird und die Waffe nicht mehr finden kann, weil sie von nem Trigger der auf dieses Script verweist geloescht wird

Hud:AddMessage("Failed objective: Look around the camp to find a weapon",20);
--Und der Spieler das auch 20 Sekunden lang vorgehalten bekommt

end


function Mission:Event_Objective04()
--die Benamung meiner vierten Mission

Hud:CompleteObjective("Look around the camp to find a weapon");
--Graut den Auftrag aus meiner dritten Mission im HUD aus (wird also als erledigt markiert)

Hud:AddMessage("Objective achieved: Look around the camp to find a weapon",10);
--Zeigt mir fuer 10 Sekunden die Komplettierung des Auftrages an

Hud:PushObjective({},"Go and investigate the road which leads into the forest");
--das steht im Missionsfenster des Huds

Hud:AddMessage("New Objective: Investigate the road which leads into the forest",10);
--Zeigt mir fuer 10 Sekunden den Auftrag unten links im HUD an

Hud:SetRadarObjective("Radar3");
--Zeigt den Wegpunkt zur Waldstrasse im Radar an

end

function Mission:Event_Objective05()
--Die Cutscene im kleinen Bunker in dem der Spieler das Handy nimmt

Movie:PlaySequence('Handy')
--Spielt die Cutscene ab

Hud:AddMessage("You found a mobile transceiver... with a cool design...",30);
--Zeigt mir fuer 20 Sekunden blablaasifksfs

end

function Mission:Event_Mercslabern()
--Die Cutscene in der die Mercs auf den Player aufmerksam werden

Movie:PlaySequence('Mercslabern')
--Spielt die Cutscene ab

end

function Mission:Event_Lautsprechner()
--Der Lautsprecher aktiviert sich und die Mercs hetzen einen Buggy auf den Spieler

Movie:PlaySequence('lautsprecher')
--Spielt die Cutscene ab

end

function Mission:Event_Objective06()
--Die Cutscene mit dem Vieh das den Merc anfaellt!

Movie:PlaySequence('ViehimBaum')
--Spielt die Cutscene ab

end
function Mission:Event_Weggabelung()
Hud:SetRadarObjective("nil");
Hud:CompleteObjective("Go and investigate the road which leads into the forest");
Hud:AddMessage("Objective achieved: Go and investigate the road wich leads into the forest",10);
--Hud:PushObjective({},"Look around");
--Hud:AddMessage("New Objective: Look around",10);

end
function Mission:Event_KillRadarWeggabelung()
Hud:SetRadarObjective("nil");
Hud:CompleteObjective("Go and investigate the road which leads into the forest");
Hud:AddMessage("Objective achieved: Go and investigate the road wich leads into the forest",10);
end

function Mission:Event_Flugzeug()
Movie:PlaySequence('flugzeugdingens')
end

function Mission:Event_AmLager()
Hud:PushObjective({},"Loot the camp to find out more about the soldiers.");
Hud:AddMessage("New Objective: Loot the camp to find out more about the soldiers.",10);
Hud:CompleteObjective("Go to the small camp and investigate it");
Hud:SetRadarObjective("nil");

end
function Mission:Event_Looted()
Hud:AddMessage("Objective achieved: Loot the camp to find out more about the soldiers.",10);
Hud:CompleteObjective("Loot the camp to find out more about the soldiers.");
Hud:PushObjective({},"Find the main mercenary base and try to sneak in.");
Hud:AddMessage("Find the main mercenary base and try to sneak in.",10);
end

function Mission:Event_GoToCamp()
Hud:PushObjective({},"Go to the small camp and investigate it");
Hud:AddMessage("New Objective: Go to the small camp and investigate it",10);
Hud:SetRadarObjective("Radar10");

end
function Mission:Event_AberrationAttack()
Movie:PlaySequence('aberrationattack')
end

function Mission:Event_LastMission()
Hud:CompleteObjective("Find the main mercenary base and try to sneak in.");
Hud:AddMessage("Objective completed: Find the main mercenary base and try to sneak in.",20);
Hud:PushObjective({},"Look around, then try to escape from the island");
Hud:AddMessage("New Objective: Look around, then try to escape from the island",20);
end

function Mission:Event_theend()
Hud:CompleteObjective("Look around, then try to escape from the island");
Hud:AddMessage("Objective completed: Look around, then try to escape from the island",10);
end

function Mission:Event_FirstCutSceneLoad()
Movie:PlaySequence('stranded')
end

function Mission:Event_endofthings()
--_localplayer.cnt:SavePlayerElements();
Game:SendMessage('StartLevelFade Demo');
Hud:AddMessage("The End... ?",20);

end

function Mission:OnUpdate()
local i;
local bFinished=1;
for i,objective in Mission do
if (type(objective)~="function") then
if (objective==0) then
bFinished=0;
else
end
end
end
if (bFinished==1) then
self.Finish();
end
end


function Mission:Finish()
-- go to next mission...

end

orda
2004-06-23, 19:48:28
Ok, Danke! Jetzt habe ich das System verstanden. Ist ja eigentlich ganz einfach! Big THX! =)

Kai
2004-06-24, 12:40:17
Tjo, das Du diese Teile im MissionSelector bei Area oder Proximity-Triggern auswählen kannst, weisste ja sicher. Da gibt's eigentlich jetzt nicht mehr viel zu lernen, komplizierter werden die LUA's nur selten. CryTek schreibt die auch anders, ich hab da meinen eigenen "Ordnungs-Stil" entwickelt.