Jump to content

Slagboom op en neer


Recommended Posts

Geplaatst:

Ik heb een klein probleempje.

Ik ben beginend scripter en heb deuren openen en hekken openen enz al aardig onder de knie.

Ik kom alleen bij het volgende probleem aan.

ik heb een slag boom die ik omhoog en omlaag wil laten gaan (Y as Rotation)

heb de volgende code:

SetObjectRot(Fence13, 0, 90, 0);

Nu schiet hij laat maar zeggen omhoog ipv bij een hek

Bvb: MoveObject(Poort, 2439.1500,-1663.4300, 12.5, 3);

die 3 is dan de snelheid en dat heb je bij die slagboom niet hoe los ik dit op ?

Geplaatst:

Hallo,

Een tijdje geleden vroeg toevalig iemand precies hetzelfde. Hij of zij wilde destijds ook een slagboom laten opengaan door middel van rotatie. Ik heb toen ook antwoord gegeven en helaas moeten zeggen dat dit niet mogelijk is. Hier mijn post van destijds:

Als ik het goed begrijp, wil je dus niet alleen je slagboom laten verschuiven, maar ook laten draaien? Ik neem aan dat je hier nu MoveObject(newx,newy,newz); voor gebruikt? Daar kun je geen rotatie invoeren. Het is eigenlijk helemaal niet mogelijk om iets mooi te laten draaien zoals hij met move object kan bewegen. Voor zover ik weet kun je alleen iets dergelijks als SetObjectRot(); gebruiken. Het probleem hierbij is, dat je slagboom niet langzaam zal draaien naar de nieuwe hoek, maar meteen ernaar zal overspringen. Ik heb dit zelf ook al eens willen doen, maar helaas ook zonder enig succes. Volgens mij is dat de enige manier.

Met vriendelijke groeten,

NeoSyp

PS: Overigens is die laatste 0.00000 die jij in je eerste code hebt zitten, niet de x rotatie, maar de snelheid waarmee hij zich zal verplaatsen.

Zoals je leest is het dus helaas onmogelijk. Mocht je het hele topic willen lezen dan vind je dat hier. Nog veel succes en plezier ermee!

Met vriendelijke groeten,

NeoSyp

Geplaatst:
Hallo,

Een tijdje geleden vroeg toevalig iemand precies hetzelfde. Hij of zij wilde destijds ook een slagboom laten opengaan door middel van rotatie. Ik heb toen ook antwoord gegeven en helaas moeten zeggen dat dit niet mogelijk is. Hier mijn post van destijds:

Als ik het goed begrijp, wil je dus niet alleen je slagboom laten verschuiven, maar ook laten draaien? Ik neem aan dat je hier nu MoveObject(newx,newy,newz); voor gebruikt? Daar kun je geen rotatie invoeren. Het is eigenlijk helemaal niet mogelijk om iets mooi te laten draaien zoals hij met move object kan bewegen. Voor zover ik weet kun je alleen iets dergelijks als SetObjectRot(); gebruiken. Het probleem hierbij is, dat je slagboom niet langzaam zal draaien naar de nieuwe hoek, maar meteen ernaar zal overspringen. Ik heb dit zelf ook al eens willen doen, maar helaas ook zonder enig succes. Volgens mij is dat de enige manier.

Met vriendelijke groeten,

NeoSyp

PS: Overigens is die laatste 0.00000 die jij in je eerste code hebt zitten, niet de x rotatie, maar de snelheid waarmee hij zich zal verplaatsen.

Zoals je leest is het dus helaas onmogelijk. Mocht je het hele topic willen lezen dan vind je dat hier. Nog veel succes en plezier ermee!

Met vriendelijke groeten,

NeoSyp

Mmm, best jammer het zou toch wel iets moois zijn.

Hellaas.

Geplaatst:

Je zou het wel kunnen maken door middel van een timer...

Voorbeeld:

//Bovenaan je script:

new Slagboom
new SlagboomTimer;
new SlagboomCount;

//Bij OnGameModeInit():

Slagboom = CreateObject(id, X, Y, Z, x-rotatie, y-rotatie, z-rotatie);  //  <<== Zelf invullen!!!

//In je OnPlayerCommandText-callback:

if(strcmp(cmdtext, "/openslagboom", true)==0)
{
SlagboomTimer = SetTimer("SlagboomFunction", 20, 1);
SlagboomCount = 0; 
return 1;
}

//Onderaan je script:

forward SlagboomFunction();
public SlagboomFunction()
{
if(SlagboomCount < 90)
{
	new Float:Xrot, Float:Yrot, Float:Zrot;
	GetObjectRot(Slagboom, Xrot, Yrot, Zrot);
	SetObjectRot(Slagboom, Xrot, Yrot+1, Zrot);
	SlagboomCount++;
}
else
{
	KillTimer(SlagboomTimer);
}
}

Ik heb echt geen idee of het echt zal werken en mogelijk is.. maar je kan het proberen... :puh:

Geplaatst:
Je zou het wel kunnen maken door middel van een timer...

Voorbeeld:

//Bovenaan je script:

new Slagboom
new SlagboomTimer;
new SlagboomCount;

//Bij OnGameModeInit():

Slagboom = CreateObject(id, X, Y, Z, x-rotatie, y-rotatie, z-rotatie);  //  <<== Zelf invullen!!!

//In je OnPlayerCommandText-callback:

if(strcmp(cmdtext, "/openslagboom", true)==0)
{
SlagboomTimer = SetTimer("SlagboomFunction", 20, 1);
SlagboomCount = 0; 
return 1;
}

//Onderaan je script:

forward SlagboomFunction();
public SlagboomFunction()
{
if(SlagboomCount < 90)
{
	new Float:Xrot, Float:Yrot, Float:Zrot;
	GetObjectRot(Slagboom, Xrot, Yrot, Zrot);
	SetObjectRot(Slagboom, Xrot, Yrot+1, Zrot);
	SlagboomCount++;
}
else
{
	KillTimer(SlagboomTimer);
}
}

Ik heb echt geen idee of het echt zal werken en mogelijk is.. maar je kan het proberen... :puh:

Dan beweegt alleen het geheel en niet alleen de slagboom :( , ik denk dat het gewoon onmogelijk is

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...