[Ajuda] /x1 id id
#1

Olб,eu faзo evento evento de x1 no meu serve dm
mas queri um cmd ex: /x1 id id dai dava eagle shot e sniper para cada um deles e colete e vida 100#
onde tem que setar eles:
o primeiro:
1409.1548,-16.9953,1000.9227,93.2642
o outro
1365.4105,-19.6422,1000.9219,272.5929
Reply
#2

beleza
Reply
#3

pawn Код:
CMD:x1(playerid, params[])
{
    new p1, p1_Name[24], p2, p2_Name[24], p_Str[128];

    if(sscanf(params, "uu")) return SendClientMessage(playerid, -1, "Use: /x1 <jogador 1> <jogador 2>");
    if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2)) return SendClientMessage(playerid, -1, "Um dos IDS estб descontado.");

    SetPlayerArmour(p1, 99.9);
    SetPlayerHealth(p1, 99.9);
    SetPlayerArmour(p2, 99.9);
    SetPlayerHealth(p2, 99.9);

    ResetPlayerWeapons(p1);
    ResetPlayerWeapons(p2);

    GivePlayerWeapon(playerid, 24, 1000);
    GivePlayerWeapon(playerid, 25, 1000);
    GivePlayerWeapon(playerid, 34, 1000);
    GivePlayerWeapon(playerid, 24, 1000);
    GivePlayerWeapon(playerid, 25, 1000);
    GivePlayerWeapon(playerid, 34, 1000);
   
    SetPlayerPos(p1, 1409.1548,-16.9953,1000.9227);
    SetPlayerFacingAngle(p1, 93.2642);
   
    SetPlayerPos(p2, 1365.4105,-19.6422,1000.9219);
    SetPlayerFacingAngle(p1, 272.5929);
   
    GetPlayerName(p1, p1_Name, sizeof(p1_Name));
    GetPlayerName(p2, p2_Name, sizeof(p2_Name));
   
    format(p_Str, sizeof(p_Str), "Vocк iniciou um x1! Jogadores: %s Vs. %s", p1_Name, p2_Name);
    SendClientMessage(playerid, -1, p_Str);
    return 1;
}
Reply
#4

