[Ajuda] Sistema de X1 Bugado
#1

Galera, tou um problema, meu sistema de X1 estб bugado, quando vou no X1, se eu morro ou o kra me mata lб, a funзгo estб setada como q ele ainda estб no X1, tentei vбrios jeitos, modifiquei vбrias coisas e nгo deu certo, aн resolvi vir pedir a ajuda de vocкs...

Olha o cуdigo:


No topo do Filter Script
pawn Код:
new bool:TaX1[MAX_PLAYERS];
new PlayersX1;

new nome[MAX_PLAYER_NAME];
new nome2[MAX_PLAYER_NAME];


OnPlayerDeath
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
if(TaX1[playerid] == true)
        {
        new string[128];
        GetPlayerName(playerid, nome[playerid], 30);
        GetPlayerName(killerid, nome2[killerid], 29);
        TaX1[playerid] = false;
        TaX1[killerid] = false;
        PlayersX1 = 0;
        format(string, sizeof(string), "{FF8900}[-X1-] {FFB300}%s {FF8900}foi derrotado pelo {FFB300}%s {FF8900}no duelo X1!", nome2,  nome);
        SendClientMessageToAll(Vermelho, string);
        }
        return 1;
        }


OnPlayerCommandText
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/x1", cmdtext, true, 10) == 0 || strcmp("/x1r", cmdtext, true, 10) == 0)
    {
                new string[128];
                if(TaX1[playerid] == true)
                {
                SendClientMessage(playerid, Vermelho, "[-X1-] Vocк jб estб no X1!");
                return 1;
                }

                if(PlayersX1 == 2)
                {
                SendClientMessage(playerid, Vermelho, "{FFD500}[-X1-] O Duelo X1 jб estб cheio, espere atй que o duelo atual termine! ");
                return 1;
                }
                ResetPlayerWeapons(playerid);
                GivePlayerWeapon(playerid, 1,  999);
                GivePlayerWeapon(playerid, 5,  999);
                GivePlayerWeapon(playerid, 22, 150);
                GivePlayerWeapon(playerid, 26, 600);
                GivePlayerWeapon(playerid, 28, 600);
                SetPlayerPos(playerid, 1416.107000,0.268620,1000.926000);
                PlayersX1 ++;
                TaX1[playerid] = true;
                GetPlayerName(playerid, nome, sizeof(nome));
                format(string, sizeof(string),"{FF8900}[-X1-] %s Foi duelar um x1 ( {FFC000}/X1 {FF8900})", nome);
                SendClientMessageToAll(COR_BRANCO,string);
                SetPlayerInterior(playerid, 1);
                if(PlayersX1 == 2)
                {
                format(string, sizeof(string),"{B3FF00}[-X1-] Duelo X1 estб cheio [-X1-]");
                SendClientMessage(playerid, COR_BRANCO,string);
                return true;
                }
        return true;
        }
Por favor me Ajudem, jб tentei vбrios jeitos e nгo dб certo...
Reply
#2

Me ajudem PF ae, dou +REP!
Reply
#3

Coloque o codigo TaX1[playerid] = false;
na callback OnPlayerSpawn
Reply
#4

