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

Teilen | 
 

 Hilfe an der Sturmgewehr veränderung

Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach unten 
AutorNachricht
alexander_der_dritte
Oberst
Oberst


Anmeldedatum : 30.12.08

BeitragThema: Hilfe an der Sturmgewehr veränderung   Di Aug 17, 2010 11:52 pm

Ich hab ein Problem mit dem code von dem Sturmgewehr das ich umgescriptet habe:
Es sollte wie das normale sturmgewehr sein mit dem unterschied das es statt einen schuss abzugeben ein object in 400 pixel reichweite findet eine linie particle zwischen schütze und
Ziel zeichnet und dem ziel 5 schaden machen soll.
hier das Script:
Code:
//Local(0) - Modus
//Local(4) - Anzahl Kugeln
//Local(5) - Anzahl Granaten

#strict

ControlThrow:
  if(Local(0)==0) return(Kugeln(Par(0))); 
  if(Local(0)==1) return(Granaten(Par(0)));
  return(1);
   
ControlLeft:
  if(GetAction(Par(0))ne"JumpSturmgewehr") return(0);
  return(SetDir(DIR_Left(),Par(0)));

ControlRight:
  if(GetAction(Par(0))ne"JumpSturmgewehr") return(0);
  return(SetDir(DIR_Right(),Par(0)));

ControlSpecial2:
  CreateMenu(G35B,Par(0));
  AddMenuItem("%s","Modus1",G45B,Par(0)); //Kugeln
  AddMenuItem("%s","Modus2",G55B,Par(0)); //Granaten
  return(1);

Modus1:
  SetLocal(0,0); 
  MunUpdate(Contained());
  return(Sound("Modus"));

Modus2:
  SetLocal(0,1);
  MunUpdate(Contained());
  return(Sound("Modus"));

Kugeln:
  if(!Local(4))            return(Munition(Par(0)));
  if(GetAction()eq"Schuss") return(SetAction("Stop")); 
  return(SetAction("Schuss"));

Schuss: 
  if(!ObjectCall(Contained(),"ControlReady")) return(SetAction("Stop"));
  if(!ObjectCall(Contained(),"Sturmgewehr"))  return(SetAction("Stop"));
  if(Contained(Contained()))                  return(SetAction("Stop"));
 
  if(!Local(4)) {Sound("PTLeer");            return(SetAction("Stop"));}

  SetVar(0,FindObject2(Find_Distance(400)));
  DrawParticleLine("MSpark",0,0,GetX(Var(0)),GetY(Var(0)),5,10,RGBa(200,200,255,50),RGBa(255,255,200,50),1);
  DoDamage(5,Var(1));   
  Local(4)--;
  return(MunUpdate(Contained()));

Granaten:
  if(GetAction()eq"Stop") return(1);
  if(!Local(5))          return(Munition(Par(0)));
 
  SetVar(0,CreateContents(GR5B));
  SetVar(1,GetDir(Par(0)));
  SetDir(Var(1),Var(0));
  Exit(Var(0),-10+Var(1)*20,3,0,-10+Var(1)*20,-1);
  Local(5)--;
  SetAction("Stop");
  Sound("GRSchuss");
  return(MunUpdate(Par(0)));

Munition:
  if(Local(0)==0)
  {
    if(!SetVar(0,FindContents(G15B,Par(0)))) return(Sound("PTLeer"));
    SetLocal(4,100);
    Sound("GWLaden");
  }
  if(Local(0)==1)
  {
    if(!SetVar(0,FindContents(G25B,Par(0)))) return(Sound("PTLeer"));
    SetLocal(5,10);
    SetAction("Stop");
    Sound("GRLaden");
  }
  RemoveObject(Var(0));
  return(MunUpdate(Par(0)));

MunUpdate:
  if(Local(0)==0) SetVar(0,Local(4));
  if(Local(0)==1) SetVar(0,Local(5)*10); 

  ResetPhysical(Par(0));
  DoMagicEnergy(0,Par(0));
  SetPhysical("Magic",100000,2,Par(0));
  DoMagicEnergy(Var(0),Par(0));
  return(1);

Position:
  SetPosition(GetX()-11+GetDir(Contained())*22,GetY()-1,Par(0));
  return(SetDir(GetDir(Contained()),Par(0)));
Die einzigen veränderungen wurden an Schuss: durchgeführt
Was mach ich da Falsch?
Danke Im Vorraus.
Nach oben Nach unten
Benutzerprofil anzeigen
awed
Kadett
Kadett


Männlich Ort : berlin
Anmeldedatum : 24.02.10

BeitragThema: Re: Hilfe an der Sturmgewehr veränderung   Mi Aug 18, 2010 12:23 am

naja ich würde dir entfehlen erstmal
den code ins aktuelle c4 umzuscripten denn es kann sein das einige befehle bei der "gwe eninge" nicht vorhanden ist.
oder nimm das sturmgewehr aus eke reloaded fals es nicht vom "neuen eke" ist
Spoiler:
 
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Hilfe an der Sturmgewehr veränderung   Mi Aug 18, 2010 12:28 am

