Salut, eu ma numesc Razvan si am 16 fac 17 ani. Azi am decis sa ajustez comanda [/find], la un GM cum este ce-a al serverului bugged-ului.
Ce facem?
- Vom face un textdraw cu numele si id persoaneri care vrem sa o cautam.
- Vom face un textdraw cu distanta pana la persoana care vrei sa o cautam.
ATENTIE!
- Distanta de la player va fi exprima printr-un timer de doar o secunda.
Ok deci sa incepem:
Facem doua news.
new playerfind[MAX_PLAYERS];
new find[MAX_PLAYERS];
Mergem la comanda noastra [/find] si adaugam:
La multe Gmeuri am vazut ca la comanda find este exprimata 'targetID', dupa care ne vom lua si noi.
playerfind[playerid] = targetID;
find[playerid] = 1;
Daca avem textdraw-ul adaugam:
TextDrawShowForPlayer(playerid, FINDTEXT[playerid]);
TextDrawShowForPlayer(playerid, Distance22[playerid]);
FINDTEXT[playerid]// este textdraw-ul nostru.
Facem un format:
new nume[24];
GetPlayerName(targetID, nume, 23);
format(szMessage, 400, "TARGET NAME: %s(%d)");
TextDrawSetString(FINDTEXT[playerid], szMessage);// Numele va fi plasat pe acel textrdraw (FINDTEXT);
Mergem la o functie de un timper cu o secunda, dar daca nu avem vom face noi in felul urmator:
Facem un forward:
forward Bugged();
Acuma mergem la OnGameModeinit():
Si adaugam:
SetTimer("Bugged", 1000, 1); // Bugged este functia, 1000 este timerul de o secunda si 1 inseamna de cate ori se va repeta, functia.
Facem publicul:
public Bugged() {
// Adaugam:
foreach(Player, i)// Atentie e pe foreach.> Inseamna ca parcurge toti playeri de pe server pana la cel pe care il cautam.
{
if(PlayerFind == playerfind)
{
if(find == 1){
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerfind, X, Y, Z);// cauta positia playerului cautat.
new Float: distance = GetPlayerDistanceFromPoint(i, X, Y, Z);//Afla pozitia playerului cautat.
format(szMessage, 400, "~w~DISTANCE:~r~ %.0fm~w~", distance);// Ne Face formatul la textdraw.
TextDrawSetString(Distance22, szMessage);// Seteaza stringul la textdraw.
}
}
}
return 1;
}
Nu stiu ca are..
Dar in loc de acele imagini este scris: [playerid]