Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2017-09-06, 23:32


JameS18







Wiek: 27
Na forum: 3212 dni
Posty: 20
Nick w MP: JameS



Respekt: 50

Witam. Czy powie mi kto? jak zrobi? losowanie, ?e co 10 minut losuje jakiego? gracza i dostaje np. 5000 score?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-09-06, 23:47


Michatex

PAWN Dev.






Wiek: 24
Na forum: 3848 dni
Posty: 90
Nick w MP: Michatex

Piwa: 1153

Respekt: 80

U?yj tutaj random...

Pawn

new rand random(sizeof(playerid));

SendClientMessage(rand, -1"Zosta?e? wylosowany i dosta?e? 5k score.");


Jako? tak...

Podpis
Jeśli Ci w czymś pomogłem nie zapomnij o wystawieniu PIWA w ramach podziękowań. Mile widziany również jest RESPEKT.
Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
JameS18
Wysłany: 2017-09-07, 00:39


JameS18







Wiek: 27
Na forum: 3212 dni
Posty: 20
Nick w MP: JameS



Respekt: 50

Ok, dzia?a tylko caly czas tego samego gracza losuje. Kod:
Kod:

forward Losowanie(playerid);
public Losowanie(playerid)
{
new string[150];
new rand = random(sizeof(playerid));
SendClientMessage(rand, Zielony, "Zosta?e? wylosowany i dosta?e? 5k score.");

GiveScoreEx(rand,5000);
return 1;
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-09-07, 07:47


U123
[Usunięty]









xD

[pawn]
forward Losowanie();
public Losowanie()
{
start:
new randomid = random(GetPlayerPoolSize());
if(!IsPlayerConnected(randomid)) goto start;

SendClientMessage(randomid, -1, "hura");
return 1;
}
[/pawn]

+ SetTimer("Losowanie", czas, true); w OnGameModeInit

 

 
Więcej szczegółów
Wystawiono 1 piw(a):
JameS18
Wysłany: 2017-09-07, 15:01


JameS18







Wiek: 27
Na forum: 3212 dni
Posty: 20
Nick w MP: JameS



Respekt: 50

Ca?y czas losuje gracza z id 0 i jak wszyscy gracze wyjd? z serwera to serwer zawiesza si?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-09-07, 15:08


U123
[Usunięty]









Bo jakby? chocia? zainteresowa? si? po co u?y?em funkcji GetPlayerPoolSize to by? si? domy?li? dlaczego losuje zawsze gracza 0.

[pawn]

forward Losowanie();
public Losowanie()
{
start:
new randomid = random(GetPlayerPoolSize());
if(!IsPlayerConnected(randomid)) goto start;

if(OnlinePlayers() > 5)
{
SendClientMessage(randomid, -1, "hura");
}

return 1;
}

OnlinePlayers()
{
new x;
for(new i; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && !IsPlayerNPC(i)) x ++;
return x;
}
[/pawn]

 

 
Więcej szczegółów
Wystawiono 1 piw(a):
JameS18
Wysłany: 2017-09-07, 16:10


JameS18







Wiek: 27
Na forum: 3212 dni
Posty: 20
Nick w MP: JameS



Respekt: 50

Nadal losuje gracza z id 0

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-09-07, 17:38


silentus

#define true false






Wiek: 30
Na forum: 5282 dni
Posty: 71
Nick w MP: .silent

Piwa: 1462

Respekt: 116,1
Respekt: 116,1

"Mr.Reus" napisał/a:

Bo jakby? chocia? zainteresowa? si? po co u?y?em funkcji GetPlayerPoolSize to by? si? domy?li? dlaczego losuje zawsze gracza 0.

Pawn


forward Losowanie();
public Losowanie()
{
    start:
    new randomid random(GetPlayerPoolSize());
    if(!IsPlayerConnected(randomid)) goto start;
    
    if(OnlinePlayers() > 5)
    {
        SendClientMessage(randomid, -1"hura");
    }
   
    return 1;
}

OnlinePlayers()
{
    new x;
    for(new iMAX_PLAYERSi++) if(IsPlayerConnected(i) && !IsPlayerNPC(i)) ++;
    return x;
}


Stworzy?e? niesko?czon? p?tle (skokiem "goto") kt?ra wiesza w?tek serwera gdy wyjd? wszyscy z serwera.
Pawn


forward Losowanie();
public Losowanie()
{
    new playersCount 0poolSize GetPlayerPoolSize(), randomid INVALID_PLAYER_ID;
    for(new 0<= poolSizei++)
    {
        if(IsPlayerConnected(i) && !IsPlayerNPC(i))
            playersCount++;
    }
    
    if(playersCount <= 0)
        return 0// brak graczy
    
    while(!IsPlayerConnected(randomid))
    {
        randomid random(poolSize+1); // random(max) zwraca wartosc od 0 do (max-1), GetPlayerPoolSize zwraca najwieksze ID w puli graczy
        // wiec w przypadku gdy jest tylko jeden gracz moze zwrocic id 0, random wtedy ma przedzial 0-0. Z wiki: Using a value smaller than 1 gives weird values.
    }
    
    SendClientMessage(randomid, -1"Zostales wylosowany");
    SetPlayerScore(randomidGetPlayerScore(randomid)+5000);
    return 1;
}


Podpis


Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
JameS18
Wysłany: 2017-09-07, 22:59


JameS18







Wiek: 27
Na forum: 3212 dni
Posty: 20
Nick w MP: JameS



Respekt: 50

Ok, dzia?a. Dzi?kuj? za pomoc.

Postaw piwo autorowi tego posta
 

 
Tagi: losowanie :: gracza
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » Losowanie gracza Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku