[AJUDA] Evento ! Zumbie x Mendingos !
#1

Bom Galera !

Estou aqui hoje pedindo ajuda de vocкs para me ajudarem criar meu sistema de evento de Zumbie x Mendingos !

e й o seguinte... Uso o GM BHL - Brasil Hyper Life que й base BMG... e tem varios eventos aqui ... mais esse que eu quero criar й assim :

ADM com nivel 1337 - Master digita /eventozxm ( Evento Zumbie x Mendingos ) dai Apareзe um Dialog para todos.. Soque envez de MSGBOX quero Dialog Style List vou dar um exemplo, nгo sou hard nisso vou tentar dar um exemplo !

pawn Код:
if (strcmp("/eventozxm", cmdtext, true, 10) == 0)
{
    ShowPlayerDialog(playerid,ZxM,DIALOG_STYLE_LIST,"Escolha Qual Time vocк quer !","Zumbie\nMendingos","Selecionar","Cancelar");
    return 1;
}
aai й so uma ideia que tive... dai o cara escolhe o time que quer e Click em Selecionar ou Cancelar para nгo participar...

Dai se ele escolher Mendingos ele й colocado em uma posiзгo... Zumbie em outra... ee a cada pessoa que o player matar ganha 1000 de Dinheiro e isso ja tenho um fs que pode me dar a base disso... vou postar aqui como poderia ser :

pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
       format(string, sizeof(string),"[EVENTO] %s Matou %s No evento e Ganhou 1000 de Bonus !.",Nomi[killerid], Nome[killerid]);
       SendClientMessageToAll(Branco, string);
       GivePlayerMoney(playerid, 1000);
    }
    return true;
}
isso ai й so uma Base... e agora presciso da Ajuda de vocкs ! e tbm presciso colocar as armas dos Zumbies e Mendingos ! йr isso ai galera, quero so uma base.. Pois estou aqui para aprender ;]]

Me Ajudem por favor
Reply
#2

pawn Код:
#define DIALOGEVENTO 5432

if (strcmp("/eventozxm", cmdtext, true, 10) == 0)
{
    ShowPlayerDialog(playerid,DIALOGEVENTO,DIALOG_STYLE_LIST,"Escolha Qual Time vocк quer !","Zumbie\nMendingos","Selecionar","Cancelar");
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
      if(dialogid == DIALOGEVENTO)
      {
            if(response)
            {
                  switch(listitem)
                  {
                        case 0:
                        {
                                //O Que irб ser setado no time dos Zumbis
                                }
                         case 1:
                         {
                                //O Que irб ser setado no Time dos Humanos
                                }
                          }
                    }
              }
       return 0;
}
Fiz uma pequena base de como seria , sу colocar as funзхes agora.
Reply
#3

Faзa o resto ai '-' te dei a faca e o queijo
pawn Код:
#include             <a_samp>
#define ZxM          5432
new InZxM[MAX_PLAYERS];

public OnFilterScriptInit(){return 1;}
public OnFilterScriptExit(){return 1;}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == ZxM)
    {
        if(response)
        {
            switch(listitem)
            {
                case 0:
                {
                    InZxM[playerid] = 1;
                    GivePlayerWeapon(playerid, 29, 900);
                    GivePlayerWeapon(playerid, 24, 900);
                    GivePlayerWeapon(playerid, 31, 900);
                    SetPlayerPos(playerid, 0,0,0);
                }
                case 1:
                {
                    InZxM[playerid] = 1;
                    GivePlayerWeapon(playerid, 26, 900);
                    GivePlayerWeapon(playerid, 24, 900);
                    GivePlayerWeapon(playerid, 32, 900);
                    SetPlayerPos(playerid, 0,0,0);
                }
            }
        }
    }
    return 0;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    if(InZxM[playerid] == 1)
    {
        new string[100];
        format(string, sizeof(string),"[EVENTO] %s Matou %s No evento e Ganhou 1000 de Bonus !.",nome(killerid), nome(playerid));
        SendClientMessageToAll(-1, string);
        GivePlayerMoney(killerid, 1000);
        InZxM[playerid] = 0;
    }
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(InZxM[playerid] == 1) return SendClientMessage(playerid, -1, " Vocк estб em um evento e nгo pode usar comandos!");
    if (strcmp("/eventozxm", cmdtext, true, 10) == 0)
    {
        ShowPlayerDialog(playerid,ZxM,DIALOG_STYLE_LIST,"Escolha Qual Time vocк quer !","Zumbie\nMendingos","Selecionar","Cancelar");
        return 1;
    }
    return 0;
}

stock nome(playerid)
{
    new nj[MAX_PLAYER_NAME];
    GetPlayerName(playerid, nj, sizeof(nj));
    return nj;
}
Reply
#4

@dPlayer

- Aew manim estou usando o seu...

mais tenho algumas Duvidas !

como eu quero que adm Modo trabalho e LVL 1337 possa usar esse cmd eu fiz ele assim :
pawn Код:
if(InZxM[playerid] == 1) return SendClientMessage(playerid, -1, " Vocк estб em um evento e nгo pode usar comandos!");
    {
    if(admtrampando[playerid] < 1 && PlayerInfo[playerid][pAdmin] != DONO)
        {
            SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo estб trabalhando! (/trabalhar)");
            return true;
        }
        if(IsPlayerConnected(playerid))
        {
            if (PlayerInfo[playerid][pAdmin] >= 1337)
            {
            ShowPlayerDialog(playerid,DIALOGEVENTO,DIALOG_STYLE_LIST,"Escolha Qual time vocк Quer Participar","Zumbie\nMendingos","Selecionar","Cancelar");
            }
          }
        }
      }
    }
Nгo sei se estб certo, й minha primeira vez que faзo um comando assim

Outra :
pawn Код:
if(dialogid == ZxM)
    {
        if(response)
        {
            switch(listitem)
            {
                case 0:
                {
                    InZxM[playerid] = 1;
                    GivePlayerWeapon(playerid, 24, 900);
                    GivePlayerWeapon(playerid, 25, 900);
                    GivePlayerWeapon(playerid, 29, 900);
                    GivePlayerWeapon(playerid, 30, 900);
                    SetPlayerSkin(playerid, 230);
                    SetPlayerPos(playerid, 0,0,0);
                }
                case 1:
                {
                    InZxM[playerid] = 1;
                    GivePlayerWeapon(playerid, 24, 900);
                    GivePlayerWeapon(playerid, 25, 900);
                    GivePlayerWeapon(playerid, 29, 900);
                    GivePlayerWeapon(playerid, 31, 900);
                    SetPlayerSkin(playerid, 209);
                    SetPlayerPos(playerid, 0,0,0);
                }
            }
        }
    }
Como pode ver, coloquei id das skins... ai queria que quando player Morrer voltar a skin que ele estava !

Uma coisa que nгo entendi foi isso :

pawn Код:
public OnFilterScriptInit(){return 1;}
public OnFilterScriptExit(){return 1;}
Meu gm nгo tem isso '-' й obrigatуrio o uso ?

Agora isso :
pawn Код:
stock nome(playerid)
{
    new nj[MAX_PLAYER_NAME];
    GetPlayerName(playerid, nj, sizeof(nj));
    return nj;
}
new nj ? '-'
return nj ? D: me explica se tem alguma Stock/new que prescisa para usar isso '-'
Reply
#5

Vocк vai adicionar isso ai, GM?
Se sim,posso montar uma base pronta aqui para vocк.
Reply
#6

Eu montei um gamemode faz anos luz, explicando as funзхes nativas..

http://pastebin.com/ug6XyG48

