[Ajuda] Sistema de emprego!
#1

Eai pessual, venho aki pedir uma ajudinha, meu sistema de emprego esta ai em baixo, pelo menos o comeзo rs.
Eu to fazendo um GM do 0, sem copias, e sem ctrl+c e ctrl+v, as vezes eu fico meio perdido com certas coisas que acontece com o meu GM.
Dessa vez esta acontecendo isto:
O player vai atй a agencia e escolhe um emprego, ai ele й setado para o emprego que ele escolheu, ele vai atй a HQ dele para trabalhar, mas quando ele vai exercer sua funзгo, simplesmente fala que ele nгo tem permissгo, isso quer dizer que ele nгo й da profissгo.
Ai se o player relogar e ele for trabalhar ele consegue exercer suas funзхes.
O comando das funзхes esta tudo certo, verefica se ele й de tal prof, se for deixa ele exercer a funзгo, se nгo for ele nгo deixa.
Estou achando que quando ele vai na agencia pegar o emprego ele й setado, mas nгo salva no arquivo do player, pq quando o comando da prof й chamado, ele verifica no arquivo do player se ele й da prof.
O que eu posso estar fazendo?

Dialogs e callbacks ai em baixo

pawn Код:
forward EntrarProf(playerid);
forward Salario();

new PlayerProf[MAX_PLAYERS];
pawn Код:
if(dialogid == DialogProf)
    {
        if(response)
        {
            switch(listitem)
            {
                case 0:
                {
                    new menuH[990];
                    strcat(menuH, "» Desempregado => {B74704}0 {FFFFFF}- {007100}R$250\n");
                    strcat(menuH, "» Gari => {B74704}6 {FFFFFF}- {007100}R$600\n");
.........

    if(dialogid == DialogH)
    {
        if(response)
        {
            switch(listitem)
            {
                case 0:
                {
                    GetPlayerScore(playerid);
                    if(GetPlayerScore(playerid) >= 0)
                    {
                        PlayerProf[playerid] = Desempregado;
                        ShowPlayerDialog(playerid, DialogProf, DIALOG_STYLE_MSGBOX, "Encaminhamento Agencia", "Vocк trocou de profissгo, sua nova profissгo й: Desempregado!", "OK", "");
                        EntrarProf(playerid);
                    }
                }
                case 1:
                {
                    GetPlayerScore(playerid);
                    if(GetPlayerScore(playerid) >= 6)
                    {
                        PlayerProf[playerid] = Gari;
                        SendClientMessage(playerid, LARANJA, "|INFO| Vocк trocou de profissгo, sua nova profissгo й: Gari!");
                        EntrarProf(playerid);
                    }
                    else
                    {
                        SendClientMessage(playerid, ERRO, "|ERRO| Vocк nгo tem level suficiente para pegar essa profissгo!");
                    }
                }
..........
pawn Код:
public EntrarProf(playerid)
{
    if(PlayerProf[playerid] == Desempregado)
    {
        SendClientMessage(playerid, C_DESEMPREGADO,"----------------- Desempregado -----------------");
        SendClientMessage(playerid, BRANCO,"- Para ver os comandos da sua profissгo digite:");
        SendClientMessage(playerid, BRANCO,"- /profissao");
        SendClientMessage(playerid, BRANCO,"- Seu salбrio vai ser de: {00A700}R$ 250");
        SendClientMessage(playerid, C_DESEMPREGADO,"----------------- Desempregado -----------------");
        SetPlayerColor(playerid, C_DESEMPREGADO);
        return true;
    }
    else if(PlayerProf[playerid] == Gari)
    {
        SendClientMessage(playerid,C_GARI,"-------------------- Gari --------------------");
        SendClientMessage(playerid,BRANCO,"- Para ver os comandos da sua profissгo digite:");
        SendClientMessage(playerid,BRANCO,"- /profissao");
        SendClientMessage(playerid,BRANCO,"- Seu salбrio vai ser de: {00A700}R$ 600");
        SendClientMessage(playerid,C_GARI,"-------------------- Gari --------------------");
        SetPlayerColor(playerid, C_GARI);
        return true;
    }
........
pawn Код:
public Salario()
{
    for(new i = 0; i <MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            SendClientMessage(i,C_MSG,"-------------------- SALБRIO --------------------");
            if(DadosPlayer[i][TemConta] < 1) return SendClientMessage(i,C_MSG,"- Vocк nгo tem uma conta bancбria, e por isso nгo irб receber o salбrio!");
            if(PlayerProf[i] == Desempregado)
            {
                SendClientMessage(i,C_MSG,"- Vocк й um Desempregado!");
                SendClientMessage(i,C_MSG,"- Foram depositados: {00A700}R$ 250{ABC6E3} em sua conta bancбria!");
                DadosPlayer[i][Saldo] = DadosPlayer[i][Saldo] + S_Desempregado;
            }
            else if(PlayerProf[i] == Gari)
            {
                SendClientMessage(i,C_MSG,"- Sua profissгo й: Gari! ");
                SendClientMessage(i,C_MSG,"- Foram depositados: {00A700}R$ 600{ABC6E3} em sua conta bancбria!");
                DadosPlayer[i][Saldo] = DadosPlayer[i][Saldo] + S_Gari;
            }
......
Reply
#2

Acho que sу faltou a atribuiзгo em EntrarProf
pawn Код:
PlayerProf[playerid] = NUM_PROF;
Reply
#3

Quote:
Originally Posted by ViniBorn
Посмотреть сообщение
Acho que sу faltou a atribuiзгo em EntrarProf
pawn Код:
PlayerProf[playerid] = NUM_PROF;
Vini mas isto esta na dialog
Que quando ele clicar na prof ele ja й setado.
pawn Код:
case 0:
                {
                    GetPlayerScore(playerid);
                    if(GetPlayerScore(playerid) >= 0)
                    {
                        PlayerProf[playerid] = Desempregado;//  AKI ELE ESTA SENDO SETADO
                        ShowPlayerDialog(playerid, DialogProf, DIALOG_STYLE_MSGBOX, "Encaminhamento Agencia", "Vocк trocou de profissгo, sua nova profissгo й: Desempregado!", "OK", "");
                        EntrarProf(playerid);
                    }
                }
Reply
#4

A sim, nгo tinha prestado atenзгo.

Vocк numerou as defines corretamente? Desempregado, Gari, etc
Reply
#5

Quote:
Originally Posted by ViniBorn
Посмотреть сообщение
A sim, nгo tinha prestado atenзгo.

Vocк numerou as defines corretamente? Desempregado, Gari, etc
Sim, todas numeradas e nenhum conflito.
Reply
#6

Nгo vi nada errado. O problema deve estar na hora de trabalhar.

Mostra o cуdigo atй a hora da mensagem de erro
Reply
#7

Este й o comando

pawn Код:
CMD:carregarP(playerid, params[])
{
    new st[900];
    format(StrContas, sizeof(StrContas), "Contas/%s.ini", Nome(playerid));
    if(DOF2_GetInt(StrContas, "Profissao") == Petroleiro)// Esta verificando se ele й petroleiro
    {
        if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 514)// Esta verificando se ele esta no caminhгo
        {
            if(IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))// Esta verificando se ele esta com um reboque
            {
                if(IsPlayerInRangeOfPoint(playerid, 20.0, 165.699996, 1401.5, 9.5) || IsPlayerInRangeOfPoint(playerid, 20.0, 165.600006, 1419.199951, 9.5))// Coordenadas onde ele pode executar o CMD
                {
                    if(Petroleo[playerid] == 0)// Esta verificando se ele esta carregado
                    {
                        strcat(st, "{FFFFFF}Posto de Fort Carson = {007100}R$100\n", sizeof st);
                        strcat(st, "{FFFFFF}Posto de Bone County = {007100}R$120\n", sizeof st);
                        strcat(st, "{FFFFFF}Posto de Las Venturas || = {007100}R$300\n", sizeof st);
                        strcat(st, "{FFFFFF}Posto de Redsands West = {007100}R$350\n", sizeof st);
                        strcat(st, "{FFFFFF}Posto de Tierra Robada = {007100}R$400\n", sizeof st);
                        strcat(st, "{FFFFFF}Posto de Las Venturas = {007100}R$400\n", sizeof st);
                        strcat(st, "{FFFFFF}Posto de Tierra Robada || = {007100}R$450\n", sizeof st);
                        strcat(st, "{FFFFFF}Posto de The Emerald Isle = {007100}R$600\n", sizeof st);
                        strcat(st, "{FFFFFF}Posto de Montgomery = {007100}R$600\n", sizeof st);
                        strcat(st, "{FFFFFF}Posto de Dillimore = {007100}R$750\n", sizeof st);
                        strcat(st, "{FFFFFF}Posto de Temple = {007100}R$850\n", sizeof st);
                        strcat(st, "{FFFFFF}Posto de Spinybed = {007100}R$900\n", sizeof st);
                        strcat(st, "{FFFFFF}Posto de Easter Basin = {007100}R$920\n", sizeof st);
                        strcat(st, "{FFFFFF}Posto de Flint County = {007100}R$950\n", sizeof st);
                        strcat(st, "{FFFFFF}Posto de Juniper Hallow = {007100}R$1050\n", sizeof st);
                        strcat(st, "{FFFFFF}Posto de Idlewood = {007100}R$1200\n", sizeof st);
                        strcat(st, "{FFFFFF}Posto de Angel Pine = {007100}R$1350\n", sizeof st);
                        strcat(st, "{FFFFFF}Posto de Whetstone = {007100}R$1400", sizeof st);
                        ShowPlayerDialog(playerid, DIALOG_PETROLEO, DIALOG_STYLE_LIST, "{A60000}* Cargas disponiveis * {FFFFFF}Local - {007100}Preзo",st , "Carregar", "");
                    }
                    else return SendClientMessage(playerid, ERRO, "|ERRO| Vocк jб esta carregado! Siga o ponto vermelho em seu mapa para descarregar!");
                }
                else return SendClientMessage(playerid, ERRO, "|ERRO| Vocк nгo esta na area de carregamento!");
            }
            else return SendClientMessage(playerid, ERRO, "|ERRO| Vocк nгo esta com um reboque de petroleo!");

        }
        else return SendClientMessage(playerid, ERRO, "|ERRO| Vocк sу pode carregar se estiver dentro do caminhгo!");
    }
    else return SendClientMessage(playerid, ERRO, "|ERRO| Vocк nгo nгo tem permissгo!");

    return true;
}
Reply
#8

Em vez de
pawn Код:
if(DOF2_GetInt(StrContas, "Profissao") == Petroleiro)
Por que nгo usa
pawn Код:
if(PlayerProf[playerid] == Petroleiro)
Reply
#9

Quote:
Originally Posted by ViniBorn
Посмотреть сообщение
Em vez de
pawn Код:
if(DOF2_GetInt(StrContas, "Profissao") == Petroleiro)
Por que nгo usa
pawn Код:
if(PlayerProf[playerid] == Petroleiro)
Caraca em Vini, queria ter seu conhecimento, o erro era este mesmo.
agora esta tudo certo.
Reply
#10

Quote:
Originally Posted by FernandoSS
Посмотреть сообщение
Caraca em Vini, queria ter seu conhecimento, o erro era este mesmo.
agora esta tudo certo.
Continua buscando conhecimento, e um dia vocк me ultrapassarб em conhecimento, como alguns jб fizeram.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)