[Tutorial] Criar X1 de 2 pessoas
#1

X1 entre 2 Pessoas




Primeiramente, adapte o cуdigo em seu script:
pawn Код:
new
    TaNoX1[MAX_PLAYERS],
    Px1,
    iString[128];
* Para quem nгo sabe, isto sгo as variбveis que devemos criar, pois se fomos compilar o script sem elas, o compilador nos mandarб uma mensagem com erro.

Depois do mesmo, vamos a prуxima etapa.
Vamos criar o comando para sermos teletransportados para o X1.

pawn Код:
CMD:x1(playerid)
{
    if(Px1 == 2)
        return SendClientMessage(playerid, -1, "[ERRO]: O x1 estб cheio, tente novamente mais tarde!");
    if(TaNoX1[playerid] == 1)
        return SendClientMessage(playerid, -1, "[ERRO]: Vocк jб estб no x1, para sair digite /sair");
    SetPlayerInterior(playerid, 18);
    SetPlayerPos(playerid, 1302.519897,-1.787510,1001.028259);
    TaNoX1[playerid] = 1;
    Px1 += 1;
    format(iString, sizeof(iString), "[Duelos x1]: %s [ID: %d] foi duelar no x1. Alguйm vai ? ( /x1 )", nome(playerid), playerid);
    SendClientMessageToAll(-1, iString);
    SendClientMessage(playerid, -1, "[x1]: Vocк estб no x1, caso queira sair use /sair");
    ResetPlayerWeapons(playerid);

    GivePlayerWeapon(playerid, 24, 9999);
    GivePlayerWeapon(playerid, 26, 9999);
    GivePlayerWeapon(playerid, 34, 9999);

    SetPlayerHealth(playerid, 100);
    SetPlayerArmour(playerid, 100);
    return 1;
}
Explicaзгo:

if(Px1 == 2) ~~ Verificamos se jб tem 2 jogadores no x1.
if(TaNoX1[playerid] == 1) ~~ Verificamos se o jogador estб no x1.
TaNoX1[playerid] = 1; ~~ Declaramos que a variбvel estб true (verdadeiro, sim), deixando assim o jogador no x1.
Px1 += 1; ~~ Declaramos que entrou mais um jogador no x1.

Estamos quase terminando.
Vamos agora para a public OnPlayerDeath. Adicione o seguinte cуdigo na public:

pawn Код:
if(TaNoX1[playerid] == 1)
    {
        TaNoX1[playerid] = 0;
        TaNoX1[killerid] = 0;
       
        Px1 = 0;

        SpawnPlayer(killerid);
       
        format(iString, sizeof(iString), "[Duelos x1]: %s ganhou no x1 contra %s", nome(killerid), nome(playerid));
        SendClientMessageToAll(-1, iString);
    }

    if(killerid == INVALID_PLAYER_ID)
    {
        TaNoX1[playerid] = 0;
        Px1 -= 1;
    }
Explicaзгo:

if(TaNoX1[playerid] == 1) ~~ Verificamos se o jogador que morreu estava no x1.
TaNoX1[playerid] = 0; ~~ Declaramos que o jogador que morrou nгo estб mais no x1.
TaNoX1[killerid] = 0; ~~ Declaramos que o jogador que matou nгo estб mais no x1.
Px1 = 0; ~~ Declaramos a quantidade de jogadores no x1 0.
SpawnPlayer(killerid); ~~ Spawnamos o jogador que matou para ele nгo ficar sуzinho no x1.
format(iString, sizeof(iString), "[Duelos x1]: %s ganhou no x1 contra %s", nome(killerid), nome(playerid)); ~~ Formatamos a String.
SendClientMessageToAll(-1, iString); ~~ Enviamos a String formatada acima para todos online no servidor.
if(killerid == INVALID_PLAYER_ID) ~~ Verificamos se o jogador que matou nгo existe.
Px1 -= 1; ~~ Declaramos que tem -1 jogador no x1.


Agora a ultima verificaзгo.
Vamos na public OnPlayerDisconnect

pawn Код:
if(TaNoX1[playerid] == 1)
    {
        Px1 -= 1;
        TaNoX1[playerid] = 0;
    }
if(TaNoX1[playerid] == 1) ~~ Verificamos se o jogador que saiu do servidor estava no x1.
Px1 -= 1; ~~ Declaramos que tem -1 jogador no x1.
TaNoX1[playerid] = 0; ~~ Declaramos que o jogador que saiu do servidor nгo estб mais no x1.

