Alter : 29 Ort : Duisburg Meiderich Anmeldedatum : 09.03.10
Thema: Finde Objekte Fr März 19, 2010 11:51 pm
Ich möchte gerne mal wissen, wie man ein Spielziel erstellt, das bewirkt, dass man im Spiel ein Objekt/Objekte finden muss um halt zu gewinnen.
Danke im Vorraus
Wipfmagus Konteradmiral
Alter : 28 Anmeldedatum : 06.03.10
Thema: Re: Finde Objekte Sa März 20, 2010 1:27 am
Was meinst du mit "finden"? Entdecken, einsammeln, verkaufen, essen, werfen, materialjumpen? Was genau soll man tun, um zu gewinnen?
Extremclonk Staatsrat
Ort : Am Anti-Spam-Limes Anmeldedatum : 19.01.09
Thema: Re: Finde Objekte Sa März 20, 2010 2:47 am
Wenn es sich um ein spezifisches Objekt (z.B. ein Artefakt) das gefunden werden muss kann man GameOver() aufrufen wenn dieses aufgehoben (Entrance()) wird.
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Finde Objekte Sa März 20, 2010 5:30 pm
Also so ein spielziel wie bei de ersten Mission (Alle Schädel einsammeln)? Theoretisch musst du nur das Spielziel kopieren und im Scirpt die ID ändern von dem Gegenstand der gesucht werden muss.
Stephan Borgs Kadett
Alter : 29 Ort : Duisburg Meiderich Anmeldedatum : 09.03.10
Thema: Re: Finde Objekte Sa März 20, 2010 11:23 pm
Also ich dachte da an Objekte verkaufen.
Extremclonk Staatsrat
Ort : Am Anti-Spam-Limes Anmeldedatum : 19.01.09
Thema: Re: Finde Objekte Sa März 20, 2010 11:38 pm
Das Spielziel von dem Gamer spricht ist Objekte verkaufen. Schau dir das mal an, versuch es entsprechend zu ändern, sollten dabei konkrete Fragen auftreten kannst du ja einen Post erstellen.
Stephan Borgs Kadett
Alter : 29 Ort : Duisburg Meiderich Anmeldedatum : 09.03.10
Thema: Re: Finde Objekte So März 21, 2010 12:20 am
Mann, ich finde die id des zu findenden Objekts im script des Spielziels nicht. Kann mir jemand helfen?
Code:
/*-- Objekte entfernen --*/
#strict #include GOAL
/* Array für zu erschaffende Objekte */
local removeTypes; local currentTypes;
local removeType0, removeCount0, currentCount0; local removeType1, removeCount1, currentCount1; local removeType2, removeCount2, currentCount2; local removeType3, removeCount3, currentCount3; local removeType4, removeCount4, currentCount4; local removeType5, removeCount5, currentCount5; local removeType6, removeCount6, currentCount6; local removeType7, removeCount7, currentCount7; local removeType8, removeCount8, currentCount8; local removeType9, removeCount9, currentCount9;
public func IsFulfilled() { // Typen überprüfen currentTypes = 0; for (var i = 0; i < removeTypes; i++) { // Derzeitige Anzahl mit Zielanzahl vergleichen var targetCount = GetArray("removeCount", i); var currentCount = ObjectCount(GetArray("removeType", i), 0,0,0,0, OCF_Fullcon()); if (currentCount > targetCount) currentTypes++; // Derzeitige Anzahl zwischenspeichern SetArrayInt("currentCount", i, currentCount); } // Es sind noch Objekte zu entfernen return(currentTypes == 0); }
protected func Activate(iPlayer) { // Erfüllt if (IsFulfilled()) return(MessageWindow(Format("$MsgGoalFulfilled$"), iPlayer)); // Noch nicht erfüllt var menuObject = GetCursor(iPlayer); CreateMenu(GetID(), menuObject, this(), 0, GetName()); for (var i = 0; i < removeTypes; i++) { var idType = GetArray("removeType", i); var iCount = GetArray("currentCount", i) - GetArray("removeCount", i); if (iCount > 0) AddMenuItem(GetName(), "MenuClosed", idType, menuObject, iCount, 0, Format("$MsgGoalTodo$", iCount, GetName(0, idType))); } // Fertig return(1); }
public func MenuClosed() { return(1); }
Extremclonk Staatsrat
Ort : Am Anti-Spam-Limes Anmeldedatum : 19.01.09
Thema: Re: Finde Objekte So März 21, 2010 12:36 am
Bessere Idee: Die Objekte rufen die Funktion Sale() auf wenn sie verkauft werden. In die Funktion schreibst du dann z.B. "GameCall("Sold");". Dann machst du in dem Scenarioscript noch eine static, nennen wir sie iCount. In die Initialize des Scenscripts schreibst du iCount = X. Statt X schreibst du die Anzahl der Objekte die Verkauft werden müssen. Nun brauchen wir nurnoch die Funktion Sold. Die könnte so aussehen:
Code:
func Sold( { iCount--; if(!iCount) GameOver(); }
Lord Helmchen Fregattenkapitän
Alter : 30 Ort : In einem Dorf in Baden Anmeldedatum : 28.10.09
Thema: Re: Finde Objekte So März 21, 2010 2:31 am
oder du schaust dir das spielziel wipferetten an da musst du ja auch wipfe verkaufen
Wipfmagus Konteradmiral
Alter : 28 Anmeldedatum : 06.03.10
Thema: Re: Finde Objekte So März 21, 2010 1:39 pm
Eigentlich kannst du einfach
Code:
IsFulfilled() { return !FindObject(id); }
für die Zielsteuerung benutzen und in die Activate()-Funktion nur die allgemeine Beschreibung des Ziels setzen. Das ist nicht sehr komfortabel, aber einfach und es funktioniert.
Stephan Borgs Kadett
Alter : 29 Ort : Duisburg Meiderich Anmeldedatum : 09.03.10
Thema: Re: Finde Objekte So März 21, 2010 4:12 pm
Sind also diese zwei Zeilen der komplette Script?
Wipfmagus Konteradmiral
Alter : 28 Anmeldedatum : 06.03.10
Thema: Re: Finde Objekte So März 21, 2010 5:53 pm
Theoretisch schon... benötigt wird aber auch noch das, was in jedem Ziel-oder Regelscript ohne die Angabe besonderer Inhalte steht:
Diese Funktion gibt bei einem Aufruf des Ziels im Spielermenü die Beschreibung aus - das kennst du sicherlich schon von vielen Regeln.
Extremclonk Staatsrat
Ort : Am Anti-Spam-Limes Anmeldedatum : 19.01.09
Thema: Re: Finde Objekte So März 21, 2010 7:19 pm
Was Wipfmagus vorschlägt hat allerdings nur die Voraussetzung das alle Objekte verschwunden sind, ob man sie aus dem Bildschrimrand wirft, sprengt, isst, anzündet oder verkauft ist wurst. Daher mussman sich hier vorher natürlich überlgegen welche Art von Objekte man hat.
Stephan Borgs Kadett
Alter : 29 Ort : Duisburg Meiderich Anmeldedatum : 09.03.10
Thema: Re: Finde Objekte So März 21, 2010 7:45 pm
Die Idee von Wipfmagus ist schon das, was ich mir vorstelle. Trotzdem danke für die Info Extremclonk.