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

Austausch | 
 

 Objekt soll ständig "SetRDir(5)" aufrufen?

Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach unten 
AutorNachricht
snowtiger11
General
General
avatar

Männlich Alter : 20
Ort : Im Königreich Mankel
Anmeldedatum : 17.04.09

BeitragThema: Objekt soll ständig "SetRDir(5)" aufrufen?   Di Feb 08, 2011 6:00 pm

Hallo,
Wie sollte der Script lauten damit sich Objekte ständig drehen?
Code:
func Initalize()
{
  AddEffect("FallUm",this,100,1,this);
  return true;
}

func FxFallUmTimer()
{
  SetRDir(5);
  if(GetR() >= 90 || GetR() <= -90)
    for(var i = GetPlayerCount(); i; i--)
      if(GetTeam(GetPlayerByIndex(i)) == 1)
        EliminatePlayer(GetPlayerByIndex(i));
  return true;
}
Ich habs so aber es funzt ned o:
Nach oben Nach unten
Benutzerprofil anzeigen
Liech
Fregattenkapitän
Fregattenkapitän


Männlich Alter : 26
Anmeldedatum : 02.02.09

BeitragThema: Re: Objekt soll ständig "SetRDir(5)" aufrufen?   Di Feb 08, 2011 6:15 pm

Effekte sind nicht Objektbezogen. Du musst dementsprechend auch mit Referenzen und so arbeiten.
Da Effekte meiner meinung nach etwas zu kompliziert sind (entgegen manch anderer meinung) um sie kurz und knapp zu erklären würde ich dir empfehlen das mit einem kleinen mißbrauch von Schedule Call zu lösen, da musst du nahezu nichts zusätzlich beachten. Ansonsten lies dir die Effekt doku durch und frag nochmal nach =)

da bei mir grade die doku den firefox zum absturz bringt kann ich dir nicht genau sagen wie es funktioniert, aber es geht inetwa so:

//Aufruf des pseudoeffekts:
ScheduleCall(this,"FallUm",1,100);

func FallUm()
{
SetRDir(5);
if(GetR() >= 90 || GetR() <= -90)
for(var i = GetPlayerCount(); i; i--)
if(GetTeam(GetPlayerByIndex(i)) == 1)
{
EliminatePlayer(GetPlayerByIndex(i));
return true;
}
ScheduleCall(this,"FallUm",1,100);
return true;
}

ScheduleCall ruft einfach eine funktion verzögert auf. Du bastelst dir also eine art endlosschleife durch selbstaufrufen. Nur halt eine zeitversetzte. Abgebrochen wird einfach wenn du die funktion mal nicht aufrufst.
Nach oben Nach unten
Benutzerprofil anzeigen
snowtiger11
General
General
avatar

Männlich Alter : 20
Ort : Im Königreich Mankel
Anmeldedatum : 17.04.09

BeitragThema: Re: Objekt soll ständig "SetRDir(5)" aufrufen?   Di Feb 08, 2011 6:17 pm

Kk, ich probiers mal.
....und wie macht man das das objekt sich aufhört zu drehen wen ein clonk es anfässt?
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Objekt soll ständig "SetRDir(5)" aufrufen?   Di Feb 08, 2011 8:14 pm

Bei SetRDir() wird das Objekt sowieso jeden Frame weitergedreht - außer natürlich, es stuckt.
Zitat :
Effekte sind nicht Objektbezogen.
Doch, Effekte haben Objektkontext. Außer globale Effekte natürlich, und bei DefCall-Effekten.
Übrigens gibt bei ScheduleCall der vierte Parameter an, wie oft die Funktion aufgerufen werden soll - bei dir 100 mal, allerdings wird das bei jedem Aufruf nochmal 100x gestartet - das stackt erst mal wie blöd Razz

Der Effekt oben müsste eigentlich funktionieren, allerdings dreht es sich eben nicht, wenn es irgendwie feststeckt. bzw nach der Drehung feststecken würde. Oder natürlich wenn es gar kein Rotate hat.

Ob ein Clonk es anfasst, kannst du per Find_ActionTarget prüfen. Musst dann aber noch checken, ob die Prozedur des Objektes "PUSH" ist, Find_Procedure gibts ja nicht.
Nach oben Nach unten
Benutzerprofil anzeigen
Bowserkoopa
Staatsrat
Staatsrat
avatar

Männlich Alter : 24
Anmeldedatum : 21.12.08

BeitragThema: Re: Objekt soll ständig "SetRDir(5)" aufrufen?   So Feb 13, 2011 12:48 pm

Wieso net einfach Timer + SetR? Oder nen PhaseCall?
Nach oben Nach unten
Benutzerprofil anzeigen
Liech
Fregattenkapitän
Fregattenkapitän


Männlich Alter : 26
Anmeldedatum : 02.02.09

BeitragThema: Re: Objekt soll ständig "SetRDir(5)" aufrufen?   So Feb 13, 2011 1:38 pm

Wäre auch sinnvoll. Nur endet ein Timer nie, was hier glaube ich erwünscht ist.
Man könnte natürlich auch überprüfen ob das ganze gestoppt wurde.

Zum ScheduleCall fehler: Wie gesagt, ich hatte keinen zugriff auf die Doku. Tut mir leid das der Fehler passiert ist Wink
Nach oben Nach unten
Benutzerprofil anzeigen
Gesponserte Inhalte




BeitragThema: Re: Objekt soll ständig "SetRDir(5)" aufrufen?   

Nach oben Nach unten
 
Objekt soll ständig "SetRDir(5)" aufrufen?
Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Oranger Fleck wo er nicht sein soll!
» Wie kann oder soll man das bewerten ?
» Fehlermeldung beim Aufrufen des Forums
» Schlimmer Spammer im Forum! Was soll ich tun?
» Navigation soll mit scrollen?

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