Quote:
Originally Posted by helpmesamp
Посмотреть сообщение
Olб,eu faзo evento evento de x1 no meu serve dm
mas queri um cmd ex: /x1 id id dai dava eagle shot e sniper para cada um deles e colete e vida 100#
onde tem que setar eles:
o primeiro:
1409.1548,-16.9953,1000.9227,93.2642
o outro
1365.4105,-19.6422,1000.9219,272.5929
Pois bem, dei umaprocurada em meu GM e encontrei o comando:
PHP код:
CMD:iniciarx1(playeridparams[])
    {
        if(
PlayerInfo[playerid][pAdmin] < 4)
           {
            
SendClientMessage(playeridCOLOR_GRAD1"    Vocк nгo pode usar este comando!");
            return 
1;
        }
        new 
jogador1jogador2string[158];
        if(
sscanf(params"ii"jogador1jogador2)) return SendClientMessage(playerid, -1"Use: /iniciarx1 [jogador1] [jogador2]");
        if(  !
IsPlayerConnected(jogador1) || !IsPlayerConnected(!jogador2))
        return 
SendClientMessage(playerid, -1#ERRO: Coloque um id vбlido );
        
new pNAME[24];
        new 
pNAME2[24];
        
GetPlayerName(jogador1pNAME24);
        
GetPlayerName(jogador2pNAME224);
        
SendClientMessageToAll(COLOR_WHITE"|_________ Aviso da Administraзгo _________|");
        
format(stringsizeof(string), "%s Avisa: Evento X1 de %s contra %s."PlayerName(playerid), pNAMEpNAME2);
        
SendClientMessageToAll(COLOR_DBLUEstring);
        
//player1
        
SetPlayerPos(jogador11403.6039,-20.7303,1000.9115);
        
SetPlayerInterior(jogador11);
        
SetPlayerFacingAngle(jogador1,90.9610);
        
Controle(jogador10);
        
SetCameraBehindPlayer(jogador1);
        
//player2
        
SetPlayerPos(jogador21368.5532,-21.7691,1000.9219);
        
SetPlayerInterior(jogador21);
        
SetPlayerFacingAngle(jogador2,270.8138);
        
Controle(jogador20);
        
SetCameraBehindPlayer(jogador2);
        
//contagem player 1 e 2
        
Contagem(jogador1,jogador2);
        
SetPVarInt(jogador1"Tempo"gettime());
        
SetPVarInt(jogador2"Tempo"gettime());
        return 
true;
    } 
Obs: substitua as coordenadas pelas que vc prefere, e modifique as variaveis de acordo com o seu GM.
Reply
#5

Quote:
Originally Posted by MtPlayerZ
Посмотреть сообщение
Pois bem, dei umaprocurada em meu GM e encontrei o comando:
PHP код:
CMD:iniciarx1(playeridparams[])
    {
        if(
PlayerInfo[playerid][pAdmin] < 4)
           {
            
SendClientMessage(playeridCOLOR_GRAD1"    Vocк nгo pode usar este comando!");
            return 
1;
        }
        new 
jogador1jogador2string[158];
        if(
sscanf(params"ii"jogador1jogador2)) return SendClientMessage(playerid, -1"Use: /iniciarx1 [jogador1] [jogador2]");
        if(  !
IsPlayerConnected(jogador1) || !IsPlayerConnected(!jogador2))
        return 
SendClientMessage(playerid, -1#ERRO: Coloque um id vбlido );
        
new pNAME[24];
        new 
pNAME2[24];
        
GetPlayerName(jogador1pNAME24);
        
GetPlayerName(jogador2pNAME224);
        
SendClientMessageToAll(COLOR_WHITE"|_________ Aviso da Administraзгo _________|");
        
format(stringsizeof(string), "%s Avisa: Evento X1 de %s contra %s."PlayerName(playerid), pNAMEpNAME2);
        
SendClientMessageToAll(COLOR_DBLUEstring);
        
//player1
        
SetPlayerPos(jogador11403.6039,-20.7303,1000.9115);
        
SetPlayerInterior(jogador11);
        
SetPlayerFacingAngle(jogador1,90.9610);
        
Controle(jogador10);
        
SetCameraBehindPlayer(jogador1);
        
//player2
        
SetPlayerPos(jogador21368.5532,-21.7691,1000.9219);
        
SetPlayerInterior(jogador21);
        
SetPlayerFacingAngle(jogador2,270.8138);
        
Controle(jogador20);
        
SetCameraBehindPlayer(jogador2);
        
//contagem player 1 e 2
        
Contagem(jogador1,jogador2);
        
SetPVarInt(jogador1"Tempo"gettime());
        
SetPVarInt(jogador2"Tempo"gettime());
        return 
true;
    } 
Obs: substitua as coordenadas pelas que vc prefere, e modifique as variaveis de acordo com o seu GM.
Vocк passou o cуdigo pro cara pelas metades.. cade a(s) callbacks?
Reply
#6

Quote:
Originally Posted by s4kuL
Посмотреть сообщение
pawn Код:
CMD:x1(playerid, params[])
{
    new p1, p1_Name[24], p2, p2_Name[24], p_Str[128];

    if(sscanf(params, "uu")) return SendClientMessage(playerid, -1, "Use: /x1 <jogador 1> <jogador 2>");
    if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2)) return SendClientMessage(playerid, -1, "Um dos IDS estб descontado.");

    SetPlayerArmour(p1, 99.9);
    SetPlayerHealth(p1, 99.9);
    SetPlayerArmour(p2, 99.9);
    SetPlayerHealth(p2, 99.9);

    ResetPlayerWeapons(p1);
    ResetPlayerWeapons(p2);

    GivePlayerWeapon(playerid, 24, 1000);
    GivePlayerWeapon(playerid, 25, 1000);
    GivePlayerWeapon(playerid, 34, 1000);
    GivePlayerWeapon(playerid, 24, 1000);
    GivePlayerWeapon(playerid, 25, 1000);
    GivePlayerWeapon(playerid, 34, 1000);
   
    SetPlayerPos(p1, 1409.1548,-16.9953,1000.9227);
    SetPlayerFacingAngle(p1, 93.2642);
   
    SetPlayerPos(p2, 1365.4105,-19.6422,1000.9219);
    SetPlayerFacingAngle(p1, 272.5929);
   
    GetPlayerName(p1, p1_Name, sizeof(p1_Name));
    GetPlayerName(p2, p2_Name, sizeof(p2_Name));
   
    format(p_Str, sizeof(p_Str), "Vocк iniciou um x1! Jogadores: %s Vs. %s", p1_Name, p2_Name);
    SendClientMessage(playerid, -1, p_Str);
    return 1;
}
TE AMO PARABЙNS
Reply
#7

mano,ta bugado,tipo quando do /x1 ja aparece meu nick q й Adt Vs Adt tipo wtf? ai coloco /x1 dai o id 1 e 6 ou qualquer outro aleatorio,e vai denovo abnt e abnt sу um que seta dai testa ai smc e se poder arruma
Reply
#8

I want to become a admin who wants to hire me and give me your ip server and thanks
please reply
Reply
#9

Alguem ajuda
Reply
#10

Esse comando

Код:
CMD:iniciarx1(playerid, params[])
{
        if(PlayerInfo[playerid][pAdmin]>3)
           {
            SendClientMessage(playerid, COLOR_GRAD1, " » Vocк nгo pode usar este comando!");
            return 1;
        }
        new jogador1, jogador2, string[158];
        if(sscanf(params, "ii", jogador1, jogador2)) return SendClientMessage(playerid, -1, "Use: /iniciarx1 [Jogador 1] [Jogador 2]");
        if(  !IsPlayerConnected(jogador1) || !IsPlayerConnected(!jogador2))
        return SendClientMessage(playerid, -1, #ERRO: Coloque um id vбlido );
        new pNAME[24];
        new pNAME2[24];
        new PlayerName[MAX_PLAYERS];
        GetPlayerName(jogador1, pNAME, 24);
        GetPlayerName(jogador2, pNAME2, 24);
        SendClientMessageToAll(COLOR_WHITE, "|_________ Aviso da Administraзгo _________|");
        format(string, sizeof(string), "%s Avisa: Evento X1 de %s contra %s.",PlayerName(playerid), pNAME, pNAME2);
        SendClientMessageToAll(COLOR_WHITE, string);
        //player1
        SetPlayerPos(jogador1, 1403.6039,-20.7303,1000.9115);
        SetPlayerInterior(jogador1, 1);
        SetPlayerFacingAngle(jogador1,90.9610);
        Controle(jogador1, 0);
        SetCameraBehindPlayer(jogador1);
        //player2
        SetPlayerPos(jogador2, 1368.5532,-21.7691,1000.9219);
        SetPlayerInterior(jogador2, 1);
        SetPlayerFacingAngle(jogador2,270.8138);
        Controle(jogador2, 0);
        SetCameraBehindPlayer(jogador2);
        //contagem player 1 e 2
        Contagem(jogador1,jogador2);
        SetPVarInt(jogador1, "3", gettime());
        SetPVarInt(jogador2, "3", gettime());
        return true;
}
Код:
Deu esse erro
: error 012: invalid function call, not a valid address
: warning 215: expression has no effect
: error 001: expected token: ";", but found ")"
: error 029: invalid expression, assumed zero
: fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase
Reply
#11

Quote:
Originally Posted by helpmesamp
Посмотреть сообщение
Esse comando

Код:
CMD:iniciarx1(playerid, params[])
{
        if(PlayerInfo[playerid][pAdmin]>3)
           {
            SendClientMessage(playerid, COLOR_GRAD1, " » Vocк nгo pode usar este comando!");
            return 1;
        }
        new jogador1, jogador2, string[158];
        if(sscanf(params, "ii", jogador1, jogador2)) return SendClientMessage(playerid, -1, "Use: /iniciarx1 [Jogador 1] [Jogador 2]");
        if(  !IsPlayerConnected(jogador1) || !IsPlayerConnected(!jogador2))
        return SendClientMessage(playerid, -1, #ERRO: Coloque um id vбlido );
        new pNAME[24];
        new pNAME2[24];
        new PlayerName[MAX_PLAYERS];
        GetPlayerName(jogador1, pNAME, 24);
        GetPlayerName(jogador2, pNAME2, 24);
        SendClientMessageToAll(COLOR_WHITE, "|_________ Aviso da Administraзгo _________|");
        format(string, sizeof(string), "%s Avisa: Evento X1 de %s contra %s.",PlayerName(playerid), pNAME, pNAME2);
        SendClientMessageToAll(COLOR_WHITE, string);
        //player1
        SetPlayerPos(jogador1, 1403.6039,-20.7303,1000.9115);
        SetPlayerInterior(jogador1, 1);
        SetPlayerFacingAngle(jogador1,90.9610);
        Controle(jogador1, 0);
        SetCameraBehindPlayer(jogador1);
        //player2
        SetPlayerPos(jogador2, 1368.5532,-21.7691,1000.9219);
        SetPlayerInterior(jogador2, 1);
        SetPlayerFacingAngle(jogador2,270.8138);
        Controle(jogador2, 0);
        SetCameraBehindPlayer(jogador2);
        //contagem player 1 e 2
        Contagem(jogador1,jogador2);
        SetPVarInt(jogador1, "3", gettime());
        SetPVarInt(jogador2, "3", gettime());
        return true;
}
Код:
Deu esse erro
: error 012: invalid function call, not a valid address
: warning 215: expression has no effect
: error 001: expected token: ";", but found ")"
: error 029: invalid expression, assumed zero
: fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase
Peзo desculpas esqueci de passar as callbacks.
Ai estгo:

PHP код:
stock Contagem(jogador1,jogador2)
{
    
TogglePlayerControllable(jogador1,0);
    
TogglePlayerControllable(jogador2,0);
    
GameTextForPlayer(jogador1,"3",1000,6);
    
GameTextForPlayer(jogador2,"3",1000,6);
    
PlayerPlaySound(jogador1,1056,0,0,0);
    
PlayerPlaySound(jogador2,1056,0,0,0);
    
SetTimerEx("Cont",1000,false,"iii",jogador1,jogador2,2);
}
BPF::Cont(jogador1,jogador2,pos)
{
    switch(
pos)
    {
        case 
2:
        {
            
GameTextForPlayer(jogador1,"2",1000,6);
            
GameTextForPlayer(jogador2,"2",1000,6);
            
PlayerPlaySound(jogador2,1056,0,0,0);
            
PlayerPlaySound(jogador1,1056,0,0,0);
            
SetTimerEx("Cont",1000,false,"ddd",jogador1,jogador2,1);
            
SetCameraBehindPlayer(jogador1);
            
SetCameraBehindPlayer(jogador2);
        }
        case 
1:
        {
            
GameTextForPlayer(jogador1,"1",1000,6);
            
GameTextForPlayer(jogador2,"1",1000,6);
            
PlayerPlaySound(jogador2,1056,0,0,0);
            
PlayerPlaySound(jogador1,1056,0,0,0);
            
SetTimerEx("Cont",1000,false,"ddd",jogador1,jogador2,0);
        }
        case 
0:
        {
            
GameTextForPlayer(jogador1,"GO GO GO",1000,6);
            
GameTextForPlayer(jogador2,"GO GO GO",1000,6);
            
PlayerPlaySound(jogador2,1057,0,0,0);
            
PlayerPlaySound(jogador1,1057,0,0,0);
            
TogglePlayerControllable(jogador1,1);
            
TogglePlayerControllable(jogador2,1);
            
SetPlayerHealth(jogador1,100.0);
            
SetPlayerArmour(jogador2,100.0);
             
GivePlayerWeapon(jogador134999);
            
GivePlayerWeapon(jogador124999);
            
GivePlayerWeapon(jogador125999);
            
SetPlayerArmour(jogador1,100.0);
            
SetPlayerHealth(jogador2,100.0);
             
GivePlayerWeapon(jogador234999);
            
GivePlayerWeapon(jogador224999);
            
GivePlayerWeapon(jogador225999);
            
CountDuel[jogador1] = gettime();
            
CountDuel[jogador2] = gettime();
        }
    }
    return 
1;

Se faltar mais alguma coisa ou der algum erro manda aqui, mais nгo esuqeca da linha do erro, se nгo й impossivel resolver.
Reply
#12

error 012: invalid function call, not a valid address
warning 215: expression has no effect
error 001: expected token: ";", but found ")"
error 029: invalid expression, assumed zero
fatal error 107: too many error messages on one line
Deu esses erros,nessa linha

format(string, sizeof(string), "%s Avisa: Evento X1 de %s contra %s.",PlayerName(playerid), pNAME, pNAME2);
Reply
#13

Quote:
Originally Posted by helpmesamp
Посмотреть сообщение
mano,ta bugado,tipo quando do /x1 ja aparece meu nick q й Adt Vs Adt tipo wtf? ai coloco /x1 dai o id 1 e 6 ou qualquer outro aleatorio,e vai denovo abnt e abnt sу um que seta dai testa ai smc e se poder arruma
Tente assim:

pawn Код:
CMD:x1(playerid, params[])
{
    new p1, p2, p_Str[128];

    if(sscanf(params, "uu")) return SendClientMessage(playerid, -1, "Use: /x1 <jogador 1> <jogador 2>");
    if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2)) return SendClientMessage(playerid, -1, "Um dos IDS estб descontado.");

    SetPlayerArmour(p1, 99.9);
    SetPlayerHealth(p1, 99.9);
    SetPlayerArmour(p2, 99.9);
    SetPlayerHealth(p2, 99.9);

    ResetPlayerWeapons(p1);
    ResetPlayerWeapons(p2);

    GivePlayerWeapon(playerid, 24, 1000);
    GivePlayerWeapon(playerid, 25, 1000);
    GivePlayerWeapon(playerid, 34, 1000);
    GivePlayerWeapon(playerid, 24, 1000);
    GivePlayerWeapon(playerid, 25, 1000);
    GivePlayerWeapon(playerid, 34, 1000);

    SetPlayerPos(p1, 1409.1548,-16.9953,1000.9227);
    SetPlayerFacingAngle(p1, 93.2642);

    SetPlayerPos(p2, 1365.4105,-19.6422,1000.9219);
    SetPlayerFacingAngle(p1, 272.5929);

    format(p_Str, sizeof(p_Str), "Vocк iniciou um x1! Jogadores: %s Vs. %s", GetName(p1), GetName(2));
    SendClientMessage(playerid, -1, p_Str);
    return 1;
}

stock GetName(id)
{
    new n_ome[MAX_PLAYER_NAME];
    GetPlayerName(id, n_ome, sizeof n_ome);
    return n_ome;
}
Reply
#14

Ainda ta bugado..
digito /x1 e ja da automaticamente eu com nem uma pessoa,
dai do /x1 e n vai tmb so via pro id 0 contra ngm
Reply
#15

tu que como?
o cara tem que aceitar se quer ou nao?
Reply
#16

? como?, tipo o cara digita /x1 [convida] e o convidado digita /x1 [aceitar]
o jeito que tu ta falando e tipo, o cara escolhe os 2 players, e pronto, ninguйm aceita nada etc. mt forзado tipo, vai que o cara nгo quer ir x1
Reply
#17

Quote:
Originally Posted by helpmesamp
Посмотреть сообщение
Olб,eu faзo evento evento de x1 no meu serve dm
mas queri um cmd ex: /x1 id id dai dava eagle shot e sniper para cada um deles e colete e vida 100#
onde tem que setar eles:
o primeiro:
1409.1548,-16.9953,1000.9227,93.2642
o outro
1365.4105,-19.6422,1000.9219,272.5929
Criei um aqui, /x1 convidar
http://imgur.com/a/3R0Tb
PHP код:
#include <a_samp>
#include <sscanf>
#include <ZCMD>
new Player1[MAX_PLAYERS], Player2[MAX_PLAYERS];
CMD:x1(playerid,params[])
{
    new 
tipo;
    if(
sscanf(params"s"tipo)) return SendClientMessage(playerid, -1"[ ERROR ] >> /x1 [convidar]");
    
ShowPlayerDialog(playerid101DIALOG_STYLE_INPUT"Duelo de x1""Insira o id do player:""Enviar""");
    return 
1;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == 100)
    {
        new 
id;
        if(
response)
        {
            
id strval(inputtext);
            if(!
IsPlayerConnected(id)) return SendClientMessage(playerid, -1"[ ERROR ] » Nenhuma pessoa online com esse ID");
            {
                   new 
str[128], anome[MAX_PLAYER_NAME], pnome[MAX_PLAYER_NAME]; 
                   
GetPlayerName(playeridpnomesizeof(pnome)); GetPlayerName(idanomesizeof(anome));
                   
format(strsizeof(str), "Olб %s eu %s estou de convidando pra um duelo de x1\nAceita ou recusa?"anomepnome);
                   
ShowPlayerDialog(id101DIALOG_STYLE_MSGBOX"Duelo de x1"str"Aceitar""recusar");
                   
Player1[playerid] = playerid;
                   
Player2[id] = id;
            }
        }
    }
    if(
dialogid == 101)
    {
        if(!
response)
        {
            new 
nome[MAX_PLAYER_NAME]; new str[128];
            
GetPlayerName(playeridnomesizeof(nome));
            
format(strsizeof(str), "[DUELO] >> O jogador %s recusou seu convite de x1"nome);
            
ShowPlayerDialog(Player1[playerid], 201DIALOG_STYLE_MSGBOX"DUELO"str"Ok""");
        }
        else
        {
            
SetTimerEx("StartDuelo"50000,false"ii",Player1[playerid],Player2[playerid]);
        }
    }
    return 
1;
}
forward StartDuelo(p1p2);
public 
StartDuelo(p1p2)
{
    static 
10//para quando outro usar o comando nao ir pro msm canto que ja tem 1, a cada luta ira troca o virtual world, ai quadno acaba luta tu cria funзгo pra retorna ao 0
    //SetPlayerPos(p1, x,y,z); voce pode deixa o msm lugar pra todos os players, cada 2 estбra em mundos diferentes!
    //SetPlayerPos(p2, x,y,z); 
    
SetPlayerPos(p11409.1548,-16.9953,1000.9227); //os lugar que vocк pedio
    
SetPlayerPos(p21365.4105,-19.6422,1000.9219);
    
//aqui tu seta as armas
    
new str[128]; new nome1[MAX_PLAYER_NAME], nome2[MAX_PLAYER_NAME]; 
    
GetPlayerName(p1nome1sizeof(nome1)); GetPlayerName(p2nome2sizeof(nome2));
    
format(strsizeof(str), "O jogador %s estб em um duelo contra o jogador %s"nome1nome2);
   
    
SetPlayerInterior(p10);
    
SetPlayerInterior(p20);
    
SetPlayerVirtualWorld(p1w); //tipo os primeiros a usar esse comando de duelo ira epga o virtual mundo 10 e os outro 11  e assim por diante para que nao atrapalhe
    
SetPlayerVirtualWorld(p2w);
    
w++;
    return 
1;

/evento
ja posto o evento, to criando!
Reply
#18

http://imgur.com/a/3R0Tb
criei um tutorial Link

Usei dcmd e strtok
PHP код:
new bool:EventoExistindo;
new 
bool:IsplayerInEvento[MAX_PLAYERS];
new 
Float:EventoXFloat:EventoYFloat:EventoZEventoInterior;
#define EVENTO 1
#define dcmd(%1,%2) if (!strcmp((%2)[1], #%1, true, (strlen((#%1)))) && ((((%2)[(strlen((#%1))) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%2)[(strlen((#%1))) + 1] == ' ') && (dcmd_%1(playerid, (%2)[(strlen((#%1))) + 2]))))) return 1
public OnPlayerCommandText(playeridcmdtext[])
{
    
dcmd(eventocmdtext);
    return 
0;
}
dcmd_evento(playeridparams[])
{
    new 
tmp[256], idxcmd;
    new 
string[128];
    
tmp strtok(paramsidx);
    if(!
strlen(tmp))
        return 
SendClientMessage(playerid,-1,"Uso: /evento [criar/fechar/armas/ir]");
    if(
strcmp(tmp"criar"true)==0)
        
cmd 1;
    else if(
strcmp(tmp"fechar"true)==0)
        
cmd 2;
    else if(
strcmp(tmp"armas"true)==0)
        
cmd 3;
    else if(
strcmp(tmp"ir"true)==0)
    
cmd 4;
    else return 
SendClientMessage(playerid,-1,"Uso: /evento [criar/fechar/armas/ir]");
    if(
cmd == 1)
    {
        if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"Vocк nгo й um administrador do servidor!");
        
ShowPlayerDialog(playeridEVENTODIALOG_STYLE_INPUT"Criar evento!""Digite um nome para o evento:""Avanзar""Cancelar");
        if(
EventoExistindo == true) return SendClientMessage(playerid, -1"Jб tem um evento criado /evento fechar");
        
EventoExistindo true;
    }
    if(
cmd == 2)
    {
        if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"Vocк nгo й um administrador do servidor!");
        if(
EventoExistindo == false) return SendClientMessage(playerid,-1"[ ERROR ] >>Nem um evento existente!");
        new 
str[128]; new nome[MAX_PLAYER_NAME]; GetPlayerName(playeridnomesizeof(nome));
        
format(strsizeof(str), "O administrador %s fechou o evento que estava ativo"nome);
    }
    if(
cmd == 3)
    {
        if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"Vocк nгo й um administrador do servidor!");
        if(
EventoExistindo == false) return SendClientMessage(playerid,-1"[ ERROR ] >>Nem um evento existente!");
        