O comando para o Jogador sair do x1:

pawn Код:
CMD:sair(playerid)
{
    TaNoX1[playerid] = 0;
    Px1 -= 1;
    SpawnPlayer(playerid);
    format(iString, sizeof(iString), "[Duelos x1]: %s arregou do x1.", nome(playerid));
    SendClientMessageToAll(-1, iString);
    return 1;
}
Por final, adapte o cуdigo ao seu script:

pawn Код:
stock nome(playerid)
{
    new pname[MAX_PLAYER_NAME] ;
    GetPlayerName (playerid,pname, MAX_PLAYER_NAME );
    return pname;
}

Crйditos: Gleisson_.

Atualizado 23/06/2013
FIM!
Reply
#2

Interessante.
Reply
#3

if ( TaNoX1[ playerid ] == 1 ) return SendClientMessage( playerid, 0xFF0000FF, "[ERRO]: Vocк estб no x1, use /Sair");
if ( PX1 == 2 ) return SendClientMessage( playerid, 0xFF0000FF, "[ERRO]: X1 estб cheio, tente novamente mais tarde.");
PX1++;
TaNoX1 [ playerid ] = 1;

Nгo entendi por que adicionar 1 a variбvel.. primeiro vocк setou ela a 1 depois a 2 depois somou 1 e depois setou
pra 1 de novo? nгo entendi amigo.
Reply
#4

Nгo explicou as funзхes, sу fez "coloca isso" "depois isso"... Isso nгo й tutorial.

/////

Quote:

if ( TaNoX1[ playerid ] == 1 ) return SendClientMessage( playerid, 0xFF0000FF, "[ERRO]: Vocк estб no x1, use /Sair");
if ( PX1 == 2 ) return SendClientMessage( playerid, 0xFF0000FF, "[ERRO]: X1 estб cheio, tente novamente mais tarde.");
PX1++;
TaNoX1 [ playerid ] = 1;

Nгo entendi por que adicionar 1 a variбvel.. primeiro vocк setou ela a 1 depois a 2 depois somou 1 e depois setou
pra 1 de novo? nгo entendi amigo.
__________________

Ele incrementou +1 na quantidade de players que ta no x1 e em seguida setou true para o player que foi pro x1.
Depois verificou se px == 2, ou seja, se jб tem 2 players no x1.
Reply
#5

bem legal carinha...
Reply
#6

se й x1 tem q ser de duas pessoas.
Reply
#7

Quote:
Originally Posted by Delete_
Посмотреть сообщение
Nгo explicou as funзхes, sу fez "coloca isso" "depois isso"... Isso nгo й tutorial.

/////



Ele incrementou +1 na quantidade de players que ta no x1 e em seguida setou true para o player que foi pro x1.
Depois verificou se px == 2, ou seja, se jб tem 2 players no x1.
Agora sim.
Reply
#8

Quote:
Originally Posted by Delete_
Посмотреть сообщение
Nгo explicou as funзхes, sу fez "coloca isso" "depois isso"... Isso nгo й tutorial.

/////



Ele incrementou +1 na quantidade de players que ta no x1 e em seguida setou true para o player que foi pro x1.
Depois verificou se px == 2, ou seja, se jб tem 2 players no x1.
Bem por isso que nгo faзo tutoriais , nгo sou bom em explicar...
Reply
#9

Quote:
Originally Posted by Delete_
Посмотреть сообщение
Nгo explicou as funзхes, sу fez "coloca isso" "depois isso"... Isso nгo й tutorial.

/////



Ele incrementou +1 na quantidade de players que ta no x1 e em seguida setou true para o player que foi pro x1.
Depois verificou se px == 2, ou seja, se jб tem 2 players no x1.
exato, e ainda pegou de um game-mode velho da internet, uma versгo antiga do mata-mata.
Reply
#10

Quote:
Originally Posted by StrondA_
Посмотреть сообщение
exato, e ainda pegou de um game-mode velho da internet, uma versгo antiga do mata-mata.
Ressucity!

Aonde gamemode velho da internet otбrio ?!

Nгo tou vendo nenhum gamemode aqui online ou com cуdigos iguais!

Vai la manow, clica em new.pwn e comeзa vai
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)