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  

 

 Clonk nach ChangeDef nicht steuerbar

Nach unten 
+4
Extremclonk
Limeox
Pitri
Dark
8 verfasser
AutorNachricht
Dark
Oberst
Oberst
Dark


Männlich Alter : 29
Ort : Deutschland/Frankfurt Main
Anmeldedatum : 07.07.10

Clonk nach ChangeDef nicht steuerbar Empty
BeitragThema: Clonk nach ChangeDef nicht steuerbar   Clonk nach ChangeDef nicht steuerbar EmptyMo Jul 12, 2010 4:49 pm

Ich habe im moment das Problem, dass ich wenn ich einen Clonk habe und dann ChangeDef (KNIG, GetCrew()); auf ihn anwende ich ihn nicht mehr kontrollieren kann obwohl er noch zu meiner Crew gehört.
Nach oben Nach unten
Pitri
Feldmarschall
Feldmarschall
Pitri


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

Clonk nach ChangeDef nicht steuerbar Empty
BeitragThema: Re: Clonk nach ChangeDef nicht steuerbar   Clonk nach ChangeDef nicht steuerbar EmptyMo Jul 12, 2010 5:30 pm

Folgendes muss hin:

Code:
ChangeDef(KNIG,GetCrew());
ObjectSetAction("Walk",GetCrew());

Denn ohne die zweite Zeile hat der Clonk keine Action! Und Ohne Action kann man nicht laufen!

Wenn du sie abgeworfen hast, wäre es gegangen! :Þ
Nach oben Nach unten
http://www.clonk-fanpage.lima-city.de
Dark
Oberst
Oberst
Dark


Männlich Alter : 29
Ort : Deutschland/Frankfurt Main
Anmeldedatum : 07.07.10

Clonk nach ChangeDef nicht steuerbar Empty
BeitragThema: Re: Clonk nach ChangeDef nicht steuerbar   Clonk nach ChangeDef nicht steuerbar EmptyMo Jul 12, 2010 5:35 pm

Gibt es och eine andere Variante wie ich aus einem Clonk einen Ritter mit alen Aktionen machen kann ohne dass sich der Name des Clonks ändert und ohne, dass ein neuer Clonk der Crew hizu gefügt wird.

Denn bei mir soll ein Clonk zum Ritter geschlagen werden und dann vom Clonk zum Ritter werden.
Nach oben Nach unten
Limeox
Admiral
Admiral
Limeox


Männlich Anmeldedatum : 25.04.10

Clonk nach ChangeDef nicht steuerbar Empty
BeitragThema: Re: Clonk nach ChangeDef nicht steuerbar   Clonk nach ChangeDef nicht steuerbar EmptyMo Jul 12, 2010 5:57 pm

Ritter erstellen und per GrabObjectInfo zum gleichen Clonk machen.

Code:
var pClonk = GetCrew();
GrabObjectInfo(pClonk, CreateObject(KNIG, GetX(pClonk), GetY(pClonk), GetOwner(pClonk)));
RemoveObject(pClonk);

Edit: Bei CreateObject() wird der Ritter gleich initialisiert, "Walk" wird also gleich gesetzt.
Nach oben Nach unten
Dark
Oberst
Oberst
Dark


Männlich Alter : 29
Ort : Deutschland/Frankfurt Main
Anmeldedatum : 07.07.10

Clonk nach ChangeDef nicht steuerbar Empty
BeitragThema: Re: Clonk nach ChangeDef nicht steuerbar   Clonk nach ChangeDef nicht steuerbar EmptyMo Jul 12, 2010 8:06 pm

Limeox deine Variante funzt irgendwie net. Der Name stimmt, aber ich kann den Conk immernoch net steuern.
Nach oben Nach unten
Limeox
Admiral
Admiral
Limeox


Männlich Anmeldedatum : 25.04.10

Clonk nach ChangeDef nicht steuerbar Empty
BeitragThema: Re: Clonk nach ChangeDef nicht steuerbar   Clonk nach ChangeDef nicht steuerbar EmptyMo Jul 12, 2010 8:39 pm

Crew durchwechseln oder SetCursor()... der Clonk ist noch nicht ausgewählt. x)
Nach oben Nach unten
Extremclonk
Staatsrat
Staatsrat
Extremclonk


Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

Clonk nach ChangeDef nicht steuerbar Empty
BeitragThema: Re: Clonk nach ChangeDef nicht steuerbar   Clonk nach ChangeDef nicht steuerbar EmptyMo Jul 12, 2010 9:53 pm

Man muss den Clonk Initializen.....zu was schreib ich eig. Tuts?
@Dark: Ruf im Clonk die Funktion Initialize() auf, dann sollte er laufen.
Nach oben Nach unten
Limeox
Admiral
Admiral
Limeox


Männlich Anmeldedatum : 25.04.10

Clonk nach ChangeDef nicht steuerbar Empty
BeitragThema: Re: Clonk nach ChangeDef nicht steuerbar   Clonk nach ChangeDef nicht steuerbar EmptyMo Jul 12, 2010 10:27 pm

