MovePlayerObject

Iš GTA-Online Wikipedia.
Peršokti į: navigaciją, paiešką

MovePlayerObject

Funkcijos pavadinimas MovePlayerObject
Sintaksė
Reikalavimai nėra
Kategorija Objektų Funkcijos.png Objektų Funkcijos
Biblioteka a_objects.inc
Atsiradimas 0.2
Pakeitimai 0.3d RC3, 0.3d RC3-2, 0.3d RC4, 0.3d RC5-2

Aprašymas

Funkcija skirta judinti žaidėjo objektą, t.y. pakeisti jo poziciją sklandžiu judėjimu.

Sintaksė

(playerid, objectid, Float:X, Float:Y, Float:Z, Float:Speed, Float:RotX = -1000.0, Float:RotY = -1000.0, Float:RotZ = -1000.0)

Privalomi parametrai

Šis parametras yra privalomas.playerid Žaidėjo ID, kuriam priskirtas objektas.
Šis parametras yra privalomas.objectid Objekto ID, kuris judinamas.
Šis parametras yra privalomas.Float:X Naujos pozicijos X koordinatė.
Šis parametras yra privalomas.Float:Y Naujos pozicijos Y koordinatė.
Šis parametras yra privalomas.Float:Z Naujos pozicijos Z koordinatė.
Šis parametras yra privalomas.Float:Speed Objekto judėjimo greitis (vienetai per sekundę).

Neprivalomi parametrai

Šis parametras nėra privalomas.Float:RotXNauji objekto pasisukimo laipsniai X ašies atžvilgiu. Numatytoji reikšmė -1000.0.
Šis parametras nėra privalomas.Float:RotYNauji objekto pasisukimo laipsniai Y ašies atžvilgiu. Numatytoji reikšmė -1000.0.
Šis parametras nėra privalomas.Float:RotZNauji objekto pasisukimo laipsniai Z ašies atžvilgiu. Numatytoji reikšmė -1000.0.


Grąžinama reikšmė:
Laikas milisekundėmis, per kurį objekto pozicija pakis iki nurodytosios.

Pavyzdys

Elementarus objekto judinimas

Komanda skirta judinti objektą.

Blantas 19:12, 9 balandžio 2012 (EEST)

new objektas[MAX_PLAYERS]; // Kintamasis skirtas saugoti konkretaus objekto ID.
 
public OnPlayerConnect(playerid)
{
        // Kintamasis „objektas“ įgauna sukurto objekto ID reikšmę.
        objektas[playerid] = CreatePlayerObject(playerid, 980, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); // Sukuriamas objektas...
                                                                    // Pozicijoje:         0.0 0.0 0.0
                                                                    // Pasisukimo laipsn.: 0.0 0.0 0.0
        return 1;
}
 
public OnPlayerCommandText(playerid, cmdtext[])
{
        if(strcmp(cmdtext, "/moveplayerobject", true) == 0)
        {
                new string[50];

                new laikas = MovePlayerObject(playerid, obj, 0, 0, 10, 2.00, 0, 0, 0);
                // Žaidėjo objektas priverčiamas judėti į poziciją: 0.0 0.0 10.0
                // Kadangi objekto pradiniai pasisukimo laipsniai sutampa su šioje...  
                // ... funkcijoje nurodytais - objektas judėdamas nesisukios.

                format(string, sizeof(string), "Objektas baigs judėti už %d ms.", laikas);
                SendClientMessage(playerid, 0xFF000000, string);
                return 1;
        }
        return 0;
}

Papildoma

  • Objekto judėjimo greitis - vienetai per sekundę. Nurodžius šią reikšmę, pavyzdžiui, lygią 10, objektas per vieną sekundę pajudės per 10 žaidimo atstumo vienetų (pavyzdžiui, nuo [0,0,0] iki [0,0,10]).
  • Objektą judinant į tą pačią poziciją, objektas nejudės, nors ir pasisukimo laipsniai bus skirtingi.

Istorija

Release
0.2 Pridėta galimybė judinti žaidėjų objektus.
Release Candidate
0.3d RC3 Patobulinta MovePlayerObject funkcija. Nuo šiol bus įmanoma pasukti objektą.
0.3d RC3-2 Nuo šiol panaudojus MovePlayerObject funkciją su objektų, kuri judėjo iki funkcijos panaudojimo, ankstesnioji objekto judėjimo trajektorija bus sustabdyta bei pratęsta naująją.
0.3d RC4 MovePlayerObject funkcija nuo šiol nekontroliuos objekto sukimosi, jei parametrai nustatantys objekto sukimosi koordinates nebus panaudoti. Taip pat ši funkcija neįtakos SetPlayerObjectRot funkcijos.
0.3d RC5-2 Tam tikri pataisimai su objektų pozicijų keitimu. Nuo šiol panaudojus MovePlayerObject funkciją su objektu, kuris jau jau juda, objektas akimirksniu bus nukeliamas į prieš tai nustatytą MovePlayerObject funkcijos galutinę padėtį bei po to bus pradėta judinamo objekto sekantis pozicijos keitimas. Norint, jau judinamą objektą pajudinti iš jo realios pozicijos, prieš antrąjį judinimą būtina panaudoti StopPlayerObject funkciją. Tuomet objektas bus judinamas iš paskutinės realios pozicijos, t.y. ne iš galutinės, kuri buvo nustatyta panaudojant MovePlayerObject funkciją pirmąjį kartą.

Rekomenduojama

Siūlome patikrinti žemiau išvardintas funkcijas, kurios susijusios su MovePlayerObject veikimu.

Globalūs objektai
  • CancelEdit: Nutraukti objekto redagavimo rėžimą.
  • EditObject: Leisti žaidėjui redaguoti globalų objektą.
  • GetObjectPos: Išgauti globalaus objekto pozicijos koordinates.
  • GetObjectRot: Išgauti globalaus objekto pasisukimo laipsnius.
  • MoveObject: Judinti globalų objektą į naują poziciją.
  • SetObjectRot: Nustatyti globalaus objekto pasisukimo laipsnius.
  • StopObject: Sustabdyti judantį globalų objektą.
Žaidėjų objektai
  • MovePlayerObject: Judinti žaidėjo objektą į naują poziciją.

Serverio iškviečiamos funkcijos
  • OnObjectMoved: Iškviečiama globaliam objektui baigus judėti.
Asmeniniai įrankiai
San Andreas Multiplayer