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

Teilen | 
 

 Zauber auf ein Objekt

Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach unten 
Gehe zu Seite : Zurück  1, 2, 3  Weiter
AutorNachricht
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Zauber auf ein Objekt   Di Okt 12, 2010 3:36 pm

Interessanter wären die Errors die während des Spiels kommen, also während die Funktion läuft.
Also du hast den Script in der Script.c eines Objekts, das im Szenario platziert ist...

Womöglich fehlt einfach der Granitschlag als Definition. Hast du den im Szenario drin?

Edit: Bei mir getestet, funktioniert wunderbar.
Nach oben Nach unten
Benutzerprofil anzeigen
Frindus
Major
Major


Männlich Anmeldedatum : 06.05.10

BeitragThema: Re: Zauber auf ein Objekt   Di Okt 12, 2010 3:42 pm

Ja hab ich alles, aber bei mir gehts nicht ...
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Zauber auf ein Objekt   Di Okt 12, 2010 3:46 pm

Und während des Spiels taucht wirklich kein Error auf?
Nimm mal den weißen Pfeil und überprüf ob das Objekt einen "IntSchedule"-Effekt hat, das steht im Eigenschaftsfenster.

Sonst kanns immer noch daran liegen dass der Granitschlag irgendwie rumzickt - gibts ja x Versionen davon...
Nach oben Nach unten
Benutzerprofil anzeigen
Frindus
Major
Major


Männlich Anmeldedatum : 06.05.10

BeitragThema: Re: Zauber auf ein Objekt   Di Okt 12, 2010 3:49 pm

Ok ich hab das Objekt nochmal erstellt und plaziert nun gehts=) aber es kommt immer nur einer und danach keiner mehr geht das auch zu ändern?
Nach oben Nach unten
Benutzerprofil anzeigen
Liech
Fregattenkapitän
Fregattenkapitän


Männlich Alter : 26
Anmeldedatum : 02.02.09

BeitragThema: Re: Zauber auf ein Objekt   Di Okt 12, 2010 5:20 pm

klar, entferne einfach das else.
Nach oben Nach unten
Benutzerprofil anzeigen
Frindus
Major
Major


Männlich Anmeldedatum : 06.05.10

BeitragThema: Re: Zauber auf ein Objekt   Di Okt 12, 2010 6:21 pm

geht das auch , dass es nur alle 2 oder 3 sekunden geht?
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Zauber auf ein Objekt   Di Okt 12, 2010 6:40 pm

Dass es nur alle 2-3 Sekunden checkt? Dafür änderst du einfach die 1 bei Schedule() in eine andere Zahl. Eine Sekunde sind (optimalerweise) 38 Frames. Für 3 Sekunden schreibst du also 114 hin.
Wenn du ihn öfter checken lassen willst, aber eine 3-sekündige Sperre nach jedem Grani einbauen willst, wird das schon komplizierter. Am besten wäre natürlich ein Cooldown-Effekt. Hier reicht es aber auch, wenn du bei Clonkfund einfach verlängerst:
Code:
if (pClonk)
{
  CreateObject(GRSG, 0, 0, NO_OWNER)->Activate();
  Schedule("SSchlagCheck()", 114);
}
else
  Schedule("SSchlagCheck()", 1);
Nach oben Nach unten
Benutzerprofil anzeigen
Frindus
Major
Major


Männlich Anmeldedatum : 06.05.10

BeitragThema: Re: Zauber auf ein Objekt   Di Okt 12, 2010 7:03 pm

Ok klappt wunderbar danke aber nun möchte ich das ein anderes Objekt Feueratem macht (MDBT) da hab ich nun folgendes reingeschrieben in die Scriptdatei.

Code:
#strict

func Initialize() {
Schedule("SSchlagCheck()", 114);
return(1);
}

global func SSchlagCheck()
{
var pClonk = FindObject2(Find_Distance(100),Find_Func("IsClonk"));
if (pClonk)
CreateObject(MDBT, 0, 0, NO_OWNER)->ActivateAngle(GetX(pClonk),GetY(pClonk),GetX(this),GetY(this)); //Stoppt wenn ein Clonk gefunden wurde
Schedule("SSchlagCheck()", 114); //Läuft weiter falls kein Clonk gefunden wird
}


Und dann kommt der Error

Code:
 ERROR: call to "ActivateAngle" parameter 1: got "int", but expected "object"!

dies kommt dann aber auch bei meinem anderen Objekt welches eigentlich Granitschlag machen sollte. aber es sind beide getrennte Objekte und sie haben natürlich ihre eigenen scriptdateien.
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Zauber auf ein Objekt   Di Okt 12, 2010 8:13 pm

Zum Aktivieren gibt es 3 Typen. Alle brauchen als ersten Parameter ein Objekt, nämlich den Zauberer selbst. In diesem Fall kannst du jeweils einfach this angeben.

Activate(object pCaster)
ActivateAngle(object pCaster, int iAngle)
ActivateTarget(object pCaster, object pTarget)

