Modding > Fallout Modding

Moddingtalk - Was die (Spiele)welt Bewegt

(1/73) > >>

Pirate85:
Soo fand den Gebrachten Vorschlag von Lexx gar nicht mal so schlecht :)
Hier ist nun ein Thread in dem ihr ausgelassen über das Modding Talken könnt...


Was habt ihr so für ideen und wünsche was allgemein das Falloutspiel angeht?
Was vermisst ihr & was könnte besser gemacht werden?
Warum sollte es besser gemacht werden?
Was für Fragen habt ihr zum Modding allgemein?
usw.

bin Gespannt :)

HerrDerSchatten:
habt mal ne allgemeine Frage,
bastel gerade an meiner ersten Karte (omg was für ein Drecks . Editor) und möchte dem Spieler alle 10 min 20 Rad verpassen.
Hab das aber nicht hinbekommen und schreibe das mal eben in Pseudocode

procedure Strahlung
begin;(brauchts hier ";"?)
var x: boolean;
while x=true add_player_dude(radiation(20))
end;
so ähnlich würds zumindest unter delphi aussehen

Pirate85:
Ehe du denkst hier kommt gar keine Antwort...also dafür ist Lexx zuständig, er wird bald mal wieder reinschauen :D (ich kann mich in nix reinarbeiten wenn der editor dafür net funzt  :wallbash: )

Lexx:
Hmm tut mir leid, ich kann mich hier am Schulrechner nicht so wirklich dazu äußern.

Erstmal so viel... du musst entweder ein neues Mapscript erstellen oder ein vorhandenes modifizieren. Ein neues erstellen bietet sich ehr an und das zu beschreiben braucht etwas länger. Wie gesagt, alles am Wochenende, frühstens Freitag abend, sorry...


Btw. Der Editor is besser als vieles andere. :>

Lexx:

--- Zitat von: HerrDerSchatten am 27. Februar 2006, 14:55:12 Uhr ---habt mal ne allgemeine Frage,
bastel gerade an meiner ersten Karte (omg was für ein Drecks . Editor) und möchte dem Spieler alle 10 min 20 Rad verpassen.
Hab das aber nicht hinbekommen und schreibe das mal eben in Pseudocode

procedure Strahlung
begin;(brauchts hier ";"?)
var x: boolean;
while x=true add_player_dude(radiation(20))
end;
so ähnlich würds zumindest unter delphi aussehen

--- Ende Zitat ---

Sorry nochmal, dass du etwas länger warten musstest. Obgleich mein Fallout 2 hier an meinem Haupt- und Internet PC geschrottet ist, will ich trozdem fix antworten.

Die Überlegung ist schonmal nicht schlecht, aber etwas kompliziert für Fallout.

In einem Map Script, in dem der Spieler bei erstmaligem betreten der Map verstrahlt wird, würde es so aussehen:

procedure map_enter_p_proc begin  // kein ; hier hin!
variable radiate_me;  //deklarieren der temporären Variable
radiate_me:=20;  //der Var radiate_me wird der Wert 20 zugewiesen

   radiation_inc(dude_obj,radiate_me);   //dude_obj bekommt beim Map betreten 20 Strahlung.
end

Jetzt würde der Spieler beim betreten der Map 20 Strahlung abbekommen. Aber wir wollen ja keine einmalige, sondern zeitabhängige Verstrahlung.
Der Wert 10 Minuten ist in Fallout ziemlich hoch gegriffen denke ich. Klar, man braucht auch mal etwas länger in einer Map, aber 10 Minuten ist schon etwas heftig.
Sagen wir mal, der Spieler bekommt alle 5 Game-Ticks 20 Rad. (1 Tick sollte ca. 1 Spielsekunde sein, aber ich denke, dass ist vom PC abhängig.)


Das ganze sieht dann schon einen Tick komplizierter aus, da wir zwei Prozeduren brauchen:

procedure map_enter_p_proc begin
   add_timer_event(self_obj,game_ticks(5),0); //timed_event nach 5 Ticks aufrufen.
end

procedure timed_event_p_proc begin
variable radiate_me;  //deklarieren der temporären Variable
radiate_me:=20;  //der Var radiate_me wird der Wert 20 zugewiesen

   radiation_inc(dude_obj,radiate_me);   //dude_obj bekommt 20 Rad je Prozedurdurchlauf.

   add_timer_event(self_obj,game_ticks(5),0);   //Timer Event auslösen, für Schleife(!)
end


Jetzt wird praktisch beim betreten der Map ein Timer aktiviert, der nach Ablauf die timed_event_p_proc aufruft. Die Prozedur wird dann durchgearbeitet und am Ende wird die timed_event_p_proc wieder nach 5 Ticks aufgerufen. Das ergibt eine Endlosschleife und der Spieler bekommt in meinem Beispiel alle 5 Game-Ticks 20 Rad Strahlung ab. Die 20 varriieren natürlich, je nach dem, wie hoch die Rad-Resistenz des Spielers gerade ist.

Wenn du ein vorhandenes Map Script nimmst, sollten die Prozeduren eigentlich schon vorhanden sein und du brauchst nur noch reinschreiben, was du brauchst. Sollte eine der beiden Prozeduren fehlen, musst du diese am Anfang des Scripts auch noch deklarieren. (procedure timed_event_p_proc; z.B.)

Am Ende sei noch gesagt, dass du die Variable "radiate_me" nicht unbedingt brauchst. Du kannst auch anstelle der Variable eine Zahl direkt in dem Befehl eintragen. Also "radiation_inc(dude_obj,20);". Das funktioniert natürlich auch, ist aber nicht so gut geeignet, falls du per Script den Rad Wert bei bestimmten Bedingungen ändern willst. Geht zwar alles auch, wird aber mehr Code und damit unübersichtlicher.


Hoffe, ich konnte helfen.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln