[Tutorial] [TUT]Como Criar uma Corrida por RaceCheckpoint
#35

Vi que o post й um pouco antigo mas resolvi complementar rs

Depois de eu ver vбrios posts resolvi pegar um pouco de tudo e como nгo deu certo resolvi fazer do 0 me baseando nos cуdigos existentes, inclusive no ъltimo post que por sinal depois de algumas horas ficou bom.

Sу criar um novo arquivo no pawn, compilar e colocar no server.cfg o fs.

Aceito criticas para melhorar afinal ficou um pouco grande rs

PHP Code:
#include <a_samp>
//-----------------------------------DM CORRIDA MALUCA COMANDO /CORRIDAMALUCA-----------------------------------//
new carroDU[2];
new 
correndo[MAX_PLAYERS];
new 
corrida 0;
new 
cashp 0;
new 
desafiante;
new 
colocado 0;
new 
correndos[MAX_PLAYERS];
stock PlayerName(playerid)
{
    new 
Name[MAX_PLAYER_NAME];
    
GetPlayerName(playeridNameMAX_PLAYER_NAME);
    return 
Name;
}
new 
Float:carroe[2][4] = //4 = 4 coordenadas | 3 = 3 "valores" (X,Y,Z)
{
     {
2037.5669,849.1274,6.3006,91.2613},
     {
2037.5853,854.5974,6.6984,91.7104}
};
new 
Float:racha[17][3] = //4 = 4 coordenadas | 3 = 3 "valores" (X,Y,Z)
{
{
2021.9279,851.2713,6.4387},
{
1806.2888,851.1154,10.3762},
{
1597.7745,850.9503,6.4374},
{
1315.8704,886.0849,6.5154},
{
1227.3850,1170.5470,6.5219},
{
1228.7192,1804.4149,6.4378},
{
1229.5260,2301.2026,6.4387},
{
1447.5416,2452.2988,6.4377},
{
1849.4731,2497.6997,6.5153},
{
2287.5569,2607.9063,6.4585},
{
2609.7202,2514.3423,5.8201},
{
2706.6592,2158.3931,6.4492},
{
2705.5173,1674.4374,6.4448},
{
2706.8931,1278.5399,6.4373},
{
2624.1135,932.2136,6.4433},
{
2312.5583,854.1749,6.4375},
{
2049.3154,853.4050,6.4387}
};
public 
OnFilterScriptInit()
{
    print(
"\n--------------------------------------");
    print(
" Blank Filterscript by your name here");
    print(
"--------------------------------------\n");
    return 
1;
}
public 
OnFilterScriptExit()
{
    return 
1;
}
stock strtok(const string[], &index)
{
    new 
length strlen(string);
    while ((
index length) && (string[index] <= ' '))
    {
        
index++;
    }
    new 
offset index;
    new 
result[20];
    while ((
index length) && (string[index] > ' ') && ((index offset) < (sizeof(result) - 1)))
    {
        
result[index offset] = string[index];
        
index++;
    }
    
result[index offset] = EOS;
    return 
result;
}
stock strtokEx(const string[], &index)
{
    new 
length strlen(string);
    while ((
index length) && (string[index] <= ' '))
    {
        
index++;
    }
    new 
offset index;
    new 
result[64];
    while ((
index length) && ((index offset) < (sizeof(result) - 1)))
    {
        
result[index offset] = string[index];
        
index++;
    }
    
result[index offset] = EOS;
    return 
result;
}
public 
OnPlayerCommandText(playeridcmdtext[])
{
    new 
cmd[128];
    new 
tmp[128];
    new 
string[128];
    new 
idx;
    
cmd strtok(cmdtextidx);
    if(
strcmp(cmd"/corridamaluca"true) == 0)
    {
        if(
IsPlayerConnected(playerid))
        {
            
tmp strtok(cmdtextidx);
            if(!
strlen(tmp))
            {
                
SendClientMessage(playerid0xFFFFFFAA"USE: /corridamaluca [id] [Aposta]");
                return 
1;
            }
            new 
playa;
            new 
money;
            
playa ReturnUser(tmp);
            
tmp strtok(cmdtextidx);
            
money strval(tmp);
            if(
GetPlayerMoney(playerid) < money)
            {
                
SendClientMessage(playerid,0xFFFFFFAA,"Vocк nгo tem Dinheiro Suficiente");
                return 
1;
            }
            if(
corrida == 1)
            {
                
SendClientMessage(playerid,0xFFFFFFAA,"Estб tendo um Racha");
                return 
1;
            }
            if(
IsPlayerConnected(playa))
            {
                if(
playa != INVALID_PLAYER_ID)
                {
                    
correndo[playerid] = 1;
                    
carroDU[0] = CreateVehicle(434,carroe[0][0],carroe[0][1],carroe[0][2],carroe[0][3],1,0,60000);
                    
cashp money;
                    
desafiante playerid;
                    
PutPlayerInVehicle(playeridcarroDU[0], 0);
                    
TogglePlayerControllable(playerid0);
                    
format(string,sizeof(string),"O Jogador %s Desafiou Vocк para uma Corrida , Aposta %d Cash !",PlayerName(playerid),money);
                    
ShowPlayerDialog(playa,10,DIALOG_STYLE_MSGBOX,"Duelo",string,"Aceitar","Fechar");
                }
            }
        }
        return 
1;
    }
    return 
0;
}
public 
OnPlayerEnterRaceCheckpoint(playerid)
{
    switch(
correndos[playerid])
    {
         case 
1:
         {
              
DisablePlayerRaceCheckpoint(playerid);
              
SetPlayerRaceCheckpoint(playerid0racha[1][0], racha[1][1], racha[1][2], racha[2][0], racha[2][1], racha[2][2], 10);
              
correndos [playerid] = 2;
              return 
1;
         }
         case 
2:
         {
              
DisablePlayerRaceCheckpoint(playerid);
              
SetPlayerRaceCheckpoint(playerid0racha[2][0], racha[2][1], racha[2][2], racha[2][0], racha[2][1], racha[2][2], 10);
              
correndos[playerid] = 3;
              return 
1;
         }
         case 
3:
         {
              
DisablePlayerRaceCheckpoint(playerid);
              
SetPlayerRaceCheckpoint(playerid0racha[3][0], racha[3][1], racha[3][2], racha[3][0], racha[3][1], racha[3][2], 10);
              
correndos[playerid] = 4;
              return 
1;
         }
         case 
4:
         {
              
DisablePlayerRaceCheckpoint(playerid);
              
SetPlayerRaceCheckpoint(playerid0racha[4][0], racha[4][1], racha[4][2], racha[4][0], racha[4][1], racha[4][2], 10);
              
correndos[playerid] = 5;
              return 
1;
         }
         case 
5:
         {
              
DisablePlayerRaceCheckpoint(playerid);
              
SetPlayerRaceCheckpoint(playerid0racha[5][0], racha[5][1], racha[5][2], racha[5][0], racha[5][1], racha[5][2], 10);
              
correndos[playerid] = 6;
              return 
1;
         }
         case 
6:
         {
              
DisablePlayerRaceCheckpoint(playerid);
              
SetPlayerRaceCheckpoint(playerid0racha[6][0], racha[6][1], racha[6][2], racha[6][0], racha[6][1], racha[6][2], 10);
              
correndos[playerid] = 7;
              return 
1;
         }
         case 
7:
         {
              
DisablePlayerRaceCheckpoint(playerid);
              
SetPlayerRaceCheckpoint(playerid0racha[7][0], racha[7][1], racha[7][2], racha[7][0], racha[7][1], racha[7][2], 10);
              
correndos[playerid] = 8;
              return 
1;
         }
         case 
8:
         {
              
DisablePlayerRaceCheckpoint(playerid);
              
SetPlayerRaceCheckpoint(playerid0racha[8][0], racha[8][1], racha[8][2], racha[8][0], racha[8][1], racha[8][2], 10);
              
correndos[playerid] = 9;
              return 
1;
         }
         case 
9:
         {
              
DisablePlayerRaceCheckpoint(playerid);
              
SetPlayerRaceCheckpoint(playerid0racha[9][0], racha[9][1], racha[9][2], racha[9][0], racha[9][1], racha[9][2], 10);
              
correndos[playerid] = 10;
              return 
1;
         }
         case 
10:
         {
              
DisablePlayerRaceCheckpoint(playerid);
              
SetPlayerRaceCheckpoint(playerid0racha[10][0], racha[10][1], racha[10][2], racha[10][0], racha[10][1], racha[10][2], 10);
              
correndos[playerid] = 11;
              return 
1;
         }
         case 
11:
         {
              
DisablePlayerRaceCheckpoint(playerid);
              
SetPlayerRaceCheckpoint(playerid0racha[11][0], racha[11][1], racha[11][2], racha[11][0], racha[11][1], racha[11][2], 10);
              
correndos[playerid] = 12;
              return 
1;
         }
         case 
12:
         {
              
DisablePlayerRaceCheckpoint(playerid);
              
SetPlayerRaceCheckpoint(playerid0racha[12][0], racha[12][1], racha[12][2], racha[12][0], racha[12][1], racha[12][2], 10);
              
correndos[playerid] = 13;
              return 
1;
         }
         case 
13:
         {
              
DisablePlayerRaceCheckpoint(playerid);
              
SetPlayerRaceCheckpoint(playerid0racha[13][0], racha[13][1], racha[13][2], racha[13][0], racha[13][1], racha[13][2], 10);
              
correndos[playerid] = 14;
              return 
1;
         }
         case 
14:
         {
              
DisablePlayerRaceCheckpoint(playerid);
              
SetPlayerRaceCheckpoint(playerid0racha[14][0], racha[14][1], racha[14][2], racha[14][0], racha[14][1], racha[14][2], 10);
              
correndos[playerid] = 15;
              return 
1;
         }
         case 
15:
         {
              
DisablePlayerRaceCheckpoint(playerid);
              
SetPlayerRaceCheckpoint(playerid0racha[15][0], racha[15][1], racha[15][2], racha[15][0], racha[15][1], racha[15][2], 10);
              
correndos[playerid] = 16;
              return 
1;
         }
         case 
16:
         {
              
DisablePlayerRaceCheckpoint(playerid);
              
SetPlayerRaceCheckpoint(playerid0racha[16][0], racha[16][1], racha[16][2], racha[16][0], racha[16][1], racha[16][2], 10);
              
correndos[playerid] = 17;
              return 
1;
         }
         case 
17:
         {
            new 
strev[256];
            
DisablePlayerRaceCheckpoint(playerid);
            
colocado++;
            switch(
colocado)
            {
                case 
1:
                {
                    
format(strev,sizeof(strev),"{ffffff}Vocк Chegou em {037b00}Primeiro {ffffff}Lugar no {037b00}Racha{ffffff} e Ganhou {037b00}%d Cash",cashp*2);
                    
SendClientMessage(playerid,0xFFFFFFAA,strev);
                    
format(strev,sizeof(strev),"{ffffff}O Jogador {037b00}%s{ffffff}Venceu o Racha e faturou {037b00}%d Cash",PlayerName(playerid),cashp*2);
                    
SendClientMessageToAll(0xFFFFFFAA,strev);
                    
DestroyVehicle(GetPlayerVehicleID(playerid));
                    
correndo[playerid] = 0;
                    
correndos[playerid] = 0;
                    
corrida 0;
                    
GivePlayerMoney(playeridcashp*2);
                }
                case 
2:
                {
                    
format(strev,sizeof(strev),"{ffffff} Vocк {ff080e}perdeu {ffffff}o Racha ");
                    
SendClientMessage(playerid,0xFFFFFFAA,strev);
                    
cashp 0;
                    
correndo[playerid] = 0;
                    
DestroyVehicle(GetPlayerVehicleID(playerid));
                    
colocado 0;
                    
correndos[playerid] = 0;
                    
desafiante 0;
                    return 
1;
                }
            }
        }
    }
    return 
1;
}
ReturnUser(text[], playerid INVALID_PLAYER_ID)
{
    new 
pos 0;
    while (
text[pos] < 0x21)
    {
        if (
text[pos] == 0) return INVALID_PLAYER_ID;
        
pos++;
    }
    new 
userid INVALID_PLAYER_ID;
    if (
IsNumeric(text[pos]))
    {
        
userid strval(text[pos]);
        if (
userid >=&& userid MAX_PLAYERS)
        {
            if(!
IsPlayerConnected(userid))
            {
                
userid INVALID_PLAYER_ID;
            }
            else
            {
                return 
userid;
            }
        }
    }
    new 
len strlen(text[pos]);
    new 
count 0;
    new 
name[MAX_PLAYER_NAME];
    for (new 
0MAX_PLAYERSi++)
    {
        if (
IsPlayerConnected(i))
        {
            
GetPlayerName(inamesizeof (name));
            if (
strcmp(nametext[pos], truelen) == 0)
            {
                if (
len == strlen(name))
                {
                    return 
i;
                }
                else
                {
                    
count++;
                    
userid i;
                }
            }
        }
    }
    if (
count != 1)
    {
        if (
playerid != INVALID_PLAYER_ID)
        {
            if (
count)
            {
                
SendClientMessage(playerid0xFF0000AA"Usuario Localizado");
            }
            else
            {
                
SendClientMessage(playerid0xFF0000AA"Nenhum usuario encontrado");
            }
        }
        
userid INVALID_PLAYER_ID;
    }
    return 
userid;
}
public 
OnVehicleStreamOut(vehicleidforplayerid)
{
    return 
1;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == 10)
    {
    if(
response)
    {
        
TogglePlayerControllable(playerid0);
        
correndo[playerid] = 1;
        
GivePlayerMoney(desafiante, - cashp);
        
SetVehicleToRespawn(carroDU[1]);
        
carroDU[1] = CreateVehicle(434,carroe[1][0],carroe[1][1],carroe[1][2],carroe[1][3],1,0,60000);
        
PutPlayerInVehicle(playeridcarroDU[1], 0);
        
GivePlayerMoney(playerid, - cashp);
        
corrida 1;
        
SetTimer("InicioCorrida"1000false);
    }
    else
    {
        
TogglePlayerControllable(desafiante1);
        
cashp 0;
        
SendClientMessage(desafiante,0xFFFF00AA," O Desafiado Recusou, Saia do Veiculo ");
        return 
1;
    }
    }
    return 
