CNDG
Würden Sie gerne auf diese Nachricht reagieren? Erstellen Sie einen Account in wenigen Klicks oder loggen Sie sich ein, um fortzufahren.


Ein Forum, in dem sich neue Clonk Entwickler untereinander austauschen können.
 
StartseiteStartseite  PortalPortal  SuchenSuchen  Neueste BilderNeueste Bilder  AnmeldenAnmelden  LoginLogin  

 

 Finde Objekte

Nach unten 
5 verfasser
AutorNachricht
Stephan Borgs
Kadett
Kadett
Stephan Borgs


Männlich Alter : 29
Ort : Duisburg Meiderich
Anmeldedatum : 09.03.10

Finde Objekte Empty
BeitragThema: Finde Objekte   Finde Objekte EmptyFr 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 Razz
Nach oben Nach unten
Wipfmagus
Konteradmiral
Konteradmiral
Wipfmagus


Weiblich Alter : 28
Anmeldedatum : 06.03.10

Finde Objekte Empty
BeitragThema: Re: Finde Objekte   Finde Objekte EmptySa 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?
Nach oben Nach unten
Extremclonk
Staatsrat
Staatsrat
Extremclonk


Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

Finde Objekte Empty
BeitragThema: Re: Finde Objekte   Finde Objekte EmptySa 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.
Nach oben Nach unten
Gamer
Staatsrat
Staatsrat
Gamer


Männlich Alter : 28
Ort : In einem kleinen Dorf in Unterfranken (Bayern)
Anmeldedatum : 10.02.09

Finde Objekte Empty
BeitragThema: Re: Finde Objekte   Finde Objekte EmptySa 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.
Nach oben Nach unten
http://www.gamer95.npage.de/
Stephan Borgs
Kadett
Kadett
Stephan Borgs


Männlich Alter : 29
Ort : Duisburg Meiderich
Anmeldedatum : 09.03.10

Finde Objekte Empty
BeitragThema: Re: Finde Objekte   Finde Objekte EmptySa März 20, 2010 11:23 pm

Also ich dachte da an Objekte verkaufen.
Nach oben Nach unten
Extremclonk
Staatsrat
Staatsrat
Extremclonk


Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

Finde Objekte Empty
BeitragThema: Re: Finde Objekte   Finde Objekte EmptySa 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.
Nach oben Nach unten
Stephan Borgs
Kadett
Kadett
Stephan Borgs


Männlich Alter : 29
Ort : Duisburg Meiderich
Anmeldedatum : 09.03.10

Finde Objekte Empty
BeitragThema: Re: Finde Objekte   Finde Objekte EmptySo 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;

/* Array-Funktionen */

private func GetArray(strVariable, iIndex)
{
  return (eval(Format("%s%d", strVariable, iIndex)));
}

private func SetArrayInt(strVariable, iIndex, iValue)
{
  return (eval(Format("%s%d = %d", strVariable, iIndex, iValue)));
}

private func SetArrayId(strVariable, iIndex, idValue)
{
  return (eval(Format("%s%d = %i", strVariable, iIndex, idValue)));
}

//! Fügt einen zu entfernenden Objekttyp samt zu Ziel-Anzahl diesem Spielziel hinzu.

private func AddType(idType, iCount)
{
  SetArrayId("removeType", removeTypes, idType);
  SetArrayInt("removeCount", removeTypes, iCount);
  removeTypes++;
}
       
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); 
}
Nach oben Nach unten
Extremclonk
Staatsrat
Staatsrat
Extremclonk


Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

Finde Objekte Empty
BeitragThema: Re: Finde Objekte   Finde Objekte EmptySo 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();
}
Nach oben Nach unten
Lord Helmchen
Fregattenkapitän
Fregattenkapitän
Lord Helmchen


Männlich Alter : 30
Ort : In einem Dorf in Baden
Anmeldedatum : 28.10.09

Finde Objekte Empty
BeitragThema: Re: Finde Objekte   Finde Objekte EmptySo März 21, 2010 2:31 am

oder du schaust dir das spielziel wipferetten an da musst du ja auch wipfe verkaufen
Nach oben Nach unten
Wipfmagus
Konteradmiral
Konteradmiral
Wipfmagus


Weiblich Alter : 28
Anmeldedatum : 06.03.10

Finde Objekte Empty
BeitragThema: Re: Finde Objekte   Finde Objekte EmptySo 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.
Nach oben Nach unten
Stephan Borgs
Kadett
Kadett
Stephan Borgs


Männlich Alter : 29
Ort : Duisburg Meiderich
Anmeldedatum : 09.03.10

Finde Objekte Empty
BeitragThema: Re: Finde Objekte   Finde Objekte EmptySo März 21, 2010 4:12 pm

Sind also diese zwei Zeilen der komplette Script?
Nach oben Nach unten
Wipfmagus
Konteradmiral
Konteradmiral
Wipfmagus


Weiblich Alter : 28
Anmeldedatum : 06.03.10

Finde Objekte Empty
BeitragThema: Re: Finde Objekte   Finde Objekte EmptySo 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:
Code:
protected func Activate(iByPlayer)
{
  MessageWindow(GetDesc(), iByPlayer);
  return(1);
}
Diese Funktion gibt bei einem Aufruf des Ziels im Spielermenü die Beschreibung aus - das kennst du sicherlich schon von vielen Regeln.
Nach oben Nach unten
Extremclonk
Staatsrat
Staatsrat
Extremclonk


Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

Finde Objekte Empty
BeitragThema: Re: Finde Objekte   Finde Objekte EmptySo 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.
Nach oben Nach unten
Stephan Borgs
Kadett
Kadett
Stephan Borgs


Männlich Alter : 29
Ort : Duisburg Meiderich
Anmeldedatum : 09.03.10

Finde Objekte Empty
BeitragThema: Re: Finde Objekte   Finde Objekte EmptySo 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.

Werds testen
Nach oben Nach unten
Gesponserte Inhalte





Finde Objekte Empty
BeitragThema: Re: Finde Objekte   Finde Objekte Empty

Nach oben Nach unten
 
Finde Objekte
Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Finde den fehler selbst nicht...
» Objekte in der Erde finden
» Wichtige Scriptbefehle
» Alle Objekte drehen

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
CNDG :: Sonstiges :: Scripthilfe-
Gehe zu: