[Ajuda] Acontecer algo aleбtorio
#1

Procurei mas nгo achei, por exemplo, Um player quando digita /aleatorio Receberia uma arma aleatуria, tipo, Eagle com 10% de chance, Shotgun com 50% Faca com os outros 40%...

Entenderam? Nгo consegui achar aqui no forum :/
Reply
#2

pawn Код:
forward GiveRandomGun(playerid);
public GiveRandomGun(playerid)
{
    new rand = 1 + Random(45);
    while(rand == 38 && rand == 35)// adiciona && rand == ID DA ARMA Q VC N QUER Q ELE RECEBA
    {
        rand = 1+Random(45);
    }
    GivePlayerWeapon(playerid,rand, POE A MUNIЗГO Q VC QUISER AQUI);
}
// o acima й o jeito 1, mas eu prefiro o jeito 2:


RandomGun()
{
new rand = Random(10);//10 = o numero maximo q o random vai pegar
if(rand == 0)
    return 24; // id da eagle
else if(rand == 1)
    return 31;//id da m4
else if(rand == 2 || rand == 3 || rand == 4)//quanto mais numeros vc colocar vc aumenta a chance dele ganhar esta arma
    return 22;//id da 9mm
else if(rand == 5 || rand == 6 || rand == 7 || rand == 8)
    return 25;//id da shotgun
else if(rand == 9 || rand == 10)
    return 4;//id da faca
}

GivePlayerWeapon(playerid, RandomGun, 500);//vc usa assim no codigo do comando q dara a arma (500 = poe a muniзгo q vc quiser)
Fiz do 0, qq problema sу falar.
Reply
#3

eu keria saber isso tbm pois nao entendi nada pra min faser uns sistema akie ;s
Reply
#4

Diga oq vc quer fazer ai eu faзo e explico linha por linha pra vc entender e poder fazer o seu depois...
Reply
#5

bom como tou fasendo meu gm vou faser outros sistema tipw no futuro quando ja souber mais solbre programaзao de gta faser lotйrica ai vai ter ke faser 1 sortei de numero eletуrio sortiando cada hora 1 numero e assim se alguem aceta no /lotйrica [numero] da o dindin se nao acumula sks?
Reply
#6

Se vocк for fazer como na vida real, de acumular o dinheiro pago, vc tem q fazer assiim:

pawn Код:
new Acumulado;//variavel q vai guardar o dinheiro acumulado.
new Ticket[MAXPLAYERS];

//no comando que compra o ticket loterico coloque :
Acumulado += PREЗO DO TICKET;
Ticket[playerid] = ticket q ele comprou;//variavel vai guardar o numero do ticket q a pessoa comprou

forward IniciarLoterica();
public IniciarLoterica()
{
    new string[70];
    new Rand = Random(80);//o Random(); retorna um numero random de 0 atй o numero q vc colocar dentro dos parenteses, substitua 80 pelo numero maximo q vc quer q saia na loteria
    for(new i=0; i<MAXPLAYERS; i++)//vai checar todos os players
    {
        if(Rand == Ticket[i])//checa se o player tem o ticket com mesmo numero q saiu no random
        {
            GivePlayerMoney(i, Acumulado);//da o dinheiro.
            format(string, 30, "Vocк ganhou %d na loteria!",Acumulado);//formata a mensagem com um numero dentro.
            SendClientMessage(i, COR, string);//envia a msg.
            Acumulado = 0;//reseta o acumulado
            return 1;//cancela a operaзгo toda.
        }//sу uma obs: se 2 players tiverem o mesmo ticket sу o q tiver o ID menor vai receber, mas isso vc pode tratar dps..
    }
    format(string, 70, "Ninguem acertou na loteria portanto o premio acumulou para $%d", Acumulado);
    SendClientMessageToAll(COR, string);
    return 1;
}

//Dentro da public OnGameModeInit
SetTimer("IniciarLoterica", TEMPO, true);//coloque o tempo em milisegundos pra que ela fique sorteando um novo numero
fiz do 0 portanto qq erro й sу pedir q eu resolvo
Reply
#7

Topo

pawn Код:
new RandomWeapons[10] = {23,24,25,26,27,28,29,32,30,31};
new Random;
No comando

pawn Код:
GivePlayerWeapon(playerid, RandomWeapons[random(9)], 150);
Bota resolvido, e me da Reputation
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)