Zitat :
Man muss den Clonk Initializen.....zu was schreib ich eig. Tuts?
@Dark: Ruf im Clonk die Funktion Initialize() auf, dann sollte er laufen.
Immer wenn ein Objekt erstellt wird, wird es sofort initialisiert. Das muss man nicht manuell nachholen.
Nach oben Nach unten
Extremclonk
Staatsrat
Staatsrat
Extremclonk


Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

Clonk nach ChangeDef nicht steuerbar Empty
BeitragThema: Re: Clonk nach ChangeDef nicht steuerbar   Clonk nach ChangeDef nicht steuerbar EmptyDi Jul 13, 2010 12:10 am

Ich bezog mich auf den ursprünglichen Post, nicht auf dein Beispiel, Limeox. Und nach ChangeDef muss man Initialize aufrufen das der Clonk sich bewegen kann.
Nach oben Nach unten
Dark
Oberst
Oberst
Dark


Männlich Alter : 29
Ort : Deutschland/Frankfurt Main
Anmeldedatum : 07.07.10

Clonk nach ChangeDef nicht steuerbar Empty
BeitragThema: Re: Clonk nach ChangeDef nicht steuerbar   Clonk nach ChangeDef nicht steuerbar EmptyDi Jul 13, 2010 1:08 am

Mit

Code:
var pClonk = GetCrew();
GrabObjectInfo(pClonk, CreateObject(KNIG, GetX(pClonk), GetY(pClonk), GetOwner(pClonk)));
RemoveObject(pClonk);

Ging es ja nachdem ich den clonk ausgewählt habe
Nach oben Nach unten
Gurkenglas
Oberst
Oberst



Anmeldedatum : 04.01.09

Clonk nach ChangeDef nicht steuerbar Empty
BeitragThema: Re: Clonk nach ChangeDef nicht steuerbar   Clonk nach ChangeDef nicht steuerbar EmptyDi Jul 13, 2010 7:57 pm

Häng noch ein SetCursor(0,GetCrew(0),true,true); hintenran, das macht den einzigen Clonk des ersten Spielers (Nr. 0) zum ausgewählten Clonk des Spielers (immer noch Nr. 0). Die beiden trues sind dafür zuständig dass kein Pfeil und kein Auswahlrechteck angezeigt werden, wie beim normalen Auswählen.
Nach oben Nach unten
Donky
Hauptman
Hauptman
Donky


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

Clonk nach ChangeDef nicht steuerbar Empty
BeitragThema: Re: Clonk nach ChangeDef nicht steuerbar   Clonk nach ChangeDef nicht steuerbar EmptySo Nov 14, 2010 9:54 pm

Ähhh kurze Frage: Im Clonk gibts ne Funktion, die Redefine2(idTo) heißt. Warum nutzt ihr die nicht?
Code:

private func RedefinePhysical(szPhys, idTo)
{
  // Physical-Werte ermitteln
  var physDefFrom = GetPhysical(szPhys, 0, 0, GetID()),
      physDefTo  = GetPhysical(szPhys, 0, 0, idTo),
      physCurr    = GetPhysical(szPhys);
  // Neuen Wert berechnen
  var physNew; if (physDefTo) physNew=BoundBy(physDefTo-physDefFrom+physCurr, 0, 100000);
  // Neuen Wert für den Reset immer temporär setzen, selbst wenn keine Änderung besteht, damit der Reset richtig funktioniert
  SetPhysical(szPhys, physNew, PHYS_StackTemporary);
  // Fertig
  return(1);
}

protected func FxIntRedefineStart(object trg, int num, int tmp, id idTo)
  {
  // Ziel-ID in Effektvariable
  if (tmp)
    idTo = EffectVar(0, trg, num);
  else
    {
    EffectVar(0, trg, num) = idTo;
    EffectVar(1, trg, num) = GetID();
    }
  // Physicals anpassen
  RedefinePhysical("Energy", idTo);
  RedefinePhysical("Breath", idTo);
  RedefinePhysical("Walk", idTo);
  RedefinePhysical("Jump", idTo);
  RedefinePhysical("Scale", idTo);
  RedefinePhysical("Hangle", idTo);
  RedefinePhysical("Dig", idTo);
  RedefinePhysical("Swim", idTo);
  RedefinePhysical("Throw", idTo);
  RedefinePhysical("Push", idTo);
  RedefinePhysical("Fight", idTo);
  RedefinePhysical("Magic", idTo);
  RedefinePhysical("Float", idTo);
  /*if (GetRank()<4) RedefinePhysical("CanScale", idTo);
  if (GetRank()<6) RedefinePhysical("CanHangle", idTo);*/ // z.Z. können es alle
  RedefinePhysical("CanDig", idTo);
  RedefinePhysical("CanConstruct", idTo);
  RedefinePhysical("CanChop", idTo);
  RedefinePhysical("CanSwimDig", idTo);
  RedefinePhysical("CorrosionResist", idTo);
  RedefinePhysical("BreatheWater", idTo);
  // Damit Aufwertungen zu nicht-Magiern keine Zauberenergie übrig lassen
  if (GetPhysical("Magic")/1000 < GetMagicEnergy()) DoMagicEnergy(GetPhysical("Magic")/1000-GetMagicEnergy());
  // Echtes Redefine nur bei echten Aufrufen (hat zu viele Nebenwirkungen)
  if (tmp) return(FX_OK);
  Redefine(idTo);
  // Fertig
  return(FX_OK);
  }
 
