Jump to content

TuT


Guest machovci

Recommended Posts

PawnoBOX.net

Prosinec 16, 2008, 04:44:53 pm *

Vítej, Host. Prosím přihlaš se nebo se zaregistruj.

Nedostal jsi svůj aktivační email?

 

Přihlaš se uživatelským jménem, heslem a délkou sezení

 

Vše o GTA Multiplayerech.. Zaparit.cz Game-Portal.cz GamesLive.cz - Herní Pevnost - Recenze, Preview, Novinky, Cheaty, Databáze her, Fanstránky a mnohem více phpBoard.cz -Naučte se php

Novinky: Zmenena sekcia programovanie, prosim piste tuty a pod Wink

 

Domů Nápověda Shop Uživatelé Přihlásit Registrovat

PawnoBOX.net > Pawno > Tutorialy (Moderátoři: JiGSaW, KiLLerisko, MARK GREEN) > [TUT] IsPlayerInSphere() - jak na nej?

Stran: [1] Dolů

« předchozí další »

Tisk

Autor Téma: [TUT] IsPlayerInSphere() - jak na nej? (Přečteno 745 krát)

> TomsonTom <

Mistr Pawna, aneb

Advanced User

***

Offline Offline

 

Flag:

Příspěvků: 289

722.28 credits

 

View Inventory

Send Money to > TomsonTom <

 

246887056 [email protected]

Email

 

 

[TUT] IsPlayerInSphere() - jak na nej?

« kdy: Leden 15, 2008, 09:51:34 pm »

 

IsPlayerInSphere()

 

Tento tutorial je tu proto (necekane), aby vam osvetlil, jak vyuzit vcelku duleziteho prikazu IsPlayerInSphere().

 

Co budeme potrebovat nastudovat:

 

* Co je to prikaz

* Jak zjistit a ulozit ve hre presne souradnice daneho mista (napr. pres DEBUG)

* Znat zakladni pojmy jako playerid, souradnice X, Y a Z, ...

* Pro pochopeni praktickeho prikladu vedet, co je to PickUp

 

Jak vidite, dnes nepujde o nic sloziteho. Tak hodne stesti! Smiley

 

Prakticke vyuziti prikazu:

 

Tento prikaz se da celkem vhodne vyuzit na mistech tzv. PickUpu. Jiste jste se jiz setkali s tim, ze pri pouziti publicu OnPlayerPickUpPickup se zratka nekdy nezadari a nekdy se PickUpy proste promichaji, a tak treba v autoskole misto ridicaku vam hra nabizi zalet na Bahamy - a na letisti pote zase ridicsky prukaz. Misto toho se da vyuzit vytvoreni PickUp ikonky (CreatePickup) - abychom vedeli, kde presne ridicak je - ale kontrolovat, zda stojime v miste ikonky uz bude prikaz IsPlayerInSphere.

 

Zaciname!

 

Nejdrive bude nutne kamkoliv do modu (ale ne do zadneho Publicu!) vlozit nasledujici radky. Ty vlastne zajistuji funkci toho prikazu a bez nich byste se proste neobesli.

 

Kód:

 

IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius)

{

if(GetPlayerDistanceToPointEx(playerid,x,y,z) < radius){

return 1;

}

return 0;

}

 

GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z)

{

new Float:x1,Float:y1,Float:z1;

new Float:tmpdis;

GetPlayerPos(playerid,x1,y1,z1);

tmpdis = floatsqroot(floatpower(floatabs(floatsub(x,x1)),2)+floatpower(floatabs(floatsub(y,y1)),2)+floatpower(floatabs(floatsub(z,z1)),2));

return floatround(tmpdis);

}

 

 

 

Nasledne uz budeme moci vyuzit samotneho prikazu. Vice v komentarich v kodu:

 

Kód:

 

IsPlayerInSphere(playerid, X, Y, Z, radius);

 

// PlayerID je ID hrace, ktereho budeme kontrolovat

// X, Y a Z jsou souradnice stredu oblasti (kruhu), do ktere ma hrac vstoupit

// Radius je cislo, ktere oznacuje polomer (mozna ale i prumer) tohoto kruhu; jake cislo mate pouzit musite vsak ozkouset sami, ja pouzivam cisla 5 nebo 8

 

 

 

Prakticky priklad:

 

Ukazeme si to napriklad na vyse zminenem prikladu s PickUpy.

 

Vytvorime PickUp...

 

Kód:

 

PickUp_LVPD = CreatePickup(1239, 23, 2287.1475, 2430.4619, 10.8203); // Policejni stanice v LV

 

 

 

Vytvorime si timer...

 

Kód:

 

// Na zacatek pod #define

forward pickup();

 

// Do OnGameModeInit

SetTimer("pickup", 5000, 1); // Interval kontroly, zda je hrac v kruhu (zde 5 sekund)

 

 

 

A nakonec si vytvorime kontrolu s nasim prikazem...

 

Kód:

 

public pickup() // Po kazdych 5 sekundach se stane nasledujici

{

for (new i=0; i

{

if (IsPlayerConnected(i)) // Je hrac s ID i pripojen?

{

if (IsPlayerInSphere(i, 2596.8132, 1089.3542, 10.8222, 5) == 1) { GameTextForPlayer(i, "~r~Zlodejsky ~w~dum", 6000, 1); } // Pokud je hrac v oblasti zde stanovene, vypise se hraci text "Zlodejsky dum"

}

}

}

 

a dalsi kopir ale je to fajn vec

Link to comment
Share on other sites

PawnoBOX.net

Prosinec 16,................................................

a dalsi kopir ale je to fajn vec

OMG, radší bych se nazačinal s kopčením navíc s 9příspěvkama

Nic proti lamkam jako ja :d

ale jako tohle zkopirovany a ještě k tomu s datumem nadpisem atd tak to se na mě nezlob ale to je fakt LOOOOOOOOOL...

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...