OnPlayerWeaponShot

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

OnPlayerWeaponShot

Funkcijos pavadinimas OnPlayerWeaponShot
Sintaksė
Reikalavimai nėra
Veikimo pusė Serveris
Kategorija Ginklų Funkcijos.png Ginklų Funkcijos
Biblioteka a_samp.inc
Atsiradimas 0.3z RC1
Pakeitimai 0.3z RC2, 0.3z RC5, 0.3.7 RC1

Aprašymas

Ši funkcija iškviečiama serverio, žaidėjus panaudojus ginklą, t.y. paleidus šūvį. Funkcija aptikti išsamią informaciją apie kiekvieną žaidėjo paleistą šūvį, patikrinti į kokį žaidimo elementą kulka atsitrenkė (žaidėją, transporto priemonę, objektą ar į nieką), ginklo tipo, pataikyto elemento id bei pačią poziciją, į kurią kulka atsitrenkė, žaidimo erdvėje. Funkcija iškviečiama pataikius į šiuos elementus:

ID Priskirta reikšmė Paaiškinimas
0 BULLET_HIT_TYPE_NONE Žaidimo erdvė
1 BULLET_HIT_TYPE_PLAYER Žaidėjas
2 BULLET_HIT_TYPE_VEHICLE Transporto priemonė
3 BULLET_HIT_TYPE_OBJECT Globalus objektas
4 BULLET_HIT_TYPE_PLAYER_OBJECT Žaidėjo objektas

Sintaksė

(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)

Parametrai

Šis parametras yra privalomas.playerid Žaidėjo, kuris paleido šūvį, ID.
Šis parametras yra privalomas.weaponid Ginklo, iš kurio buvo paleistas šūvis, ID.
Šis parametras yra privalomas.hittype Dalyko, į kurį kulka pataikė, tipas. Galimos reikšmės nurodytos aukščiau esančioje lentelėje.
Šis parametras yra privalomas.hitid Dalyko, į kurį kulka pataikė, ID.
Šis parametras yra privalomas.Float:fX Taško, į kurį kulka pataikė, X koordinatė.
Šis parametras yra privalomas.Float:fY Taško, į kurį kulka pataikė, Y koordinatė.
Šis parametras yra privalomas.Float:fZ Taško, į kurį kulka pataikė, Z koordinatė.


Grąžinama reikšmė:
Grąžinamąją reikšmę nustačius į 0, paleistas šūvis nepadarys jokios žalos. Reikšmę nustačius į 1 - šūvio žala bus įgalinta.

Pavyzdys

Šūvių informacijos peržiūra

Žaidėjui iššovus, visą galima informacija apie šūvį bus atspausdinama pokalbių lange.

Blantas 14:04, 24 sausio 2014 (EET)

public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
    new Eilute[144];
    format(Eilute, sizeof(Eilute), "Ginklas %i. Pataikyta į: %i   ID: %i   Pozicija: %f, %f, %f", weaponid, hittype, hitid, fX, fY, fZ);
    SendClientMessage(playerid, -1, Eilute);
    return 1;
}

Papildoma

  • Žaidėjui pataikius į tam tikra konkretų objektą, ne į žaidimo erdvę (BULLET_HIT_TYPE_NONE), gaunamos koordinatės atitiks atstumą nuo pataikyto elemento centro koordinačių. Pavyzdžiui, žaidėjui pataikius į kito žaidėjo koją, koordinatės bus lygios atstumui nuo žaidėjo modelio centro iki pataikytos kojos.
  • Kiekvienas ginklas turi tam tikrą nuotolio limitą, dėl kurio kulka paleista iš ginklo negali pasiekti per toli esančių elementų. Įvykus šiam scenarijui, serveris šūvį užskaitys kaip nepavykusį (BULLET_HIT_TYPE_NONE).
  • Šūvis užskaitomas kaip sėkmingas, jei kulka pataiko į elementą, kuris turi kolizijos modelį. Pavyzdžiui, šaudant į mažus krūmus, vandenį, dūmus ar kitus panašius objektus, serveris neaptiks susidūrimo, kadangi minėtieji objektai neturi kolizijos modelio.
  • Naudojant transporto priemonėse esančius ginklus, šūviai nėra registruojami.
  • Ši funkcija neiškviečiama nustačius serverio delsos kompensavimo rėžimą lygų nuliui.

Istorija

Release Candidate
0.3z RC1 Pridėta galimybė aptikti išsamią informaciją apie kiekvieną žaidėjo paleistą šūvį.
0.3z RC2 Ištaisyta klaida, dėl kurios koordinatės gaunamos OnPlayerWeaponShot funkcijoje buvo parenkamos neteisingai dėl kitų objektų skirtų atvaizduoti šūvių efektus.
Pridėtas atskiras pataikyto elemento tipas, tikrinant šūvius OnPlayerWeaponShot funkcijoje, skirtas aptikti žaidėjų objektams (BULLET_HIT_TYPE_PLAYER_OBJECT).
0.3z RC5 Serveriui nustačius delsos kompensavimo rėžimą lygų nuliui, serveryje nebus atliekami jokie delsos kompensavimo veiksmai, įskaitant ir iškviečiamas serverio funkcijas OnPlayerWeaponShot ir kt.
0.3.7 RC1 Ginklų ID nuo šiol sinchronizuojami su kulkos ID, tai reiškia, jog OnPlayerWeaponShot funkcija nebus iškviečiama su klaidinga informacija.

Rekomenduojama

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

  • EnableTirePopping: Kontroliuoti galimybę susprogdinti transporto priemonių padangas.
  • GetPlayerAmmo: Išgauti laikomo žaidėjo ginkle esamų kulkų kiekį.
  • SetPlayerAmmo: Nustatyti pasirinktam žaidėjo ginkle kulkų kiekį.
Serverio iškviečiamos funkcijos
  • OnPlayerWeaponShot: Iškviečiama žaidėjui panaudojus ginklą.
Asmeniniai įrankiai
San Andreas Multiplayer