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  

 

 Levelabbrecher

Nach unten 
+4
Stephan Borgs
Tackleberry
Wipfmagus
Killer Zap
8 verfasser
AutorNachricht
Killer Zap
Brigadegeneral
Brigadegeneral
Killer Zap


Männlich Alter : 29
Anmeldedatum : 21.02.10

Levelabbrecher Empty
BeitragThema: Levelabbrecher   Levelabbrecher EmptySa Apr 17, 2010 5:54 pm

Hallo,

Ich entwikele zu zeit ein Level und komme nicht weiter weil ich eine Sache einfach nicht hinkriege. scratch
Ich mochte, dass das Level sich beendet sobald ein Object mit einer beschtimten ID nicht mehr da ist, dabei sollen dann aber alle Spieler Verloren haben also nichts mit GameOver().
(Eingebaut ins Levelscript)

als sowas wie:

Zitat :
if(Object(_ID_)nicht da){

Level verloren

}

Oder auch als Schleife ect.

Antworten bitte mit beispiel

Mfg Killer Zap
Nach oben Nach unten
Wipfmagus
Konteradmiral
Konteradmiral
Wipfmagus


Weiblich Alter : 28
Anmeldedatum : 06.03.10

Levelabbrecher Empty
BeitragThema: Re: Levelabbrecher   Levelabbrecher EmptySa Apr 17, 2010 6:21 pm

Wenn das Objekt eine Lore ist:
Code:

func Check()
{
if(!FindObject(LORY))
 for(var plr;GetPlayerCount();plr++)
  EliminatePlayer(plr);
}
Das müsste es tun. Natürlich muss die entsprechende Funktion noch per Scriptzählertimer, TimerCall oder ActMap aufgerufen werden.
[Edit] Ich hatte in meinem Beispiel ursprünglich eine Hütte vorgesehen, dann hatte ich es aber in eine Lore verändert, im Script allerdings vergessen, diese Änderung vorzunehmen... Embarassed jetzt ist es korrigiert.


Zuletzt von Wipfmagus am Sa Apr 17, 2010 11:59 pm bearbeitet; insgesamt 5-mal bearbeitet
Nach oben Nach unten
Tackleberry
Leutnant
Leutnant
Tackleberry


Männlich Anmeldedatum : 29.04.09

Levelabbrecher Empty
BeitragThema: Re: Levelabbrecher   Levelabbrecher EmptySa Apr 17, 2010 10:03 pm

HUT3 ist aber eine Steinhütte (afair) und eine Lore ist LORY. Ansonsten, ja.
Nach oben Nach unten
Stephan Borgs
Kadett
Kadett
Stephan Borgs


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

Levelabbrecher Empty
BeitragThema: Re: Levelabbrecher   Levelabbrecher EmptySa Apr 17, 2010 10:55 pm

Da hat sich Wipfmagus wohl einfach nur vertan.

Vtl. aus nem Sceen kopiert und nicht auf'e ID geachtet, aber schön kurz und knapp Wipfmagus.
Ich hab's gerne genau, aber kurz. Razz
Nach oben Nach unten
Killer Zap
Brigadegeneral
Brigadegeneral
Killer Zap


Männlich Alter : 29
Anmeldedatum : 21.02.10

Levelabbrecher Empty
BeitragThema: Re: Levelabbrecher   Levelabbrecher EmptySo Apr 18, 2010 3:04 pm

Kann ich das auch wie in c++ in eine Endlosschleife einbinden?



Zitat :
func Check()
{
if(!FindObject(LORY)){
for(var plr;GetPlayerCount();plr++)
EliminatePlayer(plr);
break;}
}


while(true){

func Check();

}
Nach oben Nach unten
NilsZ
Admiral
Admiral



Männlich Ort : Mein Rekord: 27 Punkte! :D
Anmeldedatum : 07.08.08

Levelabbrecher Empty
BeitragThema: Re: Levelabbrecher   Levelabbrecher EmptySo Apr 18, 2010 4:14 pm

Mach besser keine Endlosschleife sonst geht das Spiel enorm langsam.
schreib besser in die Initialize Funktion:
Code:

ScriptGo(1);

damit aktivierst du die Scriptzählung im Szenario. So werden alle Funktionen die Script*() heißen aufgerufen. das * steht dabei für die Anzahl der Zeit die vergehen muss, bis der Script aufgerufen wird. Beispiel:
Code:

func Script3()
{
 Check();
 goto(1); // Damit springt der Zähler immer wieder auf 1 zurück, somit auch eine endlosschleife aber nicht so schnell wie while.
}

Aber Achtung das ganze geht wirklich nur im Szenraioskript!!!
Nach oben Nach unten
Killer Zap
Brigadegeneral
Brigadegeneral
Killer Zap


Männlich Alter : 29
Anmeldedatum : 21.02.10

Levelabbrecher Empty
BeitragThema: Re: Levelabbrecher   Levelabbrecher EmptySo Apr 18, 2010 4:20 pm

Aber ich benutze ScriptGo(1); schon für was anderes und goto(1); würde das ganze level versaun. (Es seihe denn, du weist wie man sonst nach einer halben stunde das spiel gewint)
Nach oben Nach unten
NilsZ
Admiral
Admiral



Männlich Ort : Mein Rekord: 27 Punkte! :D
Anmeldedatum : 07.08.08

Levelabbrecher Empty
BeitragThema: Re: Levelabbrecher   Levelabbrecher EmptySo Apr 18, 2010 4:22 pm

hmm achso. Dann würde ich wirklich ein Objekt machen mit Timer.
Nach oben Nach unten
Killer Zap
Brigadegeneral
Brigadegeneral
Killer Zap


Männlich Alter : 29
Anmeldedatum : 21.02.10

Levelabbrecher Empty
BeitragThema: Re: Levelabbrecher   Levelabbrecher EmptySo Apr 18, 2010 4:47 pm

da ha ich auch keine ahnung von kanst du mir das bitte mal machen?
Nach oben Nach unten
Bowserkoopa
Staatsrat
Staatsrat
Bowserkoopa


Männlich Alter : 30
Anmeldedatum : 21.12.08

Levelabbrecher Empty
BeitragThema: Re: Levelabbrecher   Levelabbrecher EmptySo Apr 18, 2010 7:12 pm

Dazu haben wird doch glaub auch ein Tutorial? Ein Timer ist im Prinzip ziemlich simpel wenn man ihn versteht. Ich würde mir mal die Eintrage
Timer=
TimerCall=
in der DefCore anschauen.
Nach oben Nach unten
Elfangor
General
General
Elfangor


Männlich Alter : 32
Ort : Mainz
Anmeldedatum : 26.06.08

Levelabbrecher Empty
BeitragThema: Re: Levelabbrecher   Levelabbrecher EmptySo Apr 18, 2010 9:39 pm

Was spricht denn bitte gegen diese Methode?

Code:

#strict 2

public func Initialize()
{
Check();
}

public func Check(){

    while(true){
    if(!FindObject(LORY)){
      for(var plr;GetPlayerCount();plr++)
        EliminatePlayer(plr);
        }

  }
}


Zuletzt von Elfangor am So Apr 18, 2010 11:17 pm bearbeitet; insgesamt 1-mal bearbeitet
Nach oben Nach unten
http://www.m-w-c.de.vu
Extremclonk
Staatsrat
Staatsrat
Extremclonk


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

Levelabbrecher Empty
BeitragThema: Re: Levelabbrecher   Levelabbrecher EmptySo Apr 18, 2010 9:51 pm

Die while-Schleife in deinem Beispiel würde wohl ewig weitergehen und die Engine töten. Man müsste wenn schon noch was wie break benutzen, ich weiß aber nicht ob das auch bei while Schleifen geht.
Nach oben Nach unten
Elfangor
General
General
Elfangor


