[DUV]Profissao
#1

No comeзo do meu GM tenho
Код:
#define traficante_de_drogas 1
#define traficante_de_armas  2
E tenho uns comandos que precisa ser ou 1 ou 2 pra usar...
Tambem tenho:
Код:
new Profissao[MAX_PLAYERS] = 0;
Agora eu nao sei como defino a profissao de um player pra 1 ou 2...

Alguem pode me ensinar?


Reply
#2

algo como isto


no OnPlayerCommandText
pawn Код:
if(strcmp(cmd, "/tornarlider", true) == 0)
    {
      if(IsPlayerConnected(playerid))
      {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COR_CINZA, "USE: /tornarlider [ID/Nome do Jugador] [Numeros(1-2)]");
                return 1;
            }
            new para1;
            new level;
            para1 = ReturnUser(tmp);
            tmp = strtok(cmdtext, idx);
            level = strval(tmp);
            if(level > 2 || level < 0) { SendClientMessage(playerid, COR_CINZA, "Nгo vб abaixo do nъmero 0, ou acima nъmero de 2!"); return 1; }//Mudar no caso de colocar mais
            if (PlayerInfo[playerid][pAdmin] >= 5)//Define nivel de admin
            {
              if(IsPlayerConnected(para1))
              {
                if(para1 != INVALID_PLAYER_ID)
                {
                  if(PlayerInfo[para1][pMember] > 0 || PlayerInfo[para1][pFMember] < 255)
                  {
                    SendClientMessage(playerid, COR_CINZA, "Esse jogador jб tem uma profissгo!");
                    return 1;
                  }
                        GetPlayerName(para1, giveplayer, sizeof(giveplayer));
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        PlayerInfo[para1][pLeader] = level;
                        PlayerInfo[para1][pTeam] = level;
                        PlayerInfo[para1][pMember] = level;
                        if(level == 1)
                        {
                          format(string, sizeof(string), "Vocк foi colocado como traficante de droga por %s", sendername);
                            SendClientMessage(para1, COR_AZUL, string);
                            Profissao[playerid]=1;//Coloca na proifissгo 1
                                             SetPlayerSkin(playerid, 277);//Define a skin do player

                        }
                        else if(level == 2)
                        {
                          format(string, sizeof(string), "Vocк foi colocado como traficante de armas por %s", sendername);
                            SendClientMessage(para1, COR_AZUL, string);
                            Profissao[playerid]=2;//Coloca na proifissгo 2
                                             SetPlayerSkin(playerid, 277);//Define a skin do player
                        }
                    }
                }//nгo conectado
            }
            else
            {
                SendClientMessage(playerid, COR_CINZA, "Vocк nгo estб autorizado a usar esse comando!");
            }
        }
        return 1;
    }
acho eu ...

[EDIT] Atualizado. Obrigado SuB_ZeRo0_
Reply
#3

Topo:
pawn Код:
new Profissao[MAX_PLAYERS];
OnPlayerDisconnect:
pawn Код:
Profissao[playerid]=0;
No comando:
pawn Код:
Profissao[playerid]=1;
OU

pawn Код:
Profissao[playerid]=2;
Reply
#4

E no topo nгo й preciso estar = 0. Por default jб estб.
Reply
#5

Код:
C:\Documents and Settings\Lucas\Desktop\sAMP\gamemodes\MeuPrimeiroRPG.pwn(212) : error 017: undefined symbol "cmd"
C:\Documents and Settings\Lucas\Desktop\sAMP\gamemodes\MeuPrimeiroRPG.pwn(216) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Lucas\Desktop\sAMP\gamemodes\MeuPrimeiroRPG.pwn(216) : error 017: undefined symbol "strtok"
C:\Documents and Settings\Lucas\Desktop\sAMP\gamemodes\MeuPrimeiroRPG.pwn(217) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Lucas\Desktop\sAMP\gamemodes\MeuPrimeiroRPG.pwn(224) : error 017: undefined symbol "ReturnUser"
C:\Documents and Settings\Lucas\Desktop\sAMP\gamemodes\MeuPrimeiroRPG.pwn(225) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Lucas\Desktop\sAMP\gamemodes\MeuPrimeiroRPG.pwn(225) : error 017: undefined symbol "strtok"
C:\Documents and Settings\Lucas\Desktop\sAMP\gamemodes\MeuPrimeiroRPG.pwn(226) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Lucas\Desktop\sAMP\gamemodes\MeuPrimeiroRPG.pwn(228) : error 017: undefined symbol "PlayerInfo"
C:\Documents and Settings\Lucas\Desktop\sAMP\gamemodes\MeuPrimeiroRPG.pwn(228) : warning 215: expression has no effect
C:\Documents and Settings\Lucas\Desktop\sAMP\gamemodes\MeuPrimeiroRPG.pwn(228) : error 001: expected token: ";", but found "]"
C:\Documents and Settings\Lucas\Desktop\sAMP\gamemodes\MeuPrimeiroRPG.pwn(228) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Lucas\Desktop\sAMP\gamemodes\MeuPrimeiroRPG.pwn(228) : fatal error 107: too many error messages on one line

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


12 Errors.
Acho que as linhas nao sao precisas,primeiro vamos resolver os undefined,depois os outros...

PS:Esse comando seria sу pra adms,mas como eu faзo um pickup que dai qdo passa por cima aparece uma lista de coisas,mas nao uma daquelas listas que faz uma caixa gigante no meio ad tela,uma lista basica,do lado da tela com as opзoes de emprego,e qdo escolhesse uma,falaria se tem ctz e transformaria o cara em tal voisa
Reply
#6