Source:
PHP код:
/*
        Pequeno tutorial de como criar um GameMode TDM
        facilmente, otimizado e com funзхes nativas.
        
        Explicaзгo por min(Garfield/SuYaNw).
        
        ATENЗГO,
        - Nгo edite o gamemode, apenas leia com atenзгo
        e tente fazer o seu prуprio, e caso tenha dъvidas,
        antes de chegar criando tуpico, vб na Wiki.sa-mp,com.
        
        Cordialmente,
        G.SuYaNw Dбcio.
*/

#include a_samp


// Bom, caso queira colocar mais "Times", coloque "TEAM_NOME_TIME".

#define TEAM_HUMANS                 (10)
#define TEAM_ZOMBIES                (15)


public OnGameModeInit()
{
//  AddPlayerClassEx(teamid, skin, Float:x, Float:y, Float:z, Float:Angle, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo)
    
AddPlayerClassEx(TEAM_HUMANS,     1002096.2456,1285.5159,78.17420.00,0,0,0,0,0); // Time Humanos - CLASSE 0
    
AddPlayerClassEx(TEAM_ZOMBIES,     1282096.2456,1285.5159,78.17420.00,0,0,0,0,0); // Time Zombies - CLASSE 1
    
    // Utilizamos AddPlayerClasseEx para quando o membro da mesma equipe
    // Atirar no outro membro da mesma equipe (TeamKill), nгo perde vida
    // Assim Evitando "Team Kill".
    
return true;



public 
OnPlayerRequestClass(playeridclassid)
{
    switch(
classid)
    {
        case 
0:
        {
            
// Utilizamos tambйm o "CLASSEID", o Classid й a sequкncia das classes
            // que foram criadas, como no caso acima, a classe "Humanso" foi criada
            // Antesq ue a classe Zombies, entгo a classe 'Humanos' й 0.
            // e a classe zombie й 1.
            
            
            
            
SetPlayerTeam(playeridTEAM_HUMANS);
            
// Agora, na funзгo "SetPlayerTeam" para indicar qual team o jogador
            // pertence, normalmente utilizamos para fazer o Anti- Team Kill.
            
            
            // Agora iremos mandar uma mensagem na tela do player dizendo qual
            // й o "Time" dele:
            
            
GameTextForPlayer(playerid"Humanos"25003);
            
            
// Este texto irб desaparecer em 2 segundos e meio ( 25000 ).
        
}
        case 
1:
        {
            
// --
            
            
SetPlayerTeam(playeridTEAM_ZOMBIES);
            
GameTextForPlayer(playerid"Zombies"25003);

            
// --
        
}
        
    }
    
    
    
// Agora iremos mostrar aonde estarб o personagem para o player escolher:
    // A funзгo abaixo, seta o mundo virtual do player, ele й quase infinto,
    // imagine um mundo virtual, sendo um universo pararelo, o cara estб connectado
    // ao servidor, mais nгo estб no mesmo "Universo" que os outros players xD.
    // Por padrгo, o mundo virtual dos players й "0".
    
SetPlayerVirtualWorld(playerid0);
    
    
// Agora iremos indicar aonde fica a posiзгo do personagem, ou seja, aonde
    // ele fica parao player escolher.
    
SetPlayerPos(playerid2096.2456,1285.5159,78.1742);
    
    
// Bom, na funзгo abaixo, iremos indicar aonde fica a posiзгo da cвmera do Player.
    
SetPlayerCameraPos(playerid,2097.145,1288.484,80.396);
    
    
// Agora iremos indicar a distвncia da camera com o personagem.
    
SetPlayerCameraLookAt(playerid,2096.245,1285.515,78.174);
    
    
// E por ъltimo, o Angulo.
    
SetPlayerFacingAngle(playerid0.0);
    return 
true;
}



public 
OnPlayerConnect(playerid)
{
    new 
// A funзгo "new" cria uma variбvel para alocar valores e/ou string's(textos).
        
string[128], // criamos a array que amarzenarб temporariamente uma mensagem.
        
Nome[24// e esta array amarzenarб o nome do player. Nota-se que sempre a ъltima array/variбvel nгo tem vнrgula.
    
;
    
    
    
// Agora, com a funзгo "GetPlayerName", Pegamos o nome do player e
    // 'Colocamos' na array "Nome".
    
GetPlayerName(playeridNome24);
    
    
// Com a funзгo "format", formatamos a mensagem para colocar o nome do player nela.
    
format(stringsizeof(string),"%s conectou ao servidor"Nome);
    
    
// Mandamos a mensagem formatada para todos do servidor.
    
SendClientMessageToAll(-1string);
    
    
/*
        Quando precisamos utilizar algum nome ou valor em uma string,
        necessitamos formata-las,  caso vocк tentar sem formatar, darб
        erro ou bug, mais caso nгo precise introduzir valores/arrays adicionais,
        basta vocк utilizar a funзгo sem criar uma array ou nome.
        
        Vamos a um Exemplo:
        
        Vamos dar "Bem Vindo" somente para o player que entrou.
    */
    
SendClientMessage(playerid, -1"Seja bem vindo ao servidor");
    
/*
        Nota-se que no exemplo acima, nгo precisa criar "string" ou "Nome",
        porque vocк nгo irб usar.
    */
    
return true;
}


public 
OnPlayerSpawn(playerid)
{
    
// Vamos dar uma arma para o player, no caso a arma id "34" e com "1000" Balas.
    
GivePlayerWeapon(playerid341000);
    return 
true;

** Usei PHP para destacar o cуdigo.
Reply
#7

@Riichard
Isso й pro meu GM de RPG... й um evento de Zombie x MEndingos ^^

@Garfiel

Esse tutorial й otimo, mais como eu disse acima queria fazer meu cmd para apenas adm nivel 1337 modo trabalho ! Lembrando meu GM й base GF... BMG.. й o Brasil Hyper Life.. !

e quero em dialog entende ?

o do dPlayer й um exemplo, quero o CMD em Dialog, para quando eu digitar apareзer para Todos.... dai o cara escolhe a equipe, e logo й setado a skin e a Posiзгo

Isso que eu quero ;]]
Reply
#8

pawn Код:
if (strcmp("/eventozxm", cmdtext, true, 10) == 0)
    {
        if(PlayerInfo[playerid][pAdmin] == 0)
        {
            SendClientMessage(playerid, CORDAMENSAGEM, "   Vocк nгo й um admin nessa porra :]!");
            return 1;
        }
        if (PlayerInfo[playerid][pAdmin] >= 1337)
        {
            ShowPlayerDialog(playerid,ZxM,DIALOG_STYLE_LIST,"Escolha Qual Time vocк quer !","Zumbie\nMendingos","Selecionar","Cancelar");
            return 1;
        }
        return 1;
    }
Reply
#9

Estб dano um erro e nгo sei oque faзo '-'

pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    if(InMxA[playerid] == 1)
    {
        format(string,128,"[EVENTO] %s Matou %s No evento e Ganhou 1000 de Bonus !.",killer,nome); // erro nessa linha
        GivePlayerMoney(killerid, 1000);
        InMxA[playerid] = 0;
    }
Erro :

pawn Код:
C:\Documents and Settings\FAMILIA\Desktop\[GM] - Brasil Hyper Life [TECNO-SAMP]\gamemodes\MegaLife.pwn(7845) : error 017: undefined symbol "string"
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


1 Error.
Reply
#10

pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    new string[128];
    if(InMxA[playerid] == 1)
    {
        format(string,128,"[EVENTO] %s Matou %s No evento e Ganhou 1000 de Bonus !.",killer,nome); // erro nessa linha
        GivePlayerMoney(killerid, 1000);
        InMxA[playerid] = 0;
    }
Vocк sу esqueceu de adicionar: 'new string[128];'
Simples ^^'
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)