[Tutorial] MoveObject + exemplu.

Vezi subiectul anterior Vezi subiectul urmator In jos

[Tutorial] MoveObject + exemplu.

Mesaj  k1d*;x la data de Sam Iun 26, 2010 4:10 am

TUTORIAL REALIZAT DE CMG4Life!
Explicatie[/size]

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.

Cod:
CreateObject(971, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);

Dar acum, nu-l putem folosi, pentru ca nu i-am dat un ID. ID-ul e pt identificarea obiectului, "numele" obiectului.
Acum ii vom da "numele". Pentru asta vom creea o arie noua.

Cod:
new obiect;

Iar acum i-o vom atribui obiectului creat. Deci se schimba in felul urmator.

Cod:

obiect = CreateObject(971, 0.0,0.0,0.0, 0.0, 0.0, 0.0);

Acum obiectul nostru este creat si are un "nume" . Iar acum ne vom folosi de acel nume.
Pentru a muta obiectul creat mai devreme, folosim functia MoveObject.

Cod:

MoveObject(obiect, 1.0, 1.0, 1.0, 5);

Putem folosi aceasta functie oriunde vom dori in script sa mutam obiectul.
[size=10pt]
Aplicatie[/size]

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.

Cod:
#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;
}

Acest mod nu va functiona corect daca il rulati, aceasta e doar partea legata de obiect, pentru a arata un exemplu.

Pentru cel de al 2-lea mod: Scrierea comenzii /obiect, va misca obiectul catre o alta pozitie decat locatia "natala" .

Cod:

#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;
}

Acest mod nu va functiona corect daca il rulati, aceasta e doar partea legata de obiect, pentru a arata un exemplu.

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.

Cod:
#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;
}

Acest mod nu va functiona corect daca il rulati, aceasta e doar partea legata de obiect, pentru a arata un exemplu.


Acesta este tutorialul meu despre functia MoveObject.

_________________
[Trebuie sa fiti inscris si conectat pentru a vedea acest link] .... Ca intodeauna ....

[Trebuie sa fiti inscris si conectat pentru a vedea aceasta imagine]

I am the best administraotr for Choose-Community

k1d*;x
Administrator
Administrator

Mesaje Mesaje : 245
Puncte Puncte : 14390
Localizare Localizare : Prin Romania...
Data de inscriere Data de inscriere : 12/06/2010
Stare de spirit Stare de spirit : Foarte Buna :)

http://xtreme-comunnity.forumz.ro

Sus In jos

Vezi subiectul anterior Vezi subiectul urmator Sus

- Subiecte similare

 
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum