Explicatie
MoveObject(objectid, Float:X, Float:Y, Float:Z, Float:Speed);
objectid ID-ul obiectului pe care vrei sa-l muti.
Float:X Noile coordonate X.
Float:Y Noile coordonate Y.
Float:Z Noile coordonate Z.
Float:Speed Viteza cu care va fii mutat obiectul.
Functia nu returneaza nici o valoare asa ca e mai bine sa o ignori.
Pentru a muta un obiect, mai intai trebuie sa-l cream,
Aici, 971 e idul obiectului in sine, cum ar veni modelul, 0.0 se refera la X, al 2-lea 0.0 la Y iar al 3-lea la Z, al 4-lea la rotatie X, al 5-lea la rotatie Y iar al 6-lea la rotatie Z.
Code: Select all
CreateObject(971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
Acum ii vom da "numele". Pentru asta vom creea o arie noua.
Code: Select all
new obiect;
Code: Select all
obiect = CreateObject(971, 0.0,0.0,0.0, 0.0, 0.0, 0.0);
Pentru a muta obiectul creat mai devreme, folosim functia MoveObject.
Code: Select all
MoveObject(obiect, 1.0, 1.0, 1.0, 5);
Aplicatie
Putem sa folosim MoveObject in 3 moduri diferite, primul mod este: miscarea determinata de un timer setat la un anumit punct, cel de al 2-lea mod este: miscarea determinata de o comanda, iar cel de al 3-lea mod este: miscarea determinata de o actiune.
Pentru fiecare mod voi da un exemplu:
Pentru Primul Mod: Miscarea unui obiect de la o pozitie la alta, cand Gamemodul va fii executat.
Code: Select all
#include <a_samp>
new obiect;
forward MiscareObiect();
public MiscareObiect()
{
MoveObject(obiect, 2.0, 3.0, 1.0, 5);
return 1;
}
public OnGameModeInit()
{
obiect = CreateObject(971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
SetTimer("MiscareObiect", 2 * 1000, 1); // 2 secunde si se repeta
return 1;
}
Pentru cel de al 2-lea mod: Scrierea comenzii /obiect, va misca obiectul catre o alta pozitie decat locatia "natala" .
Code: Select all
#include <a_samp>
new obiect;
public OnGameModeInit()
{
obiect = CreateObject(971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if( strcmp(cmdtext, "/obiect", true)==0)
{
MoveObject(obiect, 12.0, 0.0, 1.0, 5);
return 1;
}
return 0;
}
Pentru cel de al 3-lea mod: Miscarea unei porti in pozitia initiala, determinata de un Timer.
*Pentru acest exemplu va voi arata mai intai cum sa creati o poarta, iar apoi exemplul in sine va fii miscarea portii prin timerul setat la pozitia initiala.
*Poarta va fi "obiect" miscarea ei in sus cu 2 grade pe axa Z va fii determinata de comanda /obiect, in acel moment va fii setat un timer care o va misca in pozitia initiala in 5 secunde.
Code: Select all
#include <a_samp>
new obiect;
forward Actiunea(playerid);
public Actiunea(playerid)
{
MoveObject(obiect, 0.0, 0.0, 0.0, 5);
return 1;
}
public OnGameModeInit()
{
obiect = CreateObject(971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if( strcmp(cmdtext, "/obiect", true)==0)
{
MoveObject(obiect, 0.0, 0.0, 2.0, 5);
SetTimerEx("Actiunea", 5 * 1000, 0, "i", playerid); //5 secunde , nu se repeta, valoarea este integer pt playerid
return 1;
}
return 0;
}
Acesta este tutorialul meu despre functia MoveObject. Postati daca aveti nelamuriri.
Salut.