Jump to content
  • 0

pomoc Pohyb balónu


Pavel Tuček

Dotaz

Zdravím! Delám si jednoduchej script na pohyb balonu,ale balon furt stojí a nehejbe se.

forward CheckObj();
public CheckObj()
{
        new Float:x, Float:y, Float:z;
	if(GetDynamicObjectPos(balonek, x, y, z))
	{
                 if(x == -2608.14600)
 	         if(y == -235.46602)
 	         if(z == -25.70728)
  		{
	    	if(baloneknaspawnu == 0)
	    	{
	    		baloneknaspawnu = 1;
	    		SetTimer("JdiVis", 5000, 0);
	    		SendClientMessageToAll(-1, "balon přistal, odléta za 5 vteřin");
	 		}
 		}
 	}
 	else if(GetDynamicObjectPos(balonek, x, y, z))
 	{
 	        if(x == -2640.5615)
	 	if(y == -215.1547)
	 	if(z == 52.8805)
 	        {
			MoveDynamicObject(balonek, -2608.14600, -235.46602, 25.70728, 25.00);
		}
 	}
	return 1;
}

forward JdiVis();
public JdiVis()
{
	MoveDynamicObject(balonek, -2640.5615,-215.1547, 52.8805, 25.00);
	baloneknaspawnu = 0;
	return 1;
}
Link to comment
Share on other sites

18 odpovědí na tuto otázku

Recommended Posts

  • 0

JdiVis máš hned nad textem SendClientMessageToAll(-1, "balon přistal, odléta za 5 vteřin");

 

SetTimer("CheckBalon", 1000, 0); mám v ongamemodeinit.

balonek = CreateDynamicObject(19336, -2608.14600, -235.46602, 25.70728,   0.00000, 0.00000, 0.00000);
Link to comment
Share on other sites

  • 0

Ty podminky by mu takto jit mely.

 

if(GetDynamicObjectPos(balonek, x, y, z))

spis tato podminka bude delat problemy, kterou tam mas dvakrat. Tak ji smaz a nech tam jen getnuti pozice.

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0

To som akosi prehliadol :d To je blbosť, nedávaj to do podmienky :)

 

Lenže malo by to vrátiť true a tým pádom pustiť ďalej nie? :d

Edited by Mattsy
Link to comment
Share on other sites

  • 0

Zmenil jsem to na tohle a furt se nehejbe...

forward CheckBalon();
public CheckBalon()
{
    new Float:x, Float:y, Float:z;
	if(GetDynamicObjectPos(balonek, x, y, z))
	{
        if(x == -2608.14600 && y == -235.46602 && z == -25.70728)
  		{
	    	if(baloneknaspawnu == 0)
	    	{
	    		baloneknaspawnu = 1;
	    		SetTimer("JdiVis", 5000, 0);
	    		SendClientMessageToAll(-1, "balon přistal, odléta za 5 vteřin");
	 		}
 		}
 	    else if(x == -2640.5615 && y == -215.1547 && z == 52.8805)
  		{
			MoveDynamicObject(balonek, -2608.14600, -235.46602, 25.70728, 25.00);
		}
 	}
	return 1;
} //SRY FOR TAB ALE CTRL+V TO NEJAK KU*VI
Edited by Pavel Tuček
Link to comment
Share on other sites

  • 0

Skus este vymazat podmienku na GetObjectPos ako hovoril lukas a ked to neppjde tak pouzi print, za kazdu podmiebku si daj print("cislo"); a uvidis ktore cislo pojde posledne

Link to comment
Share on other sites

  • 0
if(GetDynamicObjectPos(balonek, x, y, z))

Myslí toto, ale teď, když jsem si přečetl dokumentaci tak by to vadit nemělo (měla by se ti podmínka splnit)

 

Chybu jsem našel

if(x == -2608.14600 && y == -235.46602 && z == -25.70728)

Testuješ pro z = -25.70728 ale vytváříš balón na +25.70728

Link to comment
Share on other sites

  • 0

HP: jop porovnávst to jde. Když jsem dělal střelnici tak mi s tím lukasz pomáhal. Zde jak to porovnával já:

new Float:ox,Float:oy,Float:oz;
GetPlayerObjectPos(playerid,targets[10], ox, oy, oz);//targets[10] je jeden objkt terče
if(ox,oy,oz == tarx,tary,tarz + 15)//tar floaty jsou puvodní pozice kde vytvářím targets[10]; 
Link to comment
Share on other sites

  • 0
if(ox,oy,oz == tarx,tary,tarz + 15)

O tomhle jsme se dohadovali snad dlouho, že je to kravina ne? Že to ignoruje všechno až na

 tarz + 15

takže se to vlastně rovná

if(tarz + 15)

což je vždy pravda, pokud tarz není -15. Klasicky se to porovnává tak, jak to už má a je to tím mínusem

Link to comment
Share on other sites

  • 0
if(GetDynamicObjectPos(balonek, x, y, z))

Myslí toto, ale teď, když jsem si přečetl dokumentaci tak by to vadit nemělo (měla by se ti podmínka splnit)

 

Chybu jsem našel

if(x == -2608.14600 && y == -235.46602 && z == -25.70728)

Testuješ pro z = -25.70728 ale vytváříš balón na +25.70728

 

To jsem opravil. Ted balon vykoná JdiVis ale pak se nedostaví na další pozici, která tam je.

Link to comment
Share on other sites

  • 0

Lukasz: o to mi vlastně i šlo aby to porovnávalo jen tarz protože já terčem hábal jen do strany :)
A dá se říct že princip je stejnej jak u balonu kde on porovnává jen pohyb nahoru.

Link to comment
Share on other sites

  • 0

Ou, tak to sis asi nevšiml, že jím hýbe i do stran :) Navíc tarz je pozice na ose Z tzn. v jaké výšce se objekt nachází, a protože jí máš vždy nenulovou (a nehýbeš sním po této ose), tak vždy se ti pokaždé podmínka splní.

To z té podmínky dělá zbytečnou podmínku, a navíc to neomlouvá ten bullshit který máš před tarz.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...