ShowPlayerDialog(playeridEVENTO+1DIALOG_STYLE_INPUT"Evento Armas""Escolha o id da arma que vocК dara a quem estб no evento:""Avanзar""Cancelar");
    }
    if(
cmd == 4)
    {
        if(
EventoExistindo == false) return SendClientMessage(playerid,-1,"Nгo hб nenhum evento acontecendo!");
        
IsplayerInEvento[playerid] = true;
        
SetPlayerPos(playeridEventoXEventoYEventoZ);
        
SetPlayerInterior(playeridEventoInterior);
        
GameTextForPlayer(playerid"Bem vindo ao evento"1000);
    }
    return 
1;
}
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;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
     if(
dialogid == EVENTO)
    {
        if(!
response)
        {
            
EventoExistindo false;
            
SendClientMessage(playerid, -1"[EVENTO] >> Vocк cancelou o evento!");
        }
        else
        {
            
GetPlayerPos(playeridEventoXEventoYEventoZ);  
            
EventoInterior GetPlayerInterior(playerid);
            new 
nome[MAX_PLAYER_NAME];    new str[128];
            
GetPlayerName(playeridnomesizeof(nome));
            
format(strsizeof(str), "O administrador %s Criou um evento de: %s | /evento ir"nomeinputtext);
            
SendClientMessageToAll(-1str);
        }
    }
    if(
dialogid == EVENTO+1)
    {
        if(!
response)
        {
            
SendClientMessage(playerid, -1"[EVENTO] Comando cancelado");
        }
        else
        {
            new 
armaamo;
            
arma strval(inputtext);
            
amo 99999;
            if(
arma ) return SendClientMessage(playerid, -1"[EVENTO - ERROR] >> Nгo tem armas com id 0");
            new 
str[128]; new nome[MAX_PLAYER_NAME], narma[15]; GetPlayerName(playeridnomesizeof(nome));
            
GetWeaponName(armanarmasizeof(narma));
            
format(strsizeof(str), "O administrador %s deu %s a todos no evento!"nomenarma);
            
SendClientMessageToAll(-1str);
            for(new 
0MAX_PLAYERSi++)
            {
                if(
IsplayerInEvento[i] == true)
                {
                
GivePlayerWeapon(iarmaamo); //quem estiver de /evento ir ira ganha
                
}
            }
        }
    }
     return 
