[Pomoc] 1 random igrac meta a da nije u org id-a 8


Započeo ѕєуzιι¢н™.amx, Jul 31, 2011, 18:59:27 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim: SA Reloaded Vega edit
Detaljan opis problema: Zelim napraviti da 1 igrac dobije 1 osobu koja nije u org id 8 i kad je ubije dobije obavjest i 1500$
Dio skripte:
Neke slike/video za lakse dobivanje pomoci(neobavezno):
Izrada web aplikacija/desktop aplikacija, kontakt PM.
VPS/Dedi managment 'n' hosting @pm also.


Pravi nesto poput Hitman Organizacije,dobija mete,on sada zeli da ne moze dobiti metu igraca koji je u organizaciji "id 8" (npr org ID 8 je hitman).Ako sam i ja shvatio.

Upravo si dobro shvatio ja tocno to ocu ako nekom nije problem ili ima vec taj kod da mi da bio bi stvarno zahvalan
Izrada web aplikacija/desktop aplikacija, kontakt PM.
VPS/Dedi managment 'n' hosting @pm also.

Citat: pHon poslato Jul 31, 2011, 19:18:45 POSLE PODNE
Ja te apsolutno niÅ¡ta nisam skontao.  ???

:/

Želi da neko od igrača (napomena samo za tebe: neki od onih koji su online XD) dobije neku metu. Kada ubije tu metu, obojica dobijaju poruke i "ubica" 1500$. Meta ne sme da bude igrač koji je u organizaciji id 8.

Dakle, moj dragi seyiziich il kako god se zoveš. Ja bi uradio ovako:
Napraviš jedan novi niz (vektor) i jednu običnu promenjivu. Promenjiva služi da saznaš koliko ima igrača na serveru.
Znači, povećavaš promenjivu, i ako postoji online igrač čiji je id trenutna vrednost promenjive, n-ti element u nizu dobija vrednost koja odgovara IDu tog igrača.
Naprimer:
new n,
new igraci[MAX_PLAYERS];


n = 0;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))  
{
igraci[n] = i;
n++;
}
}


IDovi igrača na serveru ne moraju biti redni, mogu biti naprimer: 0, 3, 7, 9, 10, 11, 15 itd. Dok IDovi izmeÄ'u ne postoje, ovde sam ono Å¡ta ne postoji "eliminisao". Odnosno sada nam "IDovi" izgledaju ovako: 0, 1, 2, 3, 4, 5, 6 ...

I sada kažem izaberem neki slučajan broj iz opsega 0 i N, gde N označava broj igrača - 1.

Naprimer:

new rand = random(n);


(Ne znam sada kako radi funkcija random, da li kreira slučajan broj u opsegu 0 i N ili u opsegu 0 i N-1, nebitno, ako je ovo drugo onda ću urediti malo randomizaciju, ako to ne uradi neko pre mene).

I sada kažeš:

for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(igraci[i] == rand)) 
{
Kontakt[playerid] = igraci[i];
PosaljiPoruku();
return 1;  // ili break;
}
}
}



Dakle, sada Kontakt[playerid] poseduje neki ID koji treba ubiti. Kada igrač umre, samo proveravaÅ¡ da li je bio meta odreÄ'enom igraču, ako jeste, Å¡aljeÅ¡ im poruke i dajeÅ¡ ubici 1500$.
I naravno, u ovome zadnjem kodu trebaš uporediti da li je id igrača koga treba ubiti i id igrača koji ubija različiti.

Evo, dao sam ti ideju kako uraditi, pa se ti sada igraj sa kodom. Pretpostavljam da ne čekaš da mi tu sve uradimo i ti samo C/P. :)
Poslednja Izmena: Jul 31, 2011, 19:37:21 POSLE PODNE od mikec

Hvala na trudu i objasnjenju ali cini mi se da to necu znat napraviti :(
Izrada web aplikacija/desktop aplikacija, kontakt PM.
VPS/Dedi managment 'n' hosting @pm also.