Männlich Alter : 32
Ort : Mainz
Anmeldedatum : 26.06.08

Levelabbrecher Empty
BeitragThema: Re: Levelabbrecher   Levelabbrecher EmptySo Apr 18, 2010 11:18 pm

Code:

public func Check(){

  var schalter = true;

    while(schalter){
    if(!FindObject(LORY)){
      for(var plr;GetPlayerCount();plr++)
        EliminatePlayer(plr);
        schalter = false;
        }

  }

So würde das gehen. Aber das ist egal. Wenn keine Spieler mehr vorhanden sind beendet das Spiel ohnehin. Und da
Code:
      for(var plr;GetPlayerCount();plr++)
        EliminatePlayer(plr);
sowieso alle Spieler killt ist das okay so.
Nach oben Nach unten
http://www.m-w-c.de.vu
Wipfmagus
Konteradmiral
Konteradmiral
Wipfmagus


Weiblich Alter : 28
Anmeldedatum : 06.03.10

Levelabbrecher Empty
BeitragThema: Re: Levelabbrecher   Levelabbrecher EmptyMo Apr 19, 2010 12:42 am

Killer Zap schrieb:
Aber ich benutze ScriptGo(1); schon für was anderes und goto(1); würde das ganze level versaun. (Es seihe denn, du weist wie man sonst nach einer halben stunde das spiel gewint)
Hmm. Du willst, dass man nach einer halben Stunde das Spiel gewinnt, dass ein bestimmtes Objekt nicht kaputtgehen darf und so weiter... Idea
Lass mich raten: Es geht um einen kooperativen Flintregen oder eine KI-Belagerung? Very Happy
Nach oben Nach unten
NilsZ
Admiral
Admiral



Männlich Ort : Mein Rekord: 27 Punkte! :D
Anmeldedatum : 07.08.08

Levelabbrecher Empty
BeitragThema: Re: Levelabbrecher   Levelabbrecher EmptyMo Apr 19, 2010 12:44 pm

@Elfangor: natürlich würde das so gehen, aber while prüfts ja jede Milisekunde und dadurch gehen die FPS natürlich auf 1 zurück. Und bei schnelleren PCs prüft es ja noch öfter. Teste es einfach mal.
Nach oben Nach unten
Killer Zap
Brigadegeneral
Brigadegeneral
Killer Zap


Männlich Alter : 29
Anmeldedatum : 21.02.10

Levelabbrecher Empty
BeitragThema: Re: Levelabbrecher   Levelabbrecher EmptyMo Apr 19, 2010 4:24 pm

Danke leute ihr wart eine große Hilfe vorallem NilsZ (auch wen seine gepostete Funktion ein par Bugs hat)

Ich habe mir ein Timer Object gebaut.

@Wipfmagus
So ne art KI belagerung

Ich werde noch nen Beschreibingstext und eine Titelgrafik machen und dann kann ich es ja ins Uploadportal stellen. Very Happy
Nach oben Nach unten
NilsZ
Admiral
Admiral



Männlich Ort : Mein Rekord: 27 Punkte! :D
Anmeldedatum : 07.08.08

Levelabbrecher Empty
BeitragThema: Re: Levelabbrecher   Levelabbrecher EmptyMo Apr 19, 2010 5:49 pm

Killer Zap schrieb:
Danke leute ihr wart eine große Hilfe vorallem NilsZ (auch wen seine gepostete Funktion ein par Bugs hat)

Gut, ich hab halt aus dem Stegreif gescriptet Wink normal scripte ich immer wenn ich nebenbei die OnlineDoku offen habe. Hab gerne geholfen cheers
Nach oben Nach unten
Gesponserte Inhalte





Levelabbrecher Empty
BeitragThema: Re: Levelabbrecher   Levelabbrecher Empty

Nach oben Nach unten
 
Levelabbrecher
Nach oben 
Seite 1 von 1

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