1;

Reply
#19

Quote:
Originally Posted by Jonorusc
Посмотреть сообщение
http://imgur.com/a/3R0Tb
criei um tutorial Link

Usei dcmd e strtok
PHP код:
new bool:EventoExistindo;
new 
bool:IsplayerInEvento[MAX_PLAYERS];
new 
Float:EventoXFloat:EventoYFloat:EventoZEventoInterior;
#define EVENTO 1
#define dcmd(%1,%2) if (!strcmp((%2)[1], #%1, true, (strlen((#%1)))) && ((((%2)[(strlen((#%1))) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%2)[(strlen((#%1))) + 1] == ' ') && (dcmd_%1(playerid, (%2)[(strlen((#%1))) + 2]))))) return 1
public OnPlayerCommandText(playeridcmdtext[])
{
    
dcmd(eventocmdtext);
    return 
0;
}
dcmd_evento(playeridparams[])
{
    new 
tmp[256], idxcmd;
    new 
string[128];
    
tmp strtok(paramsidx);
    if(!
strlen(tmp))
        return 
SendClientMessage(playerid,-1,"Uso: /evento [criar/fechar/armas/ir]");
    if(
strcmp(tmp"criar"true)==0)
        
cmd 1;
    else if(
strcmp(tmp"fechar"true)==0)
        
cmd 2;
    else if(
strcmp(tmp"armas"true)==0)
        
cmd 3;
    else if(
strcmp(tmp"ir"true)==0)
    
cmd 4;
    else return 
SendClientMessage(playerid,-1,"Uso: /evento [criar/fechar/armas/ir]");
    if(
cmd == 1)
    {
        if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"Vocк nгo й um administrador do servidor!");
        
ShowPlayerDialog(playeridEVENTODIALOG_STYLE_INPUT"Criar evento!""Digite um nome para o evento:""Avanзar""Cancelar");
        if(
EventoExistindo == true) return SendClientMessage(playerid, -1"Jб tem um evento criado /evento fechar");
        
EventoExistindo true;
    }
    if(
cmd == 2)
    {
        if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"Vocк nгo й um administrador do servidor!");
        if(
EventoExistindo == false) return SendClientMessage(playerid,-1"[ ERROR ] >>Nem um evento existente!");
        new 