Lucas tu nгo vais usar aquele comando, vais fazer um. Aquele й apenas para teres uma ideia. Os erros sгo porque nгo tens a Strtok e uams definiзхes. Depois de teres isso vai te causar mais erros por causa da informaзгo do jogador.

Se quiseres na mesma a Strtok podes ir aqui: https://sampwiki.blast.hk/wiki/Strtok

depois й sу colar no fim do gamemode por exemplo.

As tais 'definiзхes' sгo:

pawn Код:
new cmd[128], idx;
cmd = strtok(cmdtext, idx);
Que deverгo estar no OnPlayerCommandText fora de qualquer comando e no inнcio de tudo.
Reply
#7

Ok,amanha faзo isso que agora vou sair,flw...
Mas depois preciso estudar mais sobre coisas como essa:
Код:
format(string, sizeof(string), "Vocк foi colocado como traficante de droga por %s", sendername);
							SendClientMessage(para1, COR_AZUL, string);
Porque isso eu nao entendi muita coisa atй agora rsrs...flw gente,atй amanha
Reply
#8

pawn Код:
new sendername[MAX_PLAYER_NAME], string[73];
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "Vocк foi colocado como traficante de droga por %s", sendername);
SendClientMessage(playerid, COR, string);
O 'sendername' й para pegar o nome do jogador. O 'MAX_PLAYER_NAME' significa o tamanho. Isto quer dizer que й o mбximo de caracteres que o nick pode ter.
A 'string' й o que vai armazenar os dados. O '73' й o nъmero de cells. O nъmero de cells tem que ser suficiente para guardar todos os caracteres.

Pergunta: Como saber quantos caracteres tem a frase?
Resposta: Simples. Cada caracter equivale a uma letra ou espaзo. Entгo й sу contб-los e no fim somar 1. Porquк 1? Porque o 'null' estб presente em todas as strings. O null pode ser representado por 0 (hб mais opзхes mas esta chega).

Depois de teres contado os caracteres, inclusive o null, й hora de prosseguir. O '%s' que se vк na frase й o que serб substituнdo neste caso pelo nome do jogador. Entгo ao valor calculado subtraнmos 2 (porque sгo dois caracteres) e somamos 24 (porque o MAX_PLAYER_NAME sгo 24).
Pronto, jб estб o valor da string.

A funзгo 'GetPlayerName' й usada para pegar o nome do jogador. Ela funciona de uma forma simples.
playerid - Й o id/jogador em causa.
sendername - Й onde se coloca o nome da string que armazenarб o nome do jogador. Neste caso chamada sendername porque fora assim predefenida antes.
sizeof(sendername) - Й onde se coloca o tamanho da string. Poderia ser colocado neste caso 'MAX_PLAYER_NAME' ou '24'. Eu optei por colocar sizeof(sendername) para ele automaticamente pegar o valor.

Depois temos que 'preparar' a string que armazenarб os dados e posteriormente enviar a mensagem.

A funзгo 'format' й como jб disse como se estivessemos a 'arrumar' a string para que os dados sejam armazenados.
string - Й onde referimos a string que armazenarб os dados, neste caso a string chama-se mesmo string.
sizeof(string) - Como jб explicado acima й onde se coloca o tamanho da string.
"Vocк foi colocado como traficante de droga por %s" - Й onde se encontra a constante/mensagem. O '%s' й referido a string (texto) que й usado para ser substituнdo pelo nome do jogador neste caso.
sendername - Por fim no 'format' da string temos a 'funзгo' que irб substituir o '%s' da constante com o nome do jogador.


Por ъltimo vem a parte de enviar a mensagem ao jogador.

SendClientMessage - Й a 'funзгo' utilizada para mandar uma mensagem no chat para um id/jogador em especнfico.
playerid - Neste caso й o id/jogador em causa, ou seja, o que neste caso foi colocado em traficante de droga.
COR - Й onde serб colocada a cor em Hexadecimal. Em vez de andarmos a colocar a cor em Hexadecimal podemos ir ao topo e definir a cor da seguinte maneira: #define NOME CуdigoHexadecimal.
EX: #define LIGHTGREEN 0x38FF06FF. Agora poderiamos utilizar o nome 'LIGHTGREEN' ao invйs da cor em hexadecimal.
string - Finalmente й onde se coloca a constante/mensagem. Neste caso й a string que utilizamos para guardar os dados. Como jб referi, neste caso a string chama-se string porque foi assim que eu a defini.

Epб desculpa se tem algo mal explicado (tem concerteza), mas й que estou cheio de sono.print Espero que entendas.


Edit: Hб termos que nгo sгo os mais correctos, mas espero que entendas. Quanto aos negritos, nгo estгo todos os importantes, mas estгo alguns. Desculpa mas estou com sono.
Reply
#9

Aconselho a todos, antes de virem para ai pedir codigos simples e tals, darem um ctrl+f no GF ou Thug... (aconselho o GF, Thug tem mts bugs)
Reply
#10

Quote:
Originally Posted by andmeida10
Aconselho a todos, antes de virem para ai pedir codigos simples e tals, darem um ctrl+f no GF ou Thug... (aconselho o GF, Thug tem mts bugs)
GF e GF edits й o pior que podes aconselhar. O GF sim foi um grande script sem dъvida, mas para a altura em que foi lanзado. As skills dos scripters evoluiram e os scripts agora sгo feitos de melhor forma e mais simples. O GF nгo й assim tгo simples para iniciantes.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)