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  

 

 Fehlerhafte Platzierung von Objekten

Nach unten 
2 verfasser
AutorNachricht
Fresserpflänzli
Clonk
Clonk
Fresserpflänzli


Männlich Anmeldedatum : 26.08.10

Fehlerhafte Platzierung von Objekten Empty
BeitragThema: Fehlerhafte Platzierung von Objekten   Fehlerhafte Platzierung von Objekten EmptyDo Aug 26, 2010 3:01 pm

Hi

Ich versuche seit einiger Zeit per Szenario-script Objekte für verfeindete Teams zu platzieren. Nun aber funktioniert das Beispielweise nicht, wenn 2 Spieler mitmachen, wenn jedoch nur ein Spieler es spielt, und denn anderen per Spielerbeitritt joinen lässt, steht alles bis auf die Flaggen am Platz.
Der Script wirkt noch ein wenig zusammengestückelt, das kommt zum Teil vom Übernehmen des (fast) gleichnamigen Szen aus dem Originalpack, zum anderen sortiere ich meine dazugeschriebene Scripts erst, wenn sie fertig sind Rolling Eyes
Code:
#strict

func Initialize()
{
  // Flatten village area for train operation
  DigFreeRect(3700,300,300,10);
  DigFreeRect(320,300,300,10);
  // Create initial bridge segement
  CreateObject(BRDG,650,320,-1);
  CreateObject(BRDG,3750,320,-1);
  // Create train
  ObjectSetAction( CreateObject(STMG,450,309,-1),
                  "Push",
                  CreateObject(WAGN,425,309,0) );
  ObjectSetAction( CreateObject(STMG,3825,309,-1),
                  "Push",
                  CreateObject(WAGN,3850,309,0) );
  // Parallax sky
  SetSkyParallax(0,20,10);
  // Mission password
  FindObject(GLDM)->SetMissionAccess("RattledOut");
  // Done
  return(1);
}

static g_fInitializedPlayers;

func InitializePlayer(int iPlr)
{
  // Der erste Spieler bekommt ein Brückensegment in die Werkstatt. :)
  if (GetPlayerCount() == 1 && !g_fInitializedPlayers)
  {
    var pHut = CreateConstruction(HUT3, 4236, 310, iPlr, 100, 1);
        pHut->CreateContents(WOOD);
    var pHut = CreateConstruction(HUT3, 156, 310, iPlr, 100, 1);
        pHut->CreateContents(WOOD);
    CreateContents(FLAG,GetCrew(iPlr));
    var pWindMill = CreateConstruction(WMIL, 4192, 310, iPlr, 100, 1);
    var pWindMill = CreateConstruction(WMIL, 202, 310, iPlr, 100, 1);
    var pWorkshop = CreateConstruction(WRKS, 4300, 310, iPlr, 100, 1);
    var pWorkshop = CreateConstruction(WRKS, 90, 310, iPlr, 100, 1);
    CreateConstruction(FNDR, 4148, 310, iPlr, 100, 1);
    CreateConstruction(FNDR, 268, 310, iPlr, 100, 1);
    g_fInitializedPlayers = 1;
  }
    //Damit jeder Startet wo er soll
{
  if(GetPlayerTeam(iPlr) == 1)
    SetPosition(160,300,GetHiRank(Par()));
  if(GetPlayerTeam(iPlr) == 2)
    SetPosition(4236,300,GetHiRank(Par()));
  return(1);
}
}

Noch dazu zufügen wäre die Errormeldúng von der Engine im Editormodus.
Zitat :
ERROR: Object call: target is zero!
by: Initialize() (RattleHill.c4s\Script.c:23)
Da ich aber nicht weiss, welches Ziel Null ist, bringt sie mir herzlich wenig.
Ich bin dankbar für jede Antwort

Nach oben Nach unten
Limeox
Admiral
Admiral
Limeox


Männlich Anmeldedatum : 25.04.10

Fehlerhafte Platzierung von Objekten Empty
BeitragThema: Re: Fehlerhafte Platzierung von Objekten   Fehlerhafte Platzierung von Objekten EmptyDo Aug 26, 2010 3:13 pm

Zitat :
FindObject(GLDM)->SetMissionAccess("RattledOut");
Da wird wohl der Error herkommen, zumindest glaube ich kaum dass du das Ziel Goldmine mit Melee kombinierst. Es findet kein Objekt "GLDM" (Spielziel Goldmine) und verursacht daher einen Fehler.

Laut Script bekommt immer nur der erste Spieler eine Flagge, der if-Block wird ja nur ausgeführt wenn es nur einen Spieler gibt und er noch nie ausgeführt wurde.
Nach oben Nach unten
Fresserpflänzli
Clonk
Clonk
Fresserpflänzli


Männlich Anmeldedatum : 26.08.10

Fehlerhafte Platzierung von Objekten Empty
BeitragThema: Re: Fehlerhafte Platzierung von Objekten   Fehlerhafte Platzierung von Objekten EmptyDo Aug 26, 2010 9:19 pm

Au, stimmt, hab ich übersehen. >_<
Jedenfalls hab ich nun
Zitat :
FindObject(GLDM)->SetMissionAccess("RattledOut");
rausgeschmissen,
Zitat :
if (GetPlayerCount() == 1 && !g_fInitializedPlayers)
auch raus, damit wird das lästige "nur 1 Spieler" ausgeschaltet.
Hab ich auch entfernt, nun funktioniert alles, leider für jeden Spieler einmal, das heisst, bei 6 Spieler stehen dann 6 Windmühlen auf der gleichen Position, sieht zwar lustig aus, aber ich brauch das nur einmalig.
Eigentlich habe ich Geldpunkte mit Wettstreit kombiniert, plus Team.txt, sollte eigentlich ein Wettsiedeln werden, gemischt mit Basenmeele Wink
Nach oben Nach unten
Limeox
Admiral
Admiral
Limeox


Männlich Anmeldedatum : 25.04.10

Fehlerhafte Platzierung von Objekten Empty
BeitragThema: Re: Fehlerhafte Platzierung von Objekten   Fehlerhafte Platzierung von Objekten EmptyDo Aug 26, 2010 10:01 pm

Du kannst das Ganze auch einmalig in Initialize oder per Objects.txt platzieren und nicht pro Spieler.
Nach oben Nach unten
Fresserpflänzli
Clonk
Clonk
Fresserpflänzli


Männlich Anmeldedatum : 26.08.10

Fehlerhafte Platzierung von Objekten Empty
BeitragThema: Re: Fehlerhafte Platzierung von Objekten   Fehlerhafte Platzierung von Objekten EmptyDo Aug 26, 2010 10:18 pm

>Objects.txt platzieren und nicht pro Spieler.
Fehlerhafte Platzierung von Objekten 411672
OMFG, darauf hätte ich selbst kommen können X_X
Danke vielmals für die (eigentlich selbsterklärende) Lösung
Nach oben Nach unten
Gesponserte Inhalte





Fehlerhafte Platzierung von Objekten Empty
BeitragThema: Re: Fehlerhafte Platzierung von Objekten   Fehlerhafte Platzierung von Objekten Empty

Nach oben Nach unten
 
Fehlerhafte Platzierung von Objekten
Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Anzahl von Objekten Abfragen
» Objekte an anderen Objekten fixieren
» Attach-Problem zwischen Objekten
» Beim Werfen von schweren Objekten Sound erzeugen

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