ricardobolder Geplaatst: 22 mei 2008 Rapport Geplaatst: 22 mei 2008 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 ? Reageren
$NeoSyp$ Geplaatst: 22 mei 2008 Rapport Geplaatst: 22 mei 2008 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 Reageren
ricardobolder Geplaatst: 22 mei 2008 Auteur Rapport Geplaatst: 22 mei 2008 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. Reageren
nick5556 Geplaatst: 22 mei 2008 Rapport Geplaatst: 22 mei 2008 Je kan ze dicht laten gaan als je er met een treintje langs rijd... Reageren
Sandra Geplaatst: 22 mei 2008 Rapport Geplaatst: 22 mei 2008 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... Reageren
nick5556 Geplaatst: 23 mei 2008 Rapport Geplaatst: 23 mei 2008 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... Dan beweegt alleen het geheel en niet alleen de slagboom , ik denk dat het gewoon onmogelijk is Reageren
Recommended Posts
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.