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  

 

 Felsbrocken...

Nach unten 
4 verfasser
AutorNachricht
Pitri
Feldmarschall
Feldmarschall
Pitri


Männlich Alter : 30
Ort : Karlsruhe
Anmeldedatum : 02.03.09

Felsbrocken... Empty
BeitragThema: Felsbrocken...   Felsbrocken... EmptyDo März 04, 2010 6:52 pm

Jaja der Felsbrocken den ich hier schonmal gemacht habe habe ich neu aufgelegt. Aber die Opfer werden nur nach Oben geschleudert. Was hab ich falsch gemacht?

Hier der script vom #include-Modell:
Code:
/*-- Kugel --*/

#strict 2

func Initialize()
{
  AddEffect("Rolling",this(),100,1,this());
  return(1);
}

func FxRollingTimer()
{
  var pWalkVictim;
  var pJumpVictim;

  if(GetXDir() > 0)
  {
    Sound("Earthquake");
    SetRDir(iSpeed());

    while(pWalkVictim = FindObject(0,-10,-10,20,20,OCF_Living,"Walk"))
    {
      if(GetOwner() != GetOwner(pWalkVictim))
        ExtraFling(pWalkVictim,XFormel(),-YFormel());
      else return(1);
    }

    while(pJumpVictim = FindObject(0,-10,-10,20,20,OCF_Living,"Jump"))
      {
      if(GetOwner() != GetOwner(pJumpVictim))
        ExtraFling(pJumpVictim,XFormel(),-YFormel());
      else return(1);
      } 
    }
 
  if(GetXDir() < 0)
  {
    Sound("Earthquake");
    SetRDir(-iSpeed());

    while(pWalkVictim = FindObject(0,-10,-10,20,20,OCF_Living,"Walk"))
    {
      if(GetOwner() != GetOwner(pWalkVictim))
        ExtraFling(pWalkVictim,XFormel(),-YFormel());
      else return(1);
    }
       
    while(pJumpVictim = FindObject(0,-10,-10,20,20,OCF_Living,"Jump"))
    {
      if(GetOwner() != GetOwner(pJumpVictim))
        ExtraFling(pJumpVictim,XFormel(),-YFormel());
      else return(1);
    }
  }
  return(1);
}

func ExtraFling(object pLiving,int iXDir,int iYDir)
{
  Fling(pLiving,iXDir,iYDir);
  ObjectSetAction(pLiving,"Tumble");
  if(GetOCF(pLiving) & OCF_CrewMember)
    Sound("Hurt*");
  else if(GetID(pLiving) == WIPF)
    Sound("Wipfhurt");
  else if(GetID(pLiving) == MONS || GetID(pLiving) == FMNS)
    Sound("DeathGrowl");
  else Sound("Boing");
}

/*-- Data --*/
func iSpeed()  {return(1);} //Rollgeschwindigkeit
func iFling()  {return(1);} //Flingstärke
func XFormel() {return(GetXDir()/GetCon()/50 * iFling()/100);}
func YFormel() {return(Abs(GetYDir())/5*(iFling()/100)+1);}

Thx für hilfe!


Zuletzt von Pitri am Fr März 05, 2010 5:14 pm bearbeitet; insgesamt 3-mal bearbeitet
Nach oben Nach unten
http://www.clonk-fanpage.lima-city.de
Elfangor
General
General
Elfangor


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

Felsbrocken... Empty
BeitragThema: Re: Felsbrocken...   Felsbrocken... EmptyDo März 04, 2010 8:09 pm

_dieser_code_ist_absolut_unlesbar_geschrieben_bitte_zeilen_einrücken_und_auf_unterordnung_achten
Nach oben Nach unten
http://www.m-w-c.de.vu
Bowserkoopa
Staatsrat
Staatsrat
Bowserkoopa


Männlich Alter : 30
Anmeldedatum : 21.12.08

Felsbrocken... Empty
BeitragThema: Re: Felsbrocken...   Felsbrocken... EmptyFr März 05, 2010 3:57 pm

Elfangor schrieb:
_dieser_code_ist_absolut_unlesbar_geschrieben_bitte_zeilen_einrücken_und_auf_unterordnung_achten
Seh ich leider genauso
Code:
else if(GetID(pLiving) == MONS || GetID(pLiving) == FMNS)
Ein else und ein if in einer Zeile ist ja schon fast ein tabu.
Nach oben Nach unten
Umezawa
Feldmarschall
Feldmarschall



Männlich Alter : 29
Anmeldedatum : 30.12.08

Felsbrocken... Empty
BeitragThema: Re: Felsbrocken...   Felsbrocken... EmptyFr März 05, 2010 4:16 pm

Bowserkoopa schrieb:
Ein else und ein if in einer Zeile ist ja schon fast ein tabu.
Das ist Quatsch, in vielen Sprachen wird das sogar zusammengeschrieben.

Aber n paar Erläuterungen an einigen Stellen wären schon nicht schlecht. Aber so wie das hier aussieht, liegt das Problem in der XFormel.

Gehen wir mal von einer Geschwindigkeit von 50 und Con 10.

50/10/50*1/100
5/50*1/100
0.1*1/100
0.1/100
0.001
Nach oben Nach unten
Bowserkoopa
Staatsrat
Staatsrat
Bowserkoopa


Männlich Alter : 30
Anmeldedatum : 21.12.08

Felsbrocken... Empty
BeitragThema: Re: Felsbrocken...   Felsbrocken... EmptyFr März 05, 2010 4:43 pm

Naja ich würde das else und if nie in einer Zeile schreiben sondern einfach in die nächste Zeile setzen und nen Tabulator setzen.
Nach oben Nach unten
Pitri
Feldmarschall
Feldmarschall
Pitri


Männlich Alter : 30
Ort : Karlsruhe
Anmeldedatum : 02.03.09

Felsbrocken... Empty
BeitragThema: Re: Felsbrocken...   Felsbrocken... EmptyFr März 05, 2010 4:51 pm

Elfangor schrieb:
_dieser_code_ist_absolut_unlesbar_geschrieben_bitte_zeilen_einrücken_und_auf_unterordnung_achten
Fixed. Nur beim Spoiler geht das wohl nicht!

Bowserkoopa schrieb:
Naja ich würde das else und if nie in einer Zeile schreiben sondern einfach in die nächste Zeile setzen und nen Tabulator setzen.
*umgugg* In einigen scripts von anderen gibts das auch! Und als ich scripten gelernt habe, hat mir ker das "else if" erklärt. Ich habe das dann als zusammenstehenden Begriff verstanden xD

Umezawa schrieb:
Aber so wie das hier aussieht, liegt das Problem in der XFormel.
Problem gelöst durchfolgende schöne Formel:
Code:
func XFormel() {return(GetXDir()* (GetCon()/50) * iFling()/100);}
Jetzt gehts zum Fels-Spawnpint zum Plazieren an Hängen! Hoffentlich muss ich mich dafür hier nicht melden! xD
Nach oben Nach unten
http://www.clonk-fanpage.lima-city.de
Gesponserte Inhalte





Felsbrocken... Empty
BeitragThema: Re: Felsbrocken...   Felsbrocken... Empty

Nach oben Nach unten
 
Felsbrocken...
Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Der Felsbrocken...

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