str[128]; new nome[MAX_PLAYER_NAME]; GetPlayerName(playeridnomesizeof(nome));
        
format(strsizeof(str), "O administrador %s fechou o evento que estava ativo"nome);
    }
    if(
cmd == 3)
    {
        if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"Vocк nгo й um administrador do servidor!");
        if(
EventoExistindo == false) return SendClientMessage(playerid,-1"[ ERROR ] >>Nem um evento existente!");
        
ShowPlayerDialog(playeridEVENTO+1DIALOG_STYLE_INPUT"Evento Armas""Escolha o id da arma que vocК dara a quem estб no evento:""Avanзar""Cancelar");
    }
    if(
cmd == 4)
    {
        if(
EventoExistindo == false) return SendClientMessage(playerid,-1,"Nгo hб nenhum evento acontecendo!");
        
IsplayerInEvento[playerid] = true;
        
SetPlayerPos(playeridEventoXEventoYEventoZ);
        
SetPlayerInterior(playeridEventoInterior);
        
GameTextForPlayer(playerid"Bem vindo ao evento"1000);
    }
    return 
1;
}
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;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
     if(
dialogid == EVENTO)
    {
        if(!
response)
        {
            
EventoExistindo false;
            
SendClientMessage(playerid, -1"[EVENTO] >> Vocк cancelou o evento!");
        }
        else
        {
            
GetPlayerPos(playeridEventoXEventoYEventoZ);  
            
EventoInterior GetPlayerInterior(playerid);
            new 
nome[MAX_PLAYER_NAME];    new str[128];
            
GetPlayerName(playeridnomesizeof(nome));
            
format(strsizeof(str), "O administrador %s Criou um evento de: %s | /evento ir"nomeinputtext);
            
SendClientMessageToAll(-1str);
        }
    }
    if(
dialogid == EVENTO+1)
    {
        if(!
response)
        {
            
SendClientMessage(playerid, -1"[EVENTO] Comando cancelado");
        }
        else
        {
            new 
armaamo;
            
arma strval(inputtext);
            
amo 99999;
            if(
arma ) return SendClientMessage(playerid, -1"[EVENTO - ERROR] >> Nгo tem armas com id 0");
            new 
str[128]; new nome[MAX_PLAYER_NAME], narma[15]; GetPlayerName(playeridnomesizeof(nome));
            
GetWeaponName(armanarmasizeof(narma));
            
format(strsizeof(str), "O administrador %s deu %s a todos no evento!"nomenarma);
            
SendClientMessageToAll(-1str);
            for(new 
0MAX_PLAYERSi++)
            {
                if(
IsplayerInEvento[i] == true)
                {
                
GivePlayerWeapon(iarmaamo); //quem estiver de /evento ir ira ganha
                
}
            }
        }
    }
     return 
1;

fico da hora men
Reply
#20

Quero assim,eu faзo evento x1,entгo quero colocar os ids em combate entendeu?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)