protected func FxIntRedefineStop(object trg, int num, int iReason, bool tmp)
  {
  // Physicals wiederherstellen
  ResetPhysical(0, "BreatheWater");
  ResetPhysical(0, "CorrosionResist");
  ResetPhysical(0, "CanSwimDig");
  ResetPhysical(0, "CanChop");
  ResetPhysical(0, "CanConstruct");
  ResetPhysical(0, "CanDig");
  ResetPhysical(0, "Float");
  ResetPhysical(0, "Magic");
  ResetPhysical(0, "Fight");
  ResetPhysical(0, "Push");
  ResetPhysical(0, "Throw");
  ResetPhysical(0, "Swim");
  ResetPhysical(0, "Dig");
  ResetPhysical(0, "Hangle");
  ResetPhysical(0, "Scale");
  ResetPhysical(0, "Jump");
  ResetPhysical(0, "Walk");
  ResetPhysical(0, "Breath");
  ResetPhysical(0, "Energy");
  // Keine Rückänderung bei temporären Aufrufen oder beim Tod/Löschen
  if (tmp || iReason) return();
  // Damit Aufwertungen von nicht-Magiern keine Zauberenergie übrig lassen
  if (GetPhysical("Magic")/1000 < GetMagicEnergy()) DoMagicEnergy(GetPhysical("Magic")/1000-GetMagicEnergy());
  // OK; alte Definition wiederherstellen
  Redefine(EffectVar(1, trg, num));
  }

public func Redefine2(idTo)
{
  if (GetID() == idTo) return(true);
  RemoveEffect("IntRedefine", this());
  if (GetID() == idTo) return(true);
  return(!!AddEffect("IntRedefine", this(), 10, 0, this(), 0, idTo));
}

public func Redefine(idTo)
{
  // Aktivitätsdaten sichern
  var phs=GetPhase(),act=GetAction();
  // Umwandeln
  ChangeDef(idTo);
  // Aktivität wiederherstellen
  var chg=SetAction(act);
  if (!chg) SetAction("Walk");
  if (chg) SetPhase(phs);
  // Fertig
  return(1);
}




Nach oben Nach unten
Pitri
Feldmarschall
Feldmarschall
Pitri


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

Clonk nach ChangeDef nicht steuerbar Empty
BeitragThema: Re: Clonk nach ChangeDef nicht steuerbar   Clonk nach ChangeDef nicht steuerbar EmptyMo Nov 15, 2010 9:04 pm

Berechtigte Frage. Ich hab sie ja noch vor kurzem angeschaut, aber war so vernagelt und habe sie hier nicht gepostet. Mad
Nach oben Nach unten
http://www.clonk-fanpage.lima-city.de
der kleine boss
Vizeadmiral
Vizeadmiral
der kleine boss


Männlich Alter : 28
Ort : In einem gaaaaanz kleinen Kaff in Austria
Anmeldedatum : 21.03.09

Clonk nach ChangeDef nicht steuerbar Empty
BeitragThema: Re: Clonk nach ChangeDef nicht steuerbar   Clonk nach ChangeDef nicht steuerbar EmptySo Nov 21, 2010 2:08 pm

es gibt afaik einen unterschied zwischen ChangeDef() und Redefine2() und zwar glaub ich war das, wenn man zb nen hazard zu nem mage machte mit Redefine2() hatte der Mage dann die Kraft und Atem vom Hazard

und ja mich gibts auch noch ;D
Nach oben Nach unten
http://www.clonk.de
Wipfmagus
Konteradmiral
Konteradmiral
Wipfmagus


Weiblich Alter : 28
Anmeldedatum : 06.03.10

Clonk nach ChangeDef nicht steuerbar Empty
BeitragThema: Re: Clonk nach ChangeDef nicht steuerbar   Clonk nach ChangeDef nicht steuerbar EmptySa Dez 04, 2010 10:01 pm

War es nicht umgekehrt, dass ChangeDef() die Eigenschaften (Vertices etc.) behält?

Jedenfalls würde ich eher
Code:
CreateObject(KNIG, GetX(pClonk), GetY(pClonk))->GrabObjectInfo(pClonk);
RemoveObject(pClonk);
verwenden. Das sollte die Eigenschaften vernünftig übertragen.
Nach oben Nach unten
Gesponserte Inhalte





Clonk nach ChangeDef nicht steuerbar Empty
BeitragThema: Re: Clonk nach ChangeDef nicht steuerbar   Clonk nach ChangeDef nicht steuerbar Empty

Nach oben Nach unten
 
Clonk nach ChangeDef nicht steuerbar
Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» ChangeDef()
» Clonk anhalten
» script mit Hyp. Clonk
» Musik in Clonk

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