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  

 

 Verschießen

Nach unten 
5 verfasser
AutorNachricht
alexander_der_dritte
Oberst
Oberst



Anmeldedatum : 30.12.08

Verschießen Empty
BeitragThema: Verschießen   Verschießen EmptySa Jan 09, 2010 11:32 pm

Hey leute! Ich weiß nicht ob die frage schon mal da war, aber wie mache ich das:
du gehst durch die landschaft und auf einmal findest du eine Steinschleuder.
du erkennst sofort das es eine magische Schleuder ist die ohne Munition auf magische Weise in Richtung links oder rechts schießt, jenachdem wo du hinguckst.
du aktivierst sie (hier geht mir die Fantasie aus wie man activate umschreibt) und wusch!
ein Stein schießt mit Vollspeed nach rechts davon!
Ich weiß, dass das irgendwie mit Exit() zu tun hat bin mir aber nicht sicher.Wie geht das?

Danke im vorraus für jede hilfe!
Nach oben Nach unten
Toastbrot
Kadett
Kadett
Toastbrot


Männlich Anmeldedatum : 10.03.09

Verschießen Empty
BeitragThema: Re: Verschießen   Verschießen EmptySo Jan 10, 2010 12:09 am

Activate(object pCaller){}
So müsste Activate im Script der Schleuder stehen.pCaller ist das Aufrufende Object also der Clonk. Als nächstes musst du innerhalb der Funktion die richtung des Clonks prüfen(also die richtung von pCaller)dies machst mit GetDir du brauchst einfach eine variable in der du die richtng speicherst alschließend kannst mit CreateObject einen STein erschaffen. Den Stein erschaffts du in einer geringen x entfernung vom Clonk.Du kannst dies einfach machen indem du mit einer if-Anweisung diese entfernung entweder mit 1 falls der Clonk nach rechts guckt oder mit -1 falls er nach links guckt multiplizierst. Danach musst du nur noch mit SetXDir den Stein beschleunigen hier kannst du ebenfalls die geschwindigkeit je nach blickrichtung mit +1 bzw. -1 multiplizieren.

Etwa so:

var multiplikator,stein;
if(GetDir(pCaller))multiplikator=1;
else multiplikator=-1;
stein=CreateObject(ROCK,20*multiplikator,0,-1);
stein->SetXDir(60*multiplikator);
stein->SetYDir(-10); //Der Stein soll einen kleinen Bogen fliegen
Nach oben Nach unten
Bowserkoopa
Staatsrat
Staatsrat
Bowserkoopa


Männlich Alter : 30
Anmeldedatum : 21.12.08

Verschießen Empty
BeitragThema: Re: Verschießen   Verschießen EmptySo Jan 10, 2010 1:47 am

Toastbrotsvariante hat die Richtungsabfrage ziemlich intelligent gelöst ansonsten wäre auch die klassische Abfrage

if(GetDir(pCaller)==DIR_Right)
{blablaba}
else

Methode nicht schlecht. Ich mache es dann immer so, dass ich CreateContents nutze, um Inhalt zu generieren, der dann mit Exit verschossen wird.
Nach oben Nach unten
Donky
Hauptman
Hauptman
Donky


Männlich Alter : 26
Ort : In der Nähe Hamburgs
Anmeldedatum : 03.11.09

Verschießen Empty
BeitragThema: Re: Verschießen   Verschießen EmptySo Jan 10, 2010 10:44 am

Also ich habs schon mal ganz gemacht. So müsste es eigentlich funktionieren.
Zitat :

Activate(pCaller) {
var schuss;
if(GetDir(FindObject(pCaller)) == DIR_Left())
{
schuss = CreateObject(ROCK, -10, 0, SetOwner(GetOwner(FindObject(pCaller))));
schuss -> SetXDir(-100);
}
else
{
var schuss = CreateObject(ROCK, +10, 0, SetOwner(GetOwner(FindObject(pCaller))));
schuss -> SetXDir(+100);
}
return(true);
}

Wenn der Stein schneller fliegen soll, veränder einfach die Zahlen bei SetXDir zB von +100 zu +200 oder von -100 zu -200.
Nach oben Nach unten
alexander_der_dritte
Oberst
Oberst



Anmeldedatum : 30.12.08

Verschießen Empty
BeitragThema: Re: Verschießen   Verschießen EmptySo Jan 10, 2010 7:45 pm

thx! danke leute probier es gleich mal aus Exclamation


edit: habs getested und er sagt :
C4AulExec
(BLST:BLST) :: Activate[10] func
"FindObject" par O: "object"
cannot be converted to "id"
Nach oben Nach unten
Elfangor
General
General
Elfangor


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

Verschießen Empty
BeitragThema: Re: Verschießen   Verschießen EmptyMo Jan 11, 2010 12:23 am

Man müsste gegebenenfalls darauf achten sich mit dem erstellten Objekt nicht selbst zu vernichten. Daher wäre eine Distanz zwischen dem Caster und dem Objekt bei der Erzeugung sinnvoll.
Nach oben Nach unten
http://www.m-w-c.de.vu
Gesponserte Inhalte





Verschießen Empty
BeitragThema: Re: Verschießen   Verschießen Empty

Nach oben Nach unten
 
Verschießen
Nach oben 
Seite 1 von 1

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