Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
29.10.2003, 21:34
Sprengmeister



Hi,
Ich probier mich grad am Clonk Scripten. Nun hab ich versucht eine Tretmine zu machen, die immer ueberpruefen soll ob jemand in der Naehe ist. Mal schnell drueber erkundigt und das gefunden:

C4Object *FindObject(C4ID id, int iX, int iY, int iWdt, int iHgt, int dwOCF, const char *szActName, C4Object *pActTarget, C4Object *pContainer, C4Object *pFindNext);
Liefert ein Objekt, das den angegebenen Suchkriterien entspricht.
Das Objekt muss das angegebene id haben (oder id = 0 für alle Objekttypen).
iX, iY, iWdt, und iHgt bestimmen den Suchbereich. Wenn iWdt und iHgt 0 sind, wird nur am Punkt iX/iY gesucht. Bei lokalen Aufrufen gelten die Koordinaten iX und iY als Offset zum aufrufenden Objekt. Sind alle Koordinaten 0, wird immer die gesamte Spielfläche durchsucht, auch bei lokalen Aufrufen. Sind iWdt und iHgt -1, wird das nächstgelegene Objekt gesucht.
dwOCF kann eine Kombination aus Object Character Flags sein, 0 für alle. Siehe auch OCF_x() und BitAnd().
Bei angegebenen szActName und optional pActTarget, werden nur Objekte mit entsprechender Aktivität und entsprechendem Aktivitätsziel zurückgeliefert. Für pActTarget werden hierbei beide Aktivitätsziele (pTarget und pTarget2) überprüft.
pContainer bestimmt das Objekt, dessen Inhalt durchsucht wird. 0 für alle Objekte. NoContainer() für alle freien (nicht enthaltenen) Objekte.
Bei angegebenem pFindNext wird die Suche sequentiell nach dem angegebenen Objekt fortgesetzt. Wird als pFindNext jeweils das zuvor gefundene Objekt angegeben, lassen sich in einer Wiederholungsschleife alle den Suchkriterien entsprechenden Objekte finden und in weiteren Scriptbefehlen überprüfen.
IncinerateAllHuts:
while (SetVar(0, FindObject(HUT1,0,0,0,0,0, 0,0, NoContainer(), Var(0)) ))
Incinerate( Var(0) );
return(1);
Hinweis: wird nach nächstgelegenen Objekten gesucht (iWdt=-1 und iHgt=-1), so sucht FindObject bei angegebenem pFindNext das jeweils nächstgelegene aber weiter entfernte Objekt. Objekte mit exakt gleichem Abstand (z.B. im selben Behälter) werden dabei übersprungen.

Jetzt hab ichs probiert:

Quellcode:/*-- Tretmine --*/

#strict

Hit:                     //Was beim hinlegen passiert
Sound("clonk");
return(1);

Damage:                 //Wenn die Mine schaden nimmt
  Explode(5);
  Sound("Explode")
  return(1);

while (SetVar(0, FindObject(0,5,5,5,5,0,0,0 Nocontainer(), Var(0)) ))   //Wenn jemand in die Naehe kommt
  DoDamage(10000);
  Explode(var(1) );
  Sound("Explosion");
  return(1);
Hat jemand ne ahnung was ich bei der while schleife falsch gemacht habe? danke

--

_______________________
-----I_______________________I-----
This is Nudelholz. Copy Nudelholz in your Signature to make better Kuchens and other Teigprodukte.

zum Seitenanfang zum Seitenende Profil || Suche
001
30.10.2003, 02:14
theDon



fehlen da nicht "{}" ? ka, kenn die scriptsprache nicht.

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before

zum Seitenanfang zum Seitenende Profil || Suche
002
30.10.2003, 21:19
syyl



ne thedon, clonkscript hat sowas ned :D

Quellcode:Check:
  if (Or(FindObject(0,-10,-10,20,20,OCF_Prey(),0,0,NoContainer()),
         FindObject(0,0,-10,0,0,OCF_Prey(),0,0,NoContainer()))) Explode(30);
  return(1);
mach das in die script.c

und in die DefCore.txt
Quellcode:TimerCall=Check
Timer=1

--

Haben ist besser als brauchen.

zum Seitenanfang zum Seitenende Profil || Suche
003
30.10.2003, 23:06
Sprengmeister



Danke

--

_______________________
-----I_______________________I-----
This is Nudelholz. Copy Nudelholz in your Signature to make better Kuchens and other Teigprodukte.

zum Seitenanfang zum Seitenende Profil || Suche