Benutzt du EkeR? Wäre mir neu dass das noch in CP-Syntax geschrieben ist Oo
Oder benutzt du CP/CE zum Scripten? FindObject2 gibts erst ab CR.
Und sonst: Vermutlich findet sich das Sturmgewehr zuallererst mal selbst.
Wenn nicht: DrawParticleLine braucht lokale Koordinaten bei lokalem Aufruf, du musst GetX(Var()) durch GetX(Var())-GetX() ersetzen (und GetY auch).
Zitat :
DoDamage(5,Var(1));
Und dann versuchst du Var(1) Schaden zuzufügen. Bei Clonks bringt das erstmal nichts, und außerdem hast du das Ziel ja in Var(0) gespeichert. Die Waffe würde sich heir also selbst zerlegen, da Var(1) undefiniert ist (bzw bei Granaten die Geschwindigkeit angibt).
Nach oben Nach unten
Benutzerprofil anzeigen
alexander_der_dritte
Oberst
Oberst


Anmeldedatum : 30.12.08

BeitragThema: Re: Hilfe an der Sturmgewehr veränderung   Mi Aug 18, 2010 12:38 am

Achso also sind da drei fehler:
1. In ce Kann er das object garnicht finden mit FindObject2
2.ohne diese positionskorektur gibt es keinen blitz
3.durch den Var. fehler geht auch dodamage ins leere.
also gehen wir es nochmal an:
wie ersetze ich Findobject2, dass der Nachfolger die gleichen suchkreterien hat?
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Hilfe an der Sturmgewehr veränderung   Mi Aug 18, 2010 12:43 am

Gar nicht. Du kannst nur FindObject mit einer while-Schleife kombinieren. Wenn du dann sogar den nächstgelegenen finden möchtest, wird das Ganze ziemlich happig, siehe auch hier.

Also um erstmal irgendeinen zu finden:
Zitat :
while(Var() = FindObject(0, -400, -400, 800, 800, OCF_CrewMember, 0, 0, 0, Var())) {
//Nur bis 400 Px Abstand
if (ObjectDistance(Var()) > 400) continue;
break;
}
//Und da halt weiter
SetVar() braucht man afaik auch gar nicht, sondern war nur bei CP nötig... oder auch nichtmal da.
Nach oben Nach unten
Benutzerprofil anzeigen
alexander_der_dritte
Oberst
Oberst


Anmeldedatum : 30.12.08

BeitragThema: Re: Hilfe an der Sturmgewehr veränderung   Fr Aug 27, 2010 10:17 pm

Bin wieder da.
Ich hab den Code nochmal überarbeitet und arbeite mit FindObject2 an einer rage version.
ich würde jetzt gerne erstmal wissen:
wie mache ich den TODESSTRAHL ?

Also wie gesagt:
-ein Clonk in der nähe befindliches lebewesen, das lebt, soll mit Findobject2 gefunden werden.
-Der Strahl soll 5-10 Schaden machen(abhängig von der Entfernung)
-Particleline
-teil kann ich noch selbst, aber wie mach ich die anderen beiden?
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: Hilfe an der Sturmgewehr veränderung   Sa Aug 28, 2010 10:03 am

Also ich würde da mit FindObject2 spezifisch mit Find_inRect arbeiten. Einfach ein Rechteck ziehen vom Strahlanfang bis zum gedachten Strahlende (Landschaft Mitberechnen! GetMaterialXY()) .
Dann mit ObjectDistance den Abstand von Getroffenem zum Schützen ermitteln und dann je größer die Entfernung desto kleiner der Schaden.
ParticleLine kann man ja dann drawen von der Position wo normalerweiße ein schuss rauskommt und von dem aus solgange horizontal weiter machen (for) bis man nichtmehr auf Sky oder Tunnel stößt. (if(!GetMaterialXY(positionx,positiony) break;)
Nur ein paar Ideen Smile

_________________
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/
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Hilfe an der Sturmgewehr veränderung   Sa Aug 28, 2010 5:19 pm

O_o.
Da reicht Find_OnLine (Find_InRect failt bei schrägen Schüssen) kombiniert mit Find_PathFree und Sort_Distance.
GetMaterialXY gibts ja gar nicht, nur GetMaterial.
Nach oben Nach unten
Benutzerprofil anzeigen
Gesponserte Inhalte




BeitragThema: Re: Hilfe an der Sturmgewehr veränderung   

Nach oben Nach unten
 
Hilfe an der Sturmgewehr veränderung
Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Voting Hilfe
» Hilfe bei einem HTML Code
» Hilfe!!!Keine Anmeldung möglich
» Hilfe! Habe immer automatische verlinkung über adf.ly im Forum.
» Sendeplan erstellen Hilfe

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