Als "iAngle" musst du einen Winkel übergeben. Diesen berechnest du per Angle, also:
CreateObject(MDBT, 0, 0, NO_OWNER)->ActivateAngle(this, Angle(GetX(), GetY(), GetX(pClonk), GetY(pClonk)))
Nach oben Nach unten
Benutzerprofil anzeigen
Frindus
Major
Major


Männlich Anmeldedatum : 06.05.10

BeitragThema: Re: Zauber auf ein Objekt   Di Okt 12, 2010 8:19 pm

Limeox schrieb:
Zum Aktivieren gibt es 3 Typen. Alle brauchen als ersten Parameter ein Objekt, nämlich den Zauberer selbst. In diesem Fall kannst du jeweils einfach this angeben.

Activate(object pCaster)
ActivateAngle(object pCaster, int iAngle)
ActivateTarget(object pCaster, object pTarget)


Das ist das einzige was ich nun nicht verstehe =( und wie muss ich was wo eingeben? bei dem ding
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Zauber auf ein Objekt   Di Okt 12, 2010 8:29 pm

"object" sagt einfach, dass ein Objekt an diese Stelle muss (oder einfach 0, funktioniert bei den meisten Zaubern) und "int", dass du dort eine Zahl einsetzen musst.
Das einfachste Objekt ist "this", das ist immer das Objekt selbst. Also kannst du zB einfach ...->Activate(this) schreiben, und bei den Activate-Zabuern hast du keine Probleme.
Bei ActivateAngle() reicht auch als erstes ein this, aber danach brauchst du noch den Winkel. Wenn du da nix einsetzt, ist er 0, und das Zeug fliegt gerade nach oben. Winkel rechnest du ja mit Angle aus.
ActivateTarget() braucht wieder als erstes das zaubernde Objekt (this), und als zweites ein weiteres Objekt - das Objekt, wo der Zauber wirken soll, zB Steinschild oder Genesung.

All die Funktionen machst du wie gewohnt über den Direkt-Call-Pfeil (->).
Wenn du nicht weißt, welche Funktion ein Zauber braucht, kannst du das entweder im Script nachlesen (aber Achtung: Activate haben alle Zauber) oder austesten, indem du den mit deinem Magier zauberst. Geht der Zauber direkt los, brauchst du Activate. Wenn du mit dem Pfeil zielen kannst, brauchst du ActivateAngle. Und wenn du einen Clonk auswählen kannst, ActivateTarget.
Nach oben Nach unten
Benutzerprofil anzeigen
Frindus
Major
Major


Männlich Anmeldedatum : 06.05.10

BeitragThema: Re: Zauber auf ein Objekt   Di Okt 12, 2010 8:38 pm

achso ok und was genau muss ich nun in der scriptdatei bei meinem Objekt mit dem Drachenatem hinzufügen und an welcher stelle?
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Zauber auf ein Objekt   Di Okt 12, 2010 8:49 pm

Da.
CreateObject(MDBT, 0, 0, NO_OWNER)->ActivateAngle(this, Angle(GetX(), GetY(), GetX(pClonk), GetY(pClonk)))
Nach oben Nach unten
Benutzerprofil anzeigen
Frindus
Major
Major


Männlich Anmeldedatum : 06.05.10

BeitragThema: Re: Zauber auf ein Objekt   Di Okt 12, 2010 9:18 pm

Ok geht aber nun macht das Objekt, dass Granitschlag machen soll auch Feueratem.

Edit: Hab nun 4 Objekte. Einmal Windstoß, Granitschlag, Feueratem und Frostwelle aber immer das Objekt was ich zuletzt bearbeite gibt seine Funktion auf die anderen weiter, ohne, dass sich die scriptdatei der anderen ändert. voll seltsam so macht dann das Granitobjekt frostwelle.
Nach oben Nach unten
Benutzerprofil anzeigen
Mr. X
Feldmarschall
Feldmarschall
avatar

Männlich Alter : 21
Ort : Schweiz/Baselland
Anmeldedatum : 23.02.10

BeitragThema: Re: Zauber auf ein Objekt   Di Okt 12, 2010 9:43 pm

hast du die id's geändert?
Nach oben Nach unten
Benutzerprofil anzeigen http://www.klick-mich-blos-nicht.de.vu/
Frindus
Major
Major


Männlich Anmeldedatum : 06.05.10

BeitragThema: Re: Zauber auf ein Objekt   Di Okt 12, 2010 9:45 pm

ja klar es sind ja auch unterschiedlieche objekte also es sind nicht die selben falls du darauf hinaus willst
Nach oben Nach unten
Benutzerprofil anzeigen
Liech
Fregattenkapitän
Fregattenkapitän


Männlich Alter : 26
Anmeldedatum : 02.02.09

BeitragThema: Re: Zauber auf ein Objekt   Mi Okt 13, 2010 12:17 am

Eine Clonksekunde hat 35 Frames, würde mich wundern wenn es jemals anders war.

Das mit dem weitergeben liegt schlichtweg daran das das ganze mit einer globalen Funktion geregelt ist, die für alle Scripts gilt. Die funktion als Global zu deklarieren war von mir vielleicht nicht ganz so klug. Am besten Tauschst du Schedule durch ScheduleCall(this,"Funktion",1,1); aus (also ohne klammern und mit this vornedran) und schreibst statt global einfach private (oder garnichts, public/private/protected dient in c4s eh nur dazu Anfänger zu verwirren).
Nach oben Nach unten
Benutzerprofil anzeigen
Frindus
Major
Major


Männlich Anmeldedatum : 06.05.10

BeitragThema: Re: Zauber auf ein Objekt   Mi Okt 13, 2010 9:33 am

OK ich habe global durch private ausgetauscht.

Ich danke allen die mir geholfen haben und sich mit dem Thema beschäftigt haben, Danke!
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Zauber auf ein Objekt   Mi Okt 13, 2010 2:49 pm

Zitat :
Eine Clonksekunde hat 35 Frames, würde mich wundern wenn es jemals anders war.
Blubb:
Zitat :
Spielgeschwindigkeit in FPS (Frames per Second). Wird der Parameter nicht angegeben oder 0 übergeben, so wird die Standard-Spielgeschwindigkeit (38 FPS) gewählt.
37-38 FPS bekommt man in normalen Szenarien und mit einem akzeptablen PC gut hin, bei schlechtem PC oder rechenlastigen Szenarien/Packs kanns natürlich drunter liegen.
Nach oben Nach unten
Benutzerprofil anzeigen
Liech
Fregattenkapitän
Fregattenkapitän


Männlich Alter : 26
Anmeldedatum : 02.02.09

BeitragThema: Re: Zauber auf ein Objekt   Mi Okt 13, 2010 4:05 pm

Es würde mich schwer wundern wenn mein Pc anhand der Last des extrem aufwändigen Goldminde Szenario total scheitert. Und es ist höchst erstaunlich das der zähler in jedem Netzwerkspiel auch bei 35 Fps verweilt. Der Artikel ist schlichtweg fehlerhaft, 35 Fps wurden mir mehrfach als Spielgeschwindigkeit bestätigt.
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Zauber auf ein Objekt   Mi Okt 13, 2010 4:08 pm

Bei Goldmine hab ich konstant 39 FPS (edit: Nach einigen Sekunden Spielzeit, davor exakt 36, frag mich nicht woher das kommt).
Im Netzwerk ist das immer so ne Sache, du kannst die PCs und die Verbindung der anderen ja schlecht beurteilen.

Was auch noch auf die Bilanz drückt, ist die MIDI-Musik, die sorgt ~ alle 35 Frames für einen minimalen Ruckler, in dem ein paar Frames untergehen.
Nach oben Nach unten
Benutzerprofil anzeigen
Liech
Fregattenkapitän
Fregattenkapitän


Männlich Alter : 26
Anmeldedatum : 02.02.09

BeitragThema: Re: Zauber auf ein Objekt   Mi Okt 13, 2010 4:32 pm

Das ist aufjedenfall nicht normal, solangs bei dir dadurch nicht zu desyncs kommt lässt sich damit allerdings gut leben.
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Zauber auf ein Objekt   Mi Okt 13, 2010 5:25 pm

Whut, dadurch entstehen doch keine Desyncs. Das Spiel läuft maximal so schnell wie der langsamste PC im Netzwerk.
Was mir allerdings aufgefallen ist: Sobald man SetGameSpeed() eingibt, kommt man in eigentlich allen Runden auf die "echten" 38 FPS (in Goldmine von 39 auf 38, in CMC mit 3 Fenstern von 33 auf 38 etc).
Nach oben Nach unten
Benutzerprofil anzeigen
Gamer
Staatsrat
Staatsrat
avatar

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

BeitragThema: Re: Zauber auf ein Objekt   Mi Okt 13, 2010 7:58 pm

Naja, also 35 FPS geht ja noch, aber so das die FPS Zahl die der Normale Clonker mit nem normal guten PC bekommt ist bei mir 36 Frames. 37 erreicht man MANCHMAL, bei richtig wenig Auslastung. Aber 38 FPS hatte ich fast noch nie. 36 FPS ist bei mir so Standart.
Aber genug OT Jetzt.

_________________
Star Wars Projekt Homepage: http://sites.google.com/site/clonkprojekte/star-wars

Das Burg Projekt.................................................................... Schaut doch mal im Super-Mario Clonk Editon Forum vorbei!
Nach oben Nach unten
Benutzerprofil anzeigen http://www.gamer95.npage.de/
Frindus
Major
Major


Männlich Anmeldedatum : 06.05.10

BeitragThema: Re: Zauber auf ein Objekt   Fr Okt 15, 2010 9:48 pm

Hmm das eine Objekt soll kleines Kraftfeld machen der Zauber verschwindet aber schon nach einer sekunde wieder. Was muss ich da eingeben, dass der Zauber ausgehalten wird wie das normale kleine Kraftfeld?
Nach oben Nach unten
Benutzerprofil anzeigen
Gesponserte Inhalte




BeitragThema: Re: Zauber auf ein Objekt   

Nach oben Nach unten
 
Zauber auf ein Objekt
Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach oben 
Seite 2 von 3Gehe zu Seite : Zurück  1, 2, 3  Weiter

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