Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: ѕєуzιι¢н™.amx poslato Jul 31, 2011, 18:59:27 POSLE PODNE

Naslov: [Pomoc] 1 random igrac meta a da nije u org id-a 8
Poruka od: ѕєуzιι¢н™.amx poslato Jul 31, 2011, 18:59:27 POSLE PODNE
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):
Naslov: Odg: [Pomoc] 1 random igrac meta a da nije u org id-a 8
Poruka od: Chuck:) poslato Jul 31, 2011, 19:18:45 POSLE PODNE
Ja te apsolutno niÅ¡ta nisam skontao.  ???
Naslov: Odg: [Pomoc] 1 random igrac meta a da nije u org id-a 8
Poruka od: Ray_Gonzalez poslato Jul 31, 2011, 19:20:19 POSLE PODNE
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.
Naslov: Odg: [Pomoc] 1 random igrac meta a da nije u org id-a 8
Poruka od: ѕєуzιι¢н™.amx poslato Jul 31, 2011, 19:22:35 POSLE PODNE
Upravo si dobro shvatio ja tocno to ocu ako nekom nije problem ili ima vec taj kod da mi da bio bi stvarno zahvalan
Naslov: Odg: [Pomoc] 1 random igrac meta a da nije u org id-a 8
Poruka od: mikec poslato Jul 31, 2011, 19:36:07 POSLE PODNE
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. :)
Naslov: Odg: [Pomoc] 1 random igrac meta a da nije u org id-a 8
Poruka od: ѕєуzιι¢н™.amx poslato Avgust 02, 2011, 13:27:31 POSLE PODNE
Hvala na trudu i objasnjenju ali cini mi se da to necu znat napraviti :(