: ( Nгo funcionou, jб coloquei o
pawn Код:
TaX1[playerid] = false;
em outras CallBacks e nгo funcionou, serб q nгo tem alguma funзгo q arruma isso, as funзгo ta certinha mas no jogo parece q buga e a funзгo falha -.-
Reply
#5

Apaga tudo.

pawn Код:
new bool: InDuel[MAX_PLAYERS char];
public OnPlayerDeath(playerid, killerid, reason)
{
    if(InDuel{killerid} && InDuel{playerid}){
        static string[128],Nome[24];
        format(string, sizeof(string), "{FF8900}[-X1-] {FFB300}%s {FF8900}foi derrotado pelo {FFB300}%s {FF8900}no duelo X1!", (GetPlayerName(playerid, Nome, 24), Nome),  (GetPlayerName(killerid, Nome, 24), Nome)); SendClientMessageToAll(0xFF0000FF, string);
        InDuel{playerid} = false, InDuel{killerid} = false;
        return true;
    }

    // resto da callback
    return true;
}
// Comando:
        static i, contar;
        for(i = GetMaxPlayers(), contar = -1; !(i ^ 0); --i) if(InDuel{i}) contar ++;
        if(contar >= 1) return SendClientMessage(playerid, -1,"Jб tem dois jogadores fazendo duelo agora jovem");
        InDuel{playerid} = true;
Reply
#6

Garfield, tmb nгo deu certo, tentei muitas vezes с deu, tentei colocar em OnPlayerSpawn, tmb nгo foi, serб q nгo poderiam me criar um novo, ta fods criar man, o negуcio ta certinho mas quando entra no jogo parece q falha o OnPlayerDeath
Reply
#7

Quote:
Originally Posted by ReehSouza
Посмотреть сообщение
Garfield, tmb nгo deu certo, tentei muitas vezes с deu, tentei colocar em OnPlayerSpawn, tmb nгo foi, serб q nгo poderiam me criar um novo, ta fods criar man, o negуcio ta certinho mas quando entra no jogo parece q falha o OnPlayerDeath
Faзa um debug.


pawn Код:
public OnPlayerDeath(playerid, killerid, reason) {

    print("OnPlayerDeath was called");
    printf("%d - %d", TaX1[playerid], TaX1[killerid]);
   
    // resto do cуdigo
   
   
    printf("%d - %d", TaX1[playerid], TaX1[killerid]);
    return 1;
}

public OnPlayerSpawn(playerid) {

    print("OnPlayerSpawn was called");
   
    // resto do cуdigo
   
    printf("%d", TaX1[playerid]);
    return 1;
}
Veja o que sera mostrado no console!
Reply
#8

Nss, nгo funcionou tmb kra, eu nгo intendo, quando eu vou no X1 e o kra me mata ou eu morro sozinho aн nгo tem como voltar de jeito nenhum, apenas da pa voltar se digitar /kill

pawn Код:
if (strcmp("/kill", cmdtext, true) == 0)
    {
    PlayersX1 --;
    TaX1[playerid] = false;
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerHealth(playerid, 0.0);
    new name[MAX_PLAYER_NAME];
    new message[128];
    GetPlayerName(playerid, name, sizeof(name));
    format(message, sizeof(message), "[SUICIDA] %s se matou ( /KILL )", name);
    SendClientMessageToAll(vermelho,message);
    GameTextForPlayer ( playerid , "~r~SE FODEU." , 4000, 0);
    return 1;
    }

Serб que nгo tem como automaticar essa funзгo ao jogador morrer ou se ele Spawnar sei lб, nгo mecho mt em Pawn, mas serб q teria como fazer isso ? O X1 й o ъnico problema pa eu nгo deixar meu servidor (DM) Online
Reply
#9

Quote:
Originally Posted by ReehSouza
Посмотреть сообщение
Nss, nгo funcionou tmb kra, eu nгo intendo, quando eu vou no X1 e o kra me mata ou eu morro sozinho aн nгo tem como voltar de jeito nenhum, apenas da pa voltar se digitar /kill

pawn Код:
if (strcmp("/kill", cmdtext, true) == 0)
    {
    PlayersX1 --;
    PlayersX1w --;
    TaX1[playerid] = false;
    TaX1w[playerid] = false;
    TaWK[playerid] = false;
    TaMG[playerid] = false;
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerHealth(playerid, 0.0);
    new name[MAX_PLAYER_NAME];
    new message[128];
    GetPlayerName(playerid, name, sizeof(name));
    format(message, sizeof(message), "[SUICIDA] %s se matou ( /KILL )", name);
    SendClientMessageToAll(vermelho,message);
    GameTextForPlayer ( playerid , "~r~SE FODEU." , 4000, 0);
    return 1;
    }

Serб que nгo tem como automaticar essa funзгo ao jogador morrer ou se ele Spawnar sei lб, nгo mecho mt em Pawn, mas serб q teria como fazer isso ? O X1 й o ъnico problema pa eu nгo deixar meu servidor (DM) Online


Й pra vocк postar o que foi mostrado no console.
Reply
#10

Lecal! Nota: 6, Muito Demorado, Criatividade a Miil Nehh'
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)