1;
}
forward InicioCorrida();
forward InicioCorrida2();
forward InicioCorrida3();
forward InicioCorrida4();
forward InicioCorrida5();
forward InicioCorridaGo();
public 
InicioCorrida()
{
    for(new 
0i<MAX_PLAYERSi++)
    {
        if(
IsPlayerConnected(i))
        {
            if(
correndo[i] == 1)
            {
                
GameTextForPlayer(i"5"10015);
                
PlayerPlaySound(i10560.00.00.0);
            }
        }
    }
    
SetTimer("InicioCorrida2"1000false);
    return 
1;
}
public 
InicioCorrida2()
{
        for(new 
0i<MAX_PLAYERSi++)
        {
            if(
IsPlayerConnected(i))
            {
                if(
correndo[i] == 1)
                {
                    
GameTextForPlayer(i"4"10015);
                    
PlayerPlaySound(i10560.00.00.0);
                }
            }
        }
        
SetTimer("InicioCorrida3"1000false);
        return 
1;
}
public 
InicioCorrida3()
{
        for(new 
0i<MAX_PLAYERSi++)
        {
            if(
IsPlayerConnected(i))
            {
                if(
correndo[i] == 1)
                {
                    
GameTextForPlayer(i"3"10015);
                    
PlayerPlaySound(i10560.00.00.0);
                }
            }
        }
        
SetTimer("InicioCorrida4"1000false);
        return 
1;
}
public 
InicioCorrida4()
{
        for(new 
0i<MAX_PLAYERSi++)
        {
            if(
IsPlayerConnected(i))
            {
                if(
correndo[i] == 1)
                {
                    
GameTextForPlayer(i"2"10015);
                    
PlayerPlaySound(i10560.00.00.0);
                }
            }
        }
        
SetTimer("InicioCorrida5"1000false);
        return 
1;
}
public 
InicioCorrida5()
{
        for(new 
0i<MAX_PLAYERSi++)
        {
            if(
IsPlayerConnected(i))
            {
                if(
correndo[i] == 1)
                {
                    
PlayerPlaySound(i10560.00.00.0);
                    
GameTextForPlayer(i"1"10015);
                }
            }
        }
        
SetTimer("InicioCorridaGo"1000false);
        return 
1;
}
IsNumeric(const string[])
{
    for (new 
0strlen(string); ji++)
    {
        if (
string[i] > '9' || string[i] < '0') return 0;
    }
    return 
1;
}
public 
InicioCorridaGo()
{
        for(new 
0i<MAX_PLAYERSi++)
        {
            if(
IsPlayerConnected(i))
            {
                if(
correndo[i] == 1)
                {
                    
GameTextForPlayer(i"~r~VALENDO!"10015);
                    
TogglePlayerControllable(i1);
                    
correndos[i] = 1;
                    
SetPlayerRaceCheckpoint(i0racha[0][0], racha[0][1], racha[0][2], racha[1][0], racha[1][1], racha[1][2], 10);
                }
            }
        }
        return 
1;

Reply


Messages In This Thread
[TUT]Como Criar uma Corrida por RaceCheckpoint - by andmeida10 - 24.04.2010, 21:22
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by russo666 - 24.04.2010, 21:25
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by ipsBruno - 24.04.2010, 22:02
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by xolp25 - 25.04.2010, 01:24
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by lomato - 07.05.2010, 20:48
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by russo666 - 07.05.2010, 21:20
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by lomato - 09.05.2010, 13:27
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by andmeida10 - 09.05.2010, 14:04
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by lomato - 09.05.2010, 14:53
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by andmeida10 - 09.05.2010, 15:24
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by lomato - 09.05.2010, 15:51
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by andmeida10 - 10.05.2010, 06:00
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by lomato - 10.05.2010, 17:55
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by ipsBruno - 24.05.2010, 06:51
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by Comando_DS - 25.05.2010, 18:01
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by russo666 - 25.05.2010, 18:41
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by andmeida10 - 25.05.2010, 18:42
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by russo666 - 25.05.2010, 18:54
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by Comando_DS - 25.05.2010, 19:08
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by russo666 - 25.05.2010, 19:18
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by andmeida10 - 25.05.2010, 20:00
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by Rodrigo_Vilhena - 12.06.2010, 22:50
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by StreetGT - 09.07.2010, 23:06
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by russo666 - 10.07.2010, 03:36
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by StreetGT - 10.07.2010, 14:18
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by russo666 - 11.07.2010, 00:23
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by StreetGT - 13.07.2010, 20:20
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by oakley - 08.09.2010, 14:15
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by Ricop522 - 08.09.2010, 14:31
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by PsyShotter - 08.09.2010, 14:43
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by Erick_Schultz - 04.11.2010, 17:58
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by [FeK]Falcon_Sixe - 04.11.2010, 17:59
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by duany123 - 20.11.2010, 22:50
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by _lsd_ - 21.01.2011, 17:03
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by djnaninho - 16.06.2013, 00:29
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by ProKillerpa - 16.06.2013, 13:29
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by djnaninho - 16.06.2013, 14:42
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by ExTRanyMoney - 16.06.2013, 15:52
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by maikonk - 16.06.2013, 16:37
Re: [TUT]Como Criar uma Corrida por RaceCheckpoint - by zHellSync - 27.12.2018, 03:32

Forum Jump:


Users browsing this thread: 10 Guest(s)