Ein paar Scriptfragen.
Moderators: Newsposter, Global Moderator, Zugriff Intern, Moderator
Re: Ein paar Scriptfragen.
Du könntest dir tausend Probleme sparen, wenn du einfach mal die vorhandenen Scripte anschauen würdest... wenn du nicht genau weißt, wie man eine Variable hoch zählt, guck halt einfach in eines der hundert vorhandenen Scripte und sieh nach, wie das da gemacht wurde. Einfacher geht es echt nicht.
In einer Modoc Datei sehe ich gerade zum Beispiel die Zeile "inc_map_var(MVAR_Rat_Counter);", es wäre also nahe liegend, einfach mal "inc_global_var(GVAR_XY);" anstelle von "set_global_var(GVAR_Baum_gefaellt, GVAR_Baum_gefaellt+1)" einzusetzen. Und es gibt auf jeden Fall noch andere Möglichkeiten zum Variablen hoch zählen.
In einer Modoc Datei sehe ich gerade zum Beispiel die Zeile "inc_map_var(MVAR_Rat_Counter);", es wäre also nahe liegend, einfach mal "inc_global_var(GVAR_XY);" anstelle von "set_global_var(GVAR_Baum_gefaellt, GVAR_Baum_gefaellt+1)" einzusetzen. Und es gibt auf jeden Fall noch andere Möglichkeiten zum Variablen hoch zählen.
only when you no-life you can exist forever, because what does not live cannot die
Re: Ein paar Scriptfragen.
Also hier mein derzeitiger Code(komplimieren geht ohne Probleme, bloss passier nix nach den dritten Gefällten Baum:
Code: Select all
// Axe script by Mr.Wolna//
#include "D:\FALLOUT M\MAPPER\scripts\HEADERS\DEFINE.H"
procedure use_obj_on_p_proc begin
variable Tree;
variable Wood;
if ((obj_pid(obj_being_used_with) == PID_FIRST_TREE)
or (obj_pid(obj_being_used_with) == PID_SECOND_TREE)
or (obj_pid(obj_being_used_with) == PID_THIRD_TREE)) then begin
gfade_out(5);
Tree:=create_object(PID_TEMPLE_SKULL_POLE,tile_num(obj_being_used_with),elevation(obj_being_used_with));
destroy_object(obj_being_used_with);
game_time_advance( 30 * ONE_GAME_MINUTE );
set_global_var(GVAR_TREE_DOWN, (global_var(GVAR_TREE_DOWN) + 1 ) );
Wood:=create_object(PID_14MM_PISTOL,0,0);
add_obj_to_inven(dude_obj,Wood);
gfade_in(5);
end else if (global_var(GVAR_TREE_DOWN) >= 3) then begin
// *** Msg file reference: {100}{}{Das sit nur ein Test.} ***
floater(100);
end
end
RPÜ/German Restoration Project Tanslation
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an! <br />
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an! <br />
Ashbury wrote:P.s. Nein es ist nicht die Gewalt was mich an der Fallout Reihe gereizt hat,aber sie war immer die Kirsche auf der Sahnetorte ( Und ich will verdammt nochmal ne Kirsche oben drauf haben)
Re: Ein paar Scriptfragen.
Du hast die Logik immer noch nicht verstanden.
Bei dir oben steht:
Wenn Axt + Baum 1 oder 2 oder 3, dann:
- mach Bildschirm Schwarz
- Erstelle neuen Baum
- Lösche alten Baum
- spule die Zeit vor
- mach globale Variable + 1
- erstelle Item
- gib Spieler das Item
- mach Bildschirm wieder normal
ANSONSTEN, wenn NICHT AXT + BAUM 1 oder 2 oder 3 ABER DAFÜR GVAR größer oder gleich 3, dann:
- sprüh irgend welchen Text in die Luft
ende
Wie es richtig sein muss:
Wenn Axt + Baum 1 oder 2 oder 3, dann:
- mach Bildschirm Schwarz
- Erstelle neuen Baum
- Lösche alten Baum
- spule die Zeit vor
- mach globale Variable + 1
- erstelle Item
- gib Spieler das Item
- mach Bildschirm wieder normal
- wenn GVAR größer oder gleich 3, dann:
- sprüh irgend welchen Text in die Luft
- ende
ende
Schau hier zum zehnten mal. Der Code selbst ist bei der Variable wahrscheinlich falsch, aber da siehst du zumindest den richtigen Aufbau.
Bei dir oben steht:
Wenn Axt + Baum 1 oder 2 oder 3, dann:
- mach Bildschirm Schwarz
- Erstelle neuen Baum
- Lösche alten Baum
- spule die Zeit vor
- mach globale Variable + 1
- erstelle Item
- gib Spieler das Item
- mach Bildschirm wieder normal
ANSONSTEN, wenn NICHT AXT + BAUM 1 oder 2 oder 3 ABER DAFÜR GVAR größer oder gleich 3, dann:
- sprüh irgend welchen Text in die Luft
ende
Wie es richtig sein muss:
Wenn Axt + Baum 1 oder 2 oder 3, dann:
- mach Bildschirm Schwarz
- Erstelle neuen Baum
- Lösche alten Baum
- spule die Zeit vor
- mach globale Variable + 1
- erstelle Item
- gib Spieler das Item
- mach Bildschirm wieder normal
- wenn GVAR größer oder gleich 3, dann:
- sprüh irgend welchen Text in die Luft
- ende
ende
Schau hier zum zehnten mal. Der Code selbst ist bei der Variable wahrscheinlich falsch, aber da siehst du zumindest den richtigen Aufbau.
Last edited by Lexx on Fri Aug 22, 2008 2:43 pm, edited 1 time in total.
only when you no-life you can exist forever, because what does not live cannot die
Re: Ein paar Scriptfragen.
kann das sein das es gar nicht geht. Also alleine als Waffenscript?
Code: Select all
Also so oder wie?
// Axe script by Mr.Wolna//
#include "D:\FALLOUT M\MAPPER\scripts\HEADERS\DEFINE.H"
procedure use_obj_on_p_proc begin
variable Tree;
variable Wood;
if ((obj_pid(obj_being_used_with) == PID_FIRST_TREE)
or (obj_pid(obj_being_used_with) == PID_SECOND_TREE)
or (obj_pid(obj_being_used_with) == PID_THIRD_TREE)) then begin
gfade_out(5);
Tree:=create_object(PID_TEMPLE_SKULL_POLE,tile_num(obj_being_used_with),elevation(obj_being_used_with));
destroy_object(obj_being_used_with);
game_time_advance( 30 * ONE_GAME_MINUTE );
set_global_var(GVAR_TREE_DOWN, (global_var(GVAR_TREE_DOWN) + 1 ) );
Wood:=create_object(PID_14MM_PISTOL,0,0);
add_obj_to_inven(dude_obj,Wood);
gfade_in(5);
if (global_var(GVAR_Baum_gefaellt) >= 10) then begin
play_sfx("saloon");
end
end
Last edited by Mr.Wolna on Fri Aug 22, 2008 3:10 pm, edited 1 time in total.
RPÜ/German Restoration Project Tanslation
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an! <br />
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an! <br />
Ashbury wrote:P.s. Nein es ist nicht die Gewalt was mich an der Fallout Reihe gereizt hat,aber sie war immer die Kirsche auf der Sahnetorte ( Und ich will verdammt nochmal ne Kirsche oben drauf haben)
Re: Ein paar Scriptfragen.
Sag mal... ist das dein komplettes Script? Weil, du hast die use_obj_on_p_proc gar nicht definiert. (Siehe andere Scripte)
Da ist nichts dabei, was man extra machen müsste.kann das sein das es gar nicht geht. Also alleine als Waffenscript?
Last edited by Lexx on Fri Aug 22, 2008 3:11 pm, edited 1 time in total.
only when you no-life you can exist forever, because what does not live cannot die
Re: Ein paar Scriptfragen.
ahm ja stimmt hab ich vergessen zu defenieren^^Lexx wrote: Sag mal... ist das dein komplettes Script? Weil, du hast die use_obj_on_p_proc gar nicht definiert. (Siehe andere Scripte)
Ich ken nda einen sehr guten scripter der anderer Meinung istLexx wrote: Da ist nichts dabei, was man extra machen müsste.

Desswegen frag ich ja auch

RPÜ/German Restoration Project Tanslation
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an! <br />
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an! <br />
Ashbury wrote:P.s. Nein es ist nicht die Gewalt was mich an der Fallout Reihe gereizt hat,aber sie war immer die Kirsche auf der Sahnetorte ( Und ich will verdammt nochmal ne Kirsche oben drauf haben)
Re: Ein paar Scriptfragen.
Dann bin ich gespannt darauf zu erfahren, was genau externalisiert werden muss.
only when you no-life you can exist forever, because what does not live cannot die
Re: Ein paar Scriptfragen.
Ok dieser Code geht, wie du (und andere) 10x schon gesagt hattest. Ich mach mir mehr Streß als es tatsächlich ist. 
Jetz muss ich das noch mit der stärke und den perk packen

Jetz muss ich das noch mit der stärke und den perk packen
Code: Select all
// Baum Test Script
#include "..\headers\define.h"
#define NAME SCRIPT_TREE
#include "..\headers\command.h"
procedure start;
procedure use_obj_on_p_proc;
procedure start begin
end
procedure use_obj_on_p_proc begin
variable Tree;
variable Wood;
if ((obj_pid(obj_being_used_with) == PID_FIRST_TREE)
or (obj_pid(obj_being_used_with) == PID_SECOND_TREE)
or (obj_pid(obj_being_used_with) == PID_THIRD_TREE)) then begin
gfade_out(5);
Tree:=create_object(PID_TEMPLE_SKULL_POLE,tile_num(obj_being_used_with),elevation(obj_being_used_with));
destroy_object(obj_being_used_with);
game_time_advance( 30 * ONE_GAME_MINUTE );
set_global_var(GVAR_TREE_DOWN, (global_var(GVAR_TREE_DOWN) + 1 ) );
Wood:=create_object(PID_14MM_PISTOL,0,0);
add_obj_to_inven(dude_obj,Wood);
gfade_in(5);
if (global_var(GVAR_TREE_DOWN) >= 3) then begin
give_exp_points(100);
play_sfx("saloon");
set_global_var( GVAR_TREE_DOWN,0 );
end
end
end
RPÜ/German Restoration Project Tanslation
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an! <br />
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an! <br />
Ashbury wrote:P.s. Nein es ist nicht die Gewalt was mich an der Fallout Reihe gereizt hat,aber sie war immer die Kirsche auf der Sahnetorte ( Und ich will verdammt nochmal ne Kirsche oben drauf haben)
Re: Ein paar Scriptfragen.
Für die Stärke musst du nur die aktuelle Spielerstärke abfragen und diese +1 rechnen. Ist sehr einfach. Perks erstellen ist schon wieder schwieriger, aber auch nicht unmöglich. Du musst dir auf jeden Fall die anderen Perks angucken und wann ein Perk wie gesetzt wird.
/Edit: Btw. die Formatierung sieht schon viel schöner aus. :>
Code is Art.
/Edit: Btw. die Formatierung sieht schon viel schöner aus. :>
Code is Art.
Last edited by Lexx on Fri Aug 22, 2008 3:56 pm, edited 1 time in total.
only when you no-life you can exist forever, because what does not live cannot die
Re: Ein paar Scriptfragen.
Jo - auf zur nächsten Lektion: "Variablennamen"Lexx wrote: /Edit: Btw. die Formatierung sieht schon viel schöner aus. :>
Code is Art.

Konstanten - KONSTANT GROß
normale Vars - immer klein
Funktionen (Procedures) - AnfangsbuchstabenGroßundZusammenschreiben
(bei letzterem weiß ich nicht ob FO mitmacht ^^ Die API scheint zumindest nur auf Kleinschreibung zu setzen)
@Lexx
Btw - gibt es einen "offiziellen" FO-Codingstyle?
Re: Ein paar Scriptfragen.
Richtig.chewie wrote: Jo - auf zur nächsten Lektion: "Variablennamen"
Konstanten - KONSTANT GROß
normale Vars - immer klein
Normalerweise schon, aber alle p_proc Prozeduren werden bei Fallout klein geschrieben.Funktionen (Procedures) - AnfangsbuchstabenGroßundZusammenschreiben

Naja... Fallout ist recht einfach gestrickt, so viel kann man eigentlich nicht falsch machen. Wenn man immer schön einrückt (für die Übersichtlichkeit) und das oben geschriebene einhält, geht die Welt eigentlich in Ordnung. Alles andere scheint Jacke wie Hose zu sein, weil scheinbar sogar die damaligen Entwickler immer mal so geschrieben haben, wie sie gerade Lustig gewesen sind. Da ist in einem Script zum Beispiel ein langer Vorgang sehr schön abgekürzt und im nächsten Script unnötig kompliziert. Ich persönlich habe mich an den "Entwickler-Style" gewöhnt und schreibe meine Scripte genau so, wie es auch in den original Scripten zu sehen ist. Ist einfach besser, da cooler :> und außerdem hab ich mir da ja auch so gut wie alles selbst beigebracht... und das funktioniert bei mir im ersten Schritt nur über Copy&Paste und ausprobieren, ändern, ausprobieren, ändern, etc. bis das Zeug im Kopf ist.@Lexx
Btw - gibt es einen "offiziellen" FO-Codingstyle?
only when you no-life you can exist forever, because what does not live cannot die
Re: Ein paar Scriptfragen.
danke an euch für die Hilfe, dann werde ich mich mal in die BIS scripte stürzen und versuchen, es logisch abzuarbeiten und in meinen code einzufügen so das es für meine Zwecke passt!

ich versuchs zumindestens *ggg*
ALso die erste Zeile sit klar aber wozu braucht man die zweite
critter_add_trait(self_obj,TRAIT_OBJECT,OBJECT_TEAM_NUM,TEAM_DEN_SLAVER);
critter_add_trait(self_obj,TRAIT_OBJECT,OBJECT_AI_PACKET,AI_SLAVER);
ist vom metzger script
und braucht man wircklich die ganze obrige zeile? was soll das team num und so weiter?

ich versuchs zumindestens *ggg*
ALso die erste Zeile sit klar aber wozu braucht man die zweite

critter_add_trait(self_obj,TRAIT_OBJECT,OBJECT_TEAM_NUM,TEAM_DEN_SLAVER);
critter_add_trait(self_obj,TRAIT_OBJECT,OBJECT_AI_PACKET,AI_SLAVER);
ist vom metzger script
und braucht man wircklich die ganze obrige zeile? was soll das team num und so weiter?
Last edited by Mr.Wolna on Fri Aug 22, 2008 4:39 pm, edited 1 time in total.
RPÜ/German Restoration Project Tanslation
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an! <br />
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an! <br />
Ashbury wrote:P.s. Nein es ist nicht die Gewalt was mich an der Fallout Reihe gereizt hat,aber sie war immer die Kirsche auf der Sahnetorte ( Und ich will verdammt nochmal ne Kirsche oben drauf haben)
Re: Ein paar Scriptfragen.
Beim ersten wird Metzger zum Team "Den Slaver" hinzugefügt (ist nicht das, was du suchst, es sei denn, du willst den Spieler zum Sklavenhändler machen.) und beim zweiten bekommt Metzger die Slaver-AI. Soll heißen, er verhält sich im Kampf wie die Sklavenhändler.
only when you no-life you can exist forever, because what does not live cannot die
Re: Ein paar Scriptfragen.
also sind dei zwei zeilen für den arsch wa? 

RPÜ/German Restoration Project Tanslation
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an! <br />
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an! <br />
Ashbury wrote:P.s. Nein es ist nicht die Gewalt was mich an der Fallout Reihe gereizt hat,aber sie war immer die Kirsche auf der Sahnetorte ( Und ich will verdammt nochmal ne Kirsche oben drauf haben)
Re: Ein paar Scriptfragen.
Und weiter gehts, mit der procedure timer_event.
Also ich habe auf der fo modding wiki nma und den beispiel scripten nachgeschaut, und verstehe das ganze jetzt einbisschen,(auch hier im forum ist was von lexx). Trotzdem würe ich euch bzw. dir Lexx sehr verbunden wenn mir das eienr mal kurz durchkaut.
Ahja also ich brauche doppelte time events, also z.B. Critter macht eine animation, dann geht zur einen bestimmten Tile, macht dort eine animation, und geht zurück zum ausgangspunkt.. und dann beginnt alles von neuen.
Also ich habe auf der fo modding wiki nma und den beispiel scripten nachgeschaut, und verstehe das ganze jetzt einbisschen,(auch hier im forum ist was von lexx). Trotzdem würe ich euch bzw. dir Lexx sehr verbunden wenn mir das eienr mal kurz durchkaut.
Ahja also ich brauche doppelte time events, also z.B. Critter macht eine animation, dann geht zur einen bestimmten Tile, macht dort eine animation, und geht zurück zum ausgangspunkt.. und dann beginnt alles von neuen.
RPÜ/German Restoration Project Tanslation
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an! <br />
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an! <br />
Ashbury wrote:P.s. Nein es ist nicht die Gewalt was mich an der Fallout Reihe gereizt hat,aber sie war immer die Kirsche auf der Sahnetorte ( Und ich will verdammt nochmal ne Kirsche oben drauf haben)
Re: Ein paar Scriptfragen.
Starte Funktion timer_event 1, in der Prozedur timer_event:
- Wenn timer_event 1, dann
-- Wenn Critter auf Hexfeld X, dann mache Animation
--- starte timer_event 2
- Wenn timer_event 2, dann bewege Critter zu Hexfeld Y
-- Wenn Critter auf Hexfeld Y, dann mache Animation
--- starte timer_event 1
- Wenn timer_event 1, dann
-- Wenn Critter auf Hexfeld X, dann mache Animation
--- starte timer_event 2
- Wenn timer_event 2, dann bewege Critter zu Hexfeld Y
-- Wenn Critter auf Hexfeld Y, dann mache Animation
--- starte timer_event 1
only when you no-life you can exist forever, because what does not live cannot die
Re: Ein paar Scriptfragen.
joa so dachte ich das auch, bloss wie ist das nun jetzt bzw. was bedeuten die Zahlen?
die ersten beiden, also die 100, 150 das ist die Zeit, aber was soll die zwei dahinter und wie genau funktionert das, so das ich das nachvollziehen kann!procedure timed_event_p_proc begin
if(fixed_param == 1) then begin
<Aktion 1>
add_timer_event(self_obj,random(100,150),2);
end
if(fixed_param == 2) then begin
<Aktion 2>
add_timer_event(self_obj,random(100,150),2);
end
end
RPÜ/German Restoration Project Tanslation
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an! <br />
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an! <br />
Ashbury wrote:P.s. Nein es ist nicht die Gewalt was mich an der Fallout Reihe gereizt hat,aber sie war immer die Kirsche auf der Sahnetorte ( Und ich will verdammt nochmal ne Kirsche oben drauf haben)
Re: Ein paar Scriptfragen.
Mit den Zahlen sprichst du deine fixed_param an. So wie du das oben zu stehen hast, wird niemals etwas passieren, da die Aktionen gar nicht aufgerufen werden.
Du brauchst irgend ein auslösendes Ereignis. Zum Beispiel das laden einer Map oder so. Dann sagst du zum Beispiel im Script des Critters, wenn Map geladen, dann add_timer_event(...,1). Damit wird die timed_event_p_proc aufgerufen, sobald die Map geladen wird. Die 1 sagt, dass fixed_param == 1 gemeint ist, welcher dann nach deiner angegebenen Zufallszeit (100,150) abgespielt wird.
Wenn du jetzt eine Schleife machen willst, musst du im Vorgang von fixed_param == 1 das add_timer_event(...,2) noch erwähnen und unter den Aktionen von fixed_param == 2 wieder add_timer_event(...,1). Das erzeugt die Endlosschleife.
Du setzt also in der on_map_load (ist das richtig? Habs jetzt nicht im Kopf) das add_timer_event 1 rein und sprichst damit die timed_event_p_proc an. Danach wird alles nur noch in der timed_event_p_proc gemacht.
Du brauchst irgend ein auslösendes Ereignis. Zum Beispiel das laden einer Map oder so. Dann sagst du zum Beispiel im Script des Critters, wenn Map geladen, dann add_timer_event(...,1). Damit wird die timed_event_p_proc aufgerufen, sobald die Map geladen wird. Die 1 sagt, dass fixed_param == 1 gemeint ist, welcher dann nach deiner angegebenen Zufallszeit (100,150) abgespielt wird.
Wenn du jetzt eine Schleife machen willst, musst du im Vorgang von fixed_param == 1 das add_timer_event(...,2) noch erwähnen und unter den Aktionen von fixed_param == 2 wieder add_timer_event(...,1). Das erzeugt die Endlosschleife.
Du setzt also in der on_map_load (ist das richtig? Habs jetzt nicht im Kopf) das add_timer_event 1 rein und sprichst damit die timed_event_p_proc an. Danach wird alles nur noch in der timed_event_p_proc gemacht.
Last edited by Lexx on Wed Aug 27, 2008 8:55 am, edited 1 time in total.
only when you no-life you can exist forever, because what does not live cannot die
Re: Ein paar Scriptfragen.
stop...stop...stop, nicht so schnell. Also muss ich noch was in die map_enter _p_proc, reinschreiben?
Hab alles bis auf die Endlosschleife kapiert -.- Also was sollen nochmal die Zahlen am Ende? ich dachte, das ist die Defenation der timer_events, also wenn == 1, dann die aktiob die unter add_timer_event(...,1) steht, wenn == 2, dann add_timer_event(self_obj,random(100,150),2); und so weiter.
Hab alles bis auf die Endlosschleife kapiert -.- Also was sollen nochmal die Zahlen am Ende? ich dachte, das ist die Defenation der timer_events, also wenn == 1, dann die aktiob die unter add_timer_event(...,1) steht, wenn == 2, dann add_timer_event(self_obj,random(100,150),2); und so weiter.
Last edited by Mr.Wolna on Wed Aug 27, 2008 9:03 am, edited 1 time in total.
RPÜ/German Restoration Project Tanslation
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an! <br />
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an! <br />
Ashbury wrote:P.s. Nein es ist nicht die Gewalt was mich an der Fallout Reihe gereizt hat,aber sie war immer die Kirsche auf der Sahnetorte ( Und ich will verdammt nochmal ne Kirsche oben drauf haben)
Re: Ein paar Scriptfragen.
In der map_enter_p_proc Prozedur des Critters setzt du zum Beispiel das rein:
In der timed_event_p_proc Prozedur dann das:
Was passiert hier:
Die Map wird geladen und der add_timer_event wird aufgerufen. Jetzt wird die angegebene Zufallszeit abgewartet (bei dir Werte von 100 bis 150). Ist die zufällig gewählte Zeit abgelaufen, ist die Nummer dahinter dran. Mit der add_timer_event(self_obj,random(100,150),2); rufst du die fixed_param 2 in der timed_event_p_proc Prozedur auf.
Für die Schleife ist wichtig, dass hier wieder "add_timer_event(self_obj,random(100,150),1);" drin steht, damit die timed_event_p_proc Prozedur wieder nach der Zeit 100 bis 150 aufgerufen wird und fixed_param 1 abspielt.
Du musst die Funktion auch nicht zwangsweise über die map_enter_p_proc starten. Es könnte auch passieren, wenn du den Critter ansprichst, wenn du ein Objekt mit dem Critter benutzt, usw. Du kannst das Event quasi überall aufrufen.
Wenn du aber zum Beispiel eine patroullierende Wache erstellen willst, empfiehlt es sich, timed_event_p_proc über map_enter_p_proc aufzurufen, etc. etc.
Code: Select all
add_timer_event(self_obj,random(100,150),1);
Code: Select all
if(fixed_param == 1) then begin
<Aktion 1>
add_timer_event(self_obj,random(100,150),2);
end
Die Map wird geladen und der add_timer_event wird aufgerufen. Jetzt wird die angegebene Zufallszeit abgewartet (bei dir Werte von 100 bis 150). Ist die zufällig gewählte Zeit abgelaufen, ist die Nummer dahinter dran. Mit der add_timer_event(self_obj,random(100,150),2); rufst du die fixed_param 2 in der timed_event_p_proc Prozedur auf.
Code: Select all
if(fixed_param == 2) then begin
<Aktion 2>
add_timer_event(self_obj,random(100,150),1);
end
Du musst die Funktion auch nicht zwangsweise über die map_enter_p_proc starten. Es könnte auch passieren, wenn du den Critter ansprichst, wenn du ein Objekt mit dem Critter benutzt, usw. Du kannst das Event quasi überall aufrufen.
Wenn du aber zum Beispiel eine patroullierende Wache erstellen willst, empfiehlt es sich, timed_event_p_proc über map_enter_p_proc aufzurufen, etc. etc.
Last edited by Lexx on Wed Aug 27, 2008 9:07 am, edited 1 time in total.
only when you no-life you can exist forever, because what does not live cannot die