[Ajuda] Alguns erros que estб acontecendo.
#1

Estou tentando fazer o sistema de tutorial e coloquei outras coisas, mais esse do tutorial estб muito chato jб tentei um tanto de coisa e nada resolve. Alguйm poderia me dar uma ajuda? E caso tenha algo de errado em outras linhas poderia me falar ou atй mesmo tentar resolve-lo para mim? Estarei aqui tentando quebrar a cabeзa mais ainda para tentar corrigir isso.


Код:
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\teste.pwn(45) : error 055: start of function body without function header
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\teste.pwn(148) : error 029: invalid expression, assumed zero
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\teste.pwn(148) : error 004: function "Tutorial" is not implemented
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\teste.pwn(158) : error 017: undefined symbol "TEMPO_EM_SEGUNDOS"
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\teste.pwn(162) : error 017: undefined symbol "TEMPO_EM_SEGUNDOS"
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\teste.pwn(165) : error 017: undefined symbol "ULTIMA_PARTE"
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\teste.pwn(167) : error 017: undefined symbol "TimePlayer"
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\teste.pwn(167) : warning 215: expression has no effect
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\teste.pwn(167) : error 001: expected token: ";", but found "]"
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\teste.pwn(167) : error 029: invalid expression, assumed zero
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\teste.pwn(167) : fatal error 107: too many error messages on one line

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


10 Errors.
Aqui estб o GM.

Код:
#include a_samp
#include DOF2

new TutPlayer[MAX_PLAYERS]; // topo do GM

#define Azul #1919B3
#define AzulClaro #66CCFF
#define AzulEscuro #006699
#define Amarelo #FFFF00
#define Branco #FFFFFF
#define Laranja #FF8800
#define Rosa #FF99CC
#define Roxo #880099
#define Verde #00CC00
#define Vermelho #CC0000

#define DIALOG_REGISTRO 1
#define DIALOG_LOGAR 2
#define ContasSalvas "/Contas/%s.ini"

#define SEGUNDOS 1000
#define MINUTOS 60000
#define HORAS 3600000

#define DEAGLEDANO 40
#define M4DANO 38
#define SMGDANO 25
#define MP5DANO 25
#define SOCODANO 1
#define NOVEDANO 20
#define SILENCEDDANO 20
#define FACADANO 4
#define SHOTGUNDANO 30
#define SAWNDANO 20
#define AK47DANO 28
#define COUNTRYDANO 90

forward Tutorial(playerid);

enum Informacoes {
    Senha, Matou, Morreu, Dinheiro, PlayerAdmin
}

new TimerPlayer[MAX_PLAYERS];
{
            SendClientMessage "Seja bem vindo ao Los Angeles Official 2013.\n\n",
        } 
{
            SendClientMessage "Se vocк estб precisando de ajuda, sу usar o /sos e esperar um admin lhe ajudar.\n",
        }
{
            SendClientMessage "Nosso objetivo, й poder sempre deixar nossos players felizes.\n\n",
        }
{
            SendClientMessage "O servidor estб em fase de desenvolvimento no momento, caso queira deixar uma sugestгo ou reporta algum bug, sу ir no fуrum.\n\n",",
        }
{
            SendClientMessage "Divirta-se ao mбximo aqui no servidor, chame amigos, parentes, entre outros.",
        }

#define TextCasaVenda               	 "Los Angeles Official RPG\nEsta casa estб a venda\nTipo da Casa: %s\nPreзo da Casa: R$%d\nNivel: %d\nID da Casa: %d\nVocк pode comprar esta casa usando:\n/comprarcasa."
#define TextCasa                         "Los Angeles Official RPG\nO Dono desta casa й: %s\nNivel: %d\nID da Casa: %d ID da Casa: %d\nDigite /entrar para poder entrar na casa."
#define TextCasaAl                       "Los Angeles Official RPG\nO Dono desta casa й: %s\nPreзo do Aluguel: R$%d\nNivel: %d\nID da Casa: %d\nPara alugar esta casa digite\n/alugarquarto\nAperte a Tecla 'F' para entrar."
#define TextEmpresaVenda               	 "Los Angeles Official RPG\nEsta Empresa estб a venda\n%s\nPreзo: R$%d\nNivel: %d\nID da Empresa: %d\nSe vocк for um Jogador VIP pode comprar esta empresa\nUsando /comprarempresa"
#define TextEmpresa                      "Los Angeles Official RPG\n%s\nDono: %s\nExtorзгo: %s\nEntrada: R$%d\nNivel: %d\nID da Empresa: %d\nAperte a Tecla 'F' para entrar"

//*#define TEXTOCASAVENDA 	 	"Los Angeles Official RPG\nEsta casa estб a venda\nTipo da Casa: %s\nValor da Casa: R$%d\nNivel: %d\nID da Casa: %d\nVocк pode comprar esta casa usando:\n/comprarcasa"
#define TEXTOCASADONO    	"Los Angeles Official RPG\nO Dono desta casa й:%s\nNivel: %d"
#define TEXTOCASALUGUEL 	"Los Angeles Official RPG\nO Dono desta casa й:%s\nPreзo do Aluguel: {167405}R$%d\n{569DBE}Nivel: %d\nPara alugar esta casa digite\n/alugarquarto\nAperte a Tecla 'F' para entrar."

#define TEXTOEMPRESAVENDA   "Los Angeles Official RPG\nEsta Empresa estб a venda\n%s\n{86BED7}Esta empresa esta a venda\nValor: R$%d\nNivel: %d\nPara comprar digite \n/compraremp"
#define TEXTOEMPRESADONO    "Los Angeles Official RPG\n%s\nDono: %s\nExtorcao: %s\nEntrada: {167405}R$%d\nNivel: %d\nAperte Enter Para Entrar"

#define LEVEL          1 // LEVEL AO PLAYER SE REGISTRAR
#define CREDITOCEL     20 // QUANTIDADE DE CRЙDITOS QUANDO O PLAYER SE REGISTRA
#define DINHEIRO       3000 // DINHEIRO AO LOGAR
#define CONTABANCO     0 //DINHEIRO CONTA DO BANCO


new Player[MAX_PLAYERS][Informacoes];

public OnGameModeExit() {
    DOF2_Exit();
    return 1;
}

main() {
    print("\n-------------------------------------------");
    print("[PT/BR]Los Angeles RPG Official 2013 RPG[PT/BR]");
    print("-------------------------------------------\n");
}

public OnGameModeInit() {
    // Don't use these lines if it's a filterscript
    SetGameModeText("Los Santos Official RPG 2013");
    AddPlayerClass(0, 1642.1667, -2335.4941, 13.5469, 7.6790, 0, 0, 0, 0, 0, 0);
    return 1;
}

public OnPlayerConnect(playerid) {
    new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
    GetPlayerName(playerid, name, MAX_PLAYER_NAME); //Pega o nome do playerid
    format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid
    if (DOF2_FileExists(arquivo)) //Verifica se a pasta existe
    { //Caso existir, irб retornar a dialog de Login
    ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк jб estб registrado em nosso banco de dados, digite sua senha para logar.\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.", "Confirma", "Cancelar");
    } else //Caso o arquivo nгo exista
    { //Irб retornar a dialog de registro
        ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Vocк ainda nгo estб registrado em nosso server, digite uma senha para se registrar.", "Confirma", "Cancelar");
    }

    return 1;
}
public OnPlayerDisconnect(playerid, reason) {
    new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
    GetPlayerName(playerid, name, MAX_PLAYER_NAME); //Para pegar o nome do playerid
    format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid
    if (DOF2_FileExists(arquivo)) //Verifica se o arquivo da conta do playerid existe
    {
        Player[playerid][Dinheiro] = GetPlayerMoney(playerid); //Pega o dinheiro que o player tem no momento e iguala a Var de informaзхes dele
        DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]); //Salva a senha, caso ele tenha modificado
        DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]); //Salva quantos players ele matou
        DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]); //Salva quantas vezes ele morreu
        DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]); //Salva o dinheiro que foi igualado ao GetPlayerMoney logo acima no comeзo da funзгo
        DOF2_SaveFile(); //E finalmente salvando o arquivo
    }
    return 1;
}

public OnPlayerSpawn(playerid) {
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason) {
    return 1;
}

public OnVehicleSpawn(vehicleid) {
    return 1;
}

public OnVehicleDeath(vehicleid, killerid) {
    return 1;
}

public OnPlayerText(playerid, text[]) {

public Tutorial(playerid)
{
	TimerPlayer[playerid] = SetTimerEx("Tutorial", 30000, true, "d", playerid); //Coloca isso pra comeзar o tutorial. Vai chamar a public de tutorial a cada 1 segundo
    TutPlayer[playerid] ++; // isso й como se fosse os segundos
    switch(TutPlayer[playerid])
    {
        case 1: //Primeira vez que chamar a public
        {
            SendClientMessage(playerid, -1, "Bem vindo ao tutorial.");
        }
        case TEMPO_EM_SEGUNDOS:
        {
            SendClientMessage(playerid, -1, "DM й vocк pegar seu PC e tacar no chгo.");
        }
        case TEMPO_EM_SEGUNDOS:
        { //
        }
        case ULTIMA_PARTE:
        {
            KillTimer(TimePlayer[playerid]); //vai parar de chamar a public
        }
    }
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[]) {
    if (strcmp("/mycommand", cmdtext, true, 10) == 0) {
        // Do something here
        return 1;
    }
    return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) {
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid) {
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate) {
    return 1;
}

public OnPlayerEnterCheckpoint(playerid) {
    return 1;
}

public OnPlayerLeaveCheckpoint(playerid) {
    return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid) {
    return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid) {
    return 1;
}

public OnRconCommand(cmd[]) {
    return 1;
}

public OnPlayerRequestSpawn(playerid) {
    return 1;
}

public OnObjectMoved(objectid) {
    return 1;
}

public OnPlayerObjectMoved(playerid, objectid) {
    return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid) {
    return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid) {
    return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid) {
    return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2) {
    return 1;
}

public OnPlayerSelectedMenuRow(playerid, row) {
    return 1;
}

public OnPlayerExitedMenu(playerid) {
    return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) {
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success) {
    return 1;
}

public OnPlayerUpdate(playerid) {
    return 1;
}

public OnPlayerStreamIn(playerid, forplayerid) {
    return 1;
}

public OnPlayerStreamOut(playerid, forplayerid) {
    return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid) {
    return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid) {
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
    new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
    GetPlayerName(playerid, name, MAX_PLAYER_NAME); //Para pegar o nome do playerid
    format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid
    if (dialogid == DIALOG_REGISTRO) {
        if (!strval(inputtext)) //Verifica se o player digitou LETRAS, caso for true
        { //Retorna a dialog de registro novamente para ele digitar NЪMEROS
            ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Por favor, digite apenas nъmeros em sua senha!\nPor favor, digite sua senha novamente para concluir seu registro!", "Confirma", "Cancelar");
            return 1;
        }
        if (!response) //Verifica se ele clicar em 'Cancelar"
        { //Caso ele clicar em cancelar, irб retornar ao playerid KICK
            Kick(playerid);
            return 1;
        } else //Verifica se ele Confirma o Registro
        { //Caso for true, ira criar o arquivo na pasta CONTAS
            Player[playerid][Senha] = strval(inputtext); //Player[playerid][Senha] vai ser igual ao que ele digitar na dialog Registro
            DOF2_CreateFile(arquivo); //Vai criar o arquvivo na pasta Contas
            DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]); //Vai salvar a senha do playerid
            DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]); //Vai salvar quantas vezes ele matou
            DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]); //Vai salvar quantas vezes ele morreu
            DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]); //Vai salvar o dinheiro dele
            DOF2_SaveFile(); //E finalmente salvando o arquivo, sem essa funзгo o arquivo nгo serб salvo!
            //Retornando a dialog de Login ao player no final para ele logar no server
            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк acaba de se registrar em nosso banco de dados, por favor digite sua senha para logar!", "Confirma", "Cancelar");
        }
    }
    if (dialogid == DIALOG_LOGAR) {
        if (!response) {
            SendClientMessage(playerid, -1, "Vocк nгo quis logar, por isso foi kickado automaticamente.");
            Kick(playerid);
        }
        if (response) {
            new
            file[32];

            if (DOF2_FileExists(file)) {
                if (DOF2_CheckLogin(file, inputtext)) {
                    SendClientMessage(playerid, -1, "Parabйns");
                    //SpawnPlayer ( playerid );
                    return 1;
                } else {

                    ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Por favor, digite apenas nъmeros em sua senha.\nPor favor, digite sua senha para poder logar!\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.", "Confirma", "Cancelar");
                }
            }
        }
    }
    return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source) {
    return 1;
}



stock PlayerArchive(playerid) {
    new StringArquivo[128], NomeArquivo[24];
    GetPlayerName(playerid, NomeArquivo, sizeof(NomeArquivo));
    format(StringArquivo, sizeof(StringArquivo), ContasSalvas, NomeArquivo);
    return StringArquivo;
}
forward CarregarDados(playerid);
public CarregarDados(playerid) {
    return 1;
}

stock SalvarDados(playerid) {

    DOF2_SaveFile();
    return 1;
}

stock PlayerName(playerid) {
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    return Name;
}
Reply
#2

Esse TEMPO_EM_SEGUNDOS, ULTIMA_PARTE, etc do cуdigo que eu fiz pra tu. Vocк tem que substituir pelo tanto de segundos que quer.

Exemplo:
pawn Код:
case 1: //primeira vez q chamar o tut
{
}
case 25: // 25 segs
{
}
case 40: //qnd chegar em 40 segs
{
}
case 60: //qnd chegar em 60 segs
{
}
case 105: // acabou tut
{
   KillTimer(TimerPlayer[playerid]);
}
Esses SendClientMesasge que estгo aн voando й pra aparecer quando?

Toma ae:
pawn Код:
#include a_samp
#include DOF2

new TutPlayer[MAX_PLAYERS]; // topo do GM

#define Azul #1919B3
#define AzulClaro #66CCFF
#define AzulEscuro #006699
#define Amarelo #FFFF00
#define Branco #FFFFFF
#define Laranja #FF8800
#define Rosa #FF99CC
#define Roxo #880099
#define Verde #00CC00
#define Vermelho #CC0000

#define DIALOG_REGISTRO 1
#define DIALOG_LOGAR 2
#define ContasSalvas "/Contas/%s.ini"

#define SEGUNDOS 1000
#define MINUTOS 60000
#define HORAS 3600000

#define DEAGLEDANO 40
#define M4DANO 38
#define SMGDANO 25
#define MP5DANO 25
#define SOCODANO 1
#define NOVEDANO 20
#define SILENCEDDANO 20
#define FACADANO 4
#define SHOTGUNDANO 30
#define SAWNDANO 20
#define AK47DANO 28
#define COUNTRYDANO 90

forward Tutorial(playerid);

enum Informacoes {
    Senha, Matou, Morreu, Dinheiro, PlayerAdmin
}

new TimerPlayer[MAX_PLAYERS];

/*SendClientMessage(playerid, -1, "Seja bem vindo ao Los Angeles Official 2013.\n\n");
SendClientMessage(playerid, -1,"Se vocк estб precisando de ajuda, sу usar o /sos e esperar um admin lhe ajudar.\n");
SendClientMessage(playerid, -1, "Nosso objetivo, й poder sempre deixar nossos players felizes.\n\n");
SendClientMessage(playerid, -1, "O servidor estб em fase de desenvolvimento no momento, caso queira deixar uma sugestгo ou reporta algum bug, sу ir no fуrum.\n\n");
SendClientMessage(playerid, -1, "Divirta-se ao mбximo aqui no servidor, chame amigos, parentes, entre outros.");
        */


#define TextCasaVenda                    "Los Angeles Official RPG\nEsta casa estб a venda\nTipo da Casa: %s\nPreзo da Casa: R$%d\nNivel: %d\nID da Casa: %d\nVocк pode comprar esta casa usando:\n/comprarcasa."
#define TextCasa                         "Los Angeles Official RPG\nO Dono desta casa й: %s\nNivel: %d\nID da Casa: %d ID da Casa: %d\nDigite /entrar para poder entrar na casa."
#define TextCasaAl                       "Los Angeles Official RPG\nO Dono desta casa й: %s\nPreзo do Aluguel: R$%d\nNivel: %d\nID da Casa: %d\nPara alugar esta casa digite\n/alugarquarto\nAperte a Tecla 'F' para entrar."
#define TextEmpresaVenda                 "Los Angeles Official RPG\nEsta Empresa estб a venda\n%s\nPreзo: R$%d\nNivel: %d\nID da Empresa: %d\nSe vocк for um Jogador VIP pode comprar esta empresa\nUsando /comprarempresa"
#define TextEmpresa                      "Los Angeles Official RPG\n%s\nDono: %s\nExtorзгo: %s\nEntrada: R$%d\nNivel: %d\nID da Empresa: %d\nAperte a Tecla 'F' para entrar"

//*#define TEXTOCASAVENDA       "Los Angeles Official RPG\nEsta casa estб a venda\nTipo da Casa: %s\nValor da Casa: R$%d\nNivel: %d\nID da Casa: %d\nVocк pode comprar esta casa usando:\n/comprarcasa"
#define TEXTOCASADONO       "Los Angeles Official RPG\nO Dono desta casa й:%s\nNivel: %d"
#define TEXTOCASALUGUEL     "Los Angeles Official RPG\nO Dono desta casa й:%s\nPreзo do Aluguel: {167405}R$%d\n{569DBE}Nivel: %d\nPara alugar esta casa digite\n/alugarquarto\nAperte a Tecla 'F' para entrar."

#define TEXTOEMPRESAVENDA   "Los Angeles Official RPG\nEsta Empresa estб a venda\n%s\n{86BED7}Esta empresa esta a venda\nValor: R$%d\nNivel: %d\nPara comprar digite \n/compraremp"
#define TEXTOEMPRESADONO    "Los Angeles Official RPG\n%s\nDono: %s\nExtorcao: %s\nEntrada: {167405}R$%d\nNivel: %d\nAperte Enter Para Entrar"

#define LEVEL          1 // LEVEL AO PLAYER SE REGISTRAR
#define CREDITOCEL     20 // QUANTIDADE DE CRЙDITOS QUANDO O PLAYER SE REGISTRA
#define DINHEIRO       3000 // DINHEIRO AO LOGAR
#define CONTABANCO     0 //DINHEIRO CONTA DO BANCO


new Player[MAX_PLAYERS][Informacoes];

public OnGameModeExit() {
    DOF2_Exit();
    return 1;
}

main() {
    print("\n-------------------------------------------");
    print("[PT/BR]Los Angeles RPG Official 2013 RPG[PT/BR]");
    print("-------------------------------------------\n");
}

public OnGameModeInit() {
    // Don't use these lines if it's a filterscript
    SetGameModeText("Los Santos Official RPG 2013");
    AddPlayerClass(0, 1642.1667, -2335.4941, 13.5469, 7.6790, 0, 0, 0, 0, 0, 0);
    return 1;
}

public OnPlayerConnect(playerid)
{
    new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
    GetPlayerName(playerid, name, MAX_PLAYER_NAME); //Pega o nome do playerid
    format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid
    if (DOF2_FileExists(arquivo)) //Verifica se a pasta existe
    { //Caso existir, irб retornar a dialog de Login
    ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк jб estб registrado em nosso banco de dados, digite sua senha para logar.\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.", "Confirma", "Cancelar");
    } else //Caso o arquivo nгo exista
    { //Irб retornar a dialog de registro
        ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Vocк ainda nгo estб registrado em nosso server, digite uma senha para se registrar.", "Confirma", "Cancelar");
    }

    return 1;
}
public OnPlayerDisconnect(playerid, reason) {
    new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
    GetPlayerName(playerid, name, MAX_PLAYER_NAME); //Para pegar o nome do playerid
    format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid
    if (DOF2_FileExists(arquivo)) //Verifica se o arquivo da conta do playerid existe
    {
        Player[playerid][Dinheiro] = GetPlayerMoney(playerid); //Pega o dinheiro que o player tem no momento e iguala a Var de informaзхes dele
        DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]); //Salva a senha, caso ele tenha modificado
        DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]); //Salva quantos players ele matou
        DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]); //Salva quantas vezes ele morreu
        DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]); //Salva o dinheiro que foi igualado ao GetPlayerMoney logo acima no comeзo da funзгo
        DOF2_SaveFile(); //E finalmente salvando o arquivo
    }
    return 1;
}

public OnPlayerSpawn(playerid) {
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason) {
    return 1;
}

public OnVehicleSpawn(vehicleid) {
    return 1;
}

public OnVehicleDeath(vehicleid, killerid) {
    return 1;
}

public OnPlayerText(playerid, text[])
{
    return 1;
}
public Tutorial(playerid)
{
    TimerPlayer[playerid] = SetTimerEx("Tutorial", 30000, true, "d", playerid); //Coloca isso pra comeзar o tutorial. Vai chamar a public de tutorial a cada 1 segundo
    TutPlayer[playerid] ++; // isso й como se fosse os segundos
    switch(TutPlayer[playerid])
    {
        case 1: //Primeira vez que chamar a public
        {
            SendClientMessage(playerid, -1, "Bem vindo ao tutorial.");
        }
        case 20:
        {
            SendClientMessage(playerid, -1, "DM й vocк pegar seu PC e tacar no chгo.");
        }
        case 50:
        { //
        }
        case 102:
        {
            KillTimer(TimerPlayer[playerid]); //vai parar de chamar a public
        }
    }
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[]) {
    if (strcmp("/mycommand", cmdtext, true, 10) == 0) {
        // Do something here
        return 1;
    }
    return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) {
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid) {
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate) {
    return 1;
}

public OnPlayerEnterCheckpoint(playerid) {
    return 1;
}

public OnPlayerLeaveCheckpoint(playerid) {
    return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid) {
    return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid) {
    return 1;
}

public OnRconCommand(cmd[]) {
    return 1;
}

public OnPlayerRequestSpawn(playerid) {
    return 1;
}

public OnObjectMoved(objectid) {
    return 1;
}

public OnPlayerObjectMoved(playerid, objectid) {
    return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid) {
    return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid) {
    return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid) {
    return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2) {
    return 1;
}

public OnPlayerSelectedMenuRow(playerid, row) {
    return 1;
}

public OnPlayerExitedMenu(playerid) {
    return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) {
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success) {
    return 1;
}

public OnPlayerUpdate(playerid) {
    return 1;
}

public OnPlayerStreamIn(playerid, forplayerid) {
    return 1;
}

public OnPlayerStreamOut(playerid, forplayerid) {
    return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid) {
    return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid) {
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
    new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
    GetPlayerName(playerid, name, MAX_PLAYER_NAME); //Para pegar o nome do playerid
    format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid
    if (dialogid == DIALOG_REGISTRO) {
        if (!strval(inputtext)) //Verifica se o player digitou LETRAS, caso for true
        { //Retorna a dialog de registro novamente para ele digitar NЪMEROS
            ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Por favor, digite apenas nъmeros em sua senha!\nPor favor, digite sua senha novamente para concluir seu registro!", "Confirma", "Cancelar");
            return 1;
        }
        if (!response) //Verifica se ele clicar em 'Cancelar"
        { //Caso ele clicar em cancelar, irб retornar ao playerid KICK
            Kick(playerid);
            return 1;
        } else //Verifica se ele Confirma o Registro
        { //Caso for true, ira criar o arquivo na pasta CONTAS
            Player[playerid][Senha] = strval(inputtext); //Player[playerid][Senha] vai ser igual ao que ele digitar na dialog Registro
            DOF2_CreateFile(arquivo); //Vai criar o arquvivo na pasta Contas
            DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]); //Vai salvar a senha do playerid
            DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]); //Vai salvar quantas vezes ele matou
            DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]); //Vai salvar quantas vezes ele morreu
            DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]); //Vai salvar o dinheiro dele
            DOF2_SaveFile(); //E finalmente salvando o arquivo, sem essa funзгo o arquivo nгo serб salvo!
            //Retornando a dialog de Login ao player no final para ele logar no server
            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк acaba de se registrar em nosso banco de dados, por favor digite sua senha para logar!", "Confirma", "Cancelar");
        }
    }
    if (dialogid == DIALOG_LOGAR) {
        if (!response) {
            SendClientMessage(playerid, -1, "Vocк nгo quis logar, por isso foi kickado automaticamente.");
            Kick(playerid);
        }
        if (response) {
            new
            file[32];

            if (DOF2_FileExists(file)) {
                if (DOF2_CheckLogin(file, inputtext)) {
                    SendClientMessage(playerid, -1, "Parabйns");
                    //SpawnPlayer ( playerid );
                    return 1;
                } else {

                    ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Por favor, digite apenas nъmeros em sua senha.\nPor favor, digite sua senha para poder logar!\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.", "Confirma", "Cancelar");
                }
            }
        }
    }
    return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    return 1;
}
stock PlayerArchive(playerid)
{
    new StringArquivo[128], NomeArquivo[24];
    GetPlayerName(playerid, NomeArquivo, sizeof(NomeArquivo));
    format(StringArquivo, sizeof(StringArquivo), ContasSalvas, NomeArquivo);
    return StringArquivo;
}
forward CarregarDados(playerid);
public CarregarDados(playerid)
{
    return 1;
}

stock SalvarDados(playerid)
{
    //DOF2_SaveFile();
    return 1;
}
stock PlayerName(playerid)
{
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    return Name;
}
Reply
#3

Coloquei do jeito que vocк falou e atй diminuiu os erros, mais ainda tem alguns.


Код:
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\teste.pwn(45) : error 055: start of function body without function header
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\teste.pwn(148) : error 029: invalid expression, assumed zero
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\teste.pwn(148) : error 004: function "Tutorial" is not implemented
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\teste.pwn(170) : error 002: only a single statement (or expression) can follow each "case"
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


4 Errors.
Код:
public OnPlayerText(playerid, text[]) {

public Tutorial(playerid)
{
	TimerPlayer[playerid] = SetTimerEx("Tutorial", 30000, true, "d", playerid); //Coloca isso pra comeзar o tutorial. Vai chamar a public de tutorial a cada 1 segundo
    TutPlayer[playerid] ++; // isso й como se fosse os segundos
    switch(TutPlayer[playerid])
    {
        case 1: //Primeira vez que chamar a public
        {
            SendClientMessage(playerid, -1, "Bem vindo ao tutorial.");
        }
        case 30: //Quando chegar em 30 segundos
        {
            SendClientMessage(playerid, -1, "DM й vocк pegar seu PC e tacar no chгo.");
        }
        case 31: //Quando chegar em 31 segundos
       {
            SendClientMessage(playerid, -1, "Proibido DB no server.");
        }
        case 32: //Quando chegar em 32 segundos
        {
			KillTimer(TimerPlayer[playerid]);
		}
{
	}
    return 1;
}
E sobre a linha 45 aqui estб, o erro parece que estб na chave..

Код:
new TimerPlayer[MAX_PLAYERS];
		{
            SendClientMessage "Seja bem vindo ao Los Angeles Official 2013.\n\n",
        } 
		{
            SendClientMessage "Se vocк estб precisando de ajuda, sу usar o /sos e esperar um admin lhe ajudar.\n",
        }
		{
            SendClientMessage "Nosso objetivo, й poder sempre deixar nossos players felizes.\n\n",
        }
		{
            SendClientMessage "O servidor estб em fase de desenvolvimento no momento, caso queira deixar uma sugestгo ou reporta algum bug, sу ir no fуrum.\n\n",",
        }
		{
            SendClientMessage "Divirta-se ao mбximo aqui no servidor, chame amigos, parentes, entre outros.",
        }
Reply
#4

Jб colocou o que eu passei?
Reply
#5

Desculpe nгo vi seu EDIT, agora compilo direitinho.

Код:
Esses SendClientMesasge que estгo aн voando й pra aparecer quando?
Й para quando o player acabar de fazer seu registro aparecer o tutorial, ou o cуdigo estб errado?
Reply
#6

Quote:
Originally Posted by sofina
Посмотреть сообщение
Desculpe nгo vi seu EDIT, agora compilo direitinho.

Код:
Esses SendClientMesasge que estгo aн voando й pra aparecer quando?
Й para quando o player acabar de fazer seu registro aparecer o tutorial, ou o cуdigo estб errado?
Eles estгo fora de qualquer public/stock , tгo voando mesmo ehueuehu. Eu deixei comentado (/* e */), coloque ele apуs o tutorial ou apуs o registro.

E isso:
pawn Код:
TimerPlayer[playerid] = SetTimerEx("Tutorial", 30000, true, "d", playerid); //Coloca isso pra comeзar o tutorial. Vai chamar a public de tutorial a cada 1 segundo
Vocк coloca apуs completar o registro.
Reply
#7

Й esses os cуdigos que vocк falou? Se for, eu coloquei para tipo aparecer essas mensagens dentro do servidor com o passar do tempo, tipo passa uns 10 20 min todos do servidor recebe essa mensagem [ mais recebe sу uma a cada tempo desse.]. (( Tinha pensando que vocк falou o do tutorial, e sobre o tutorial eu posso colocar quantos SendClientMessage(playerid, -1, eu quiser ou tem uma quantia certa? Tipo 6 7 desses. ))

Код:
new TimerPlayer[MAX_PLAYERS];

/*SendClientMessage(playerid, -1, "Seja bem vindo ao Los Angeles Official 2013.\n\n");
SendClientMessage(playerid, -1,"Se vocк estб precisando de ajuda, sу usar o /sos e esperar um admin lhe ajudar.\n");
SendClientMessage(playerid, -1, "Nosso objetivo, й poder sempre deixar nossos players felizes.\n\n");
SendClientMessage(playerid, -1, "O servidor estб em fase de desenvolvimento no momento, caso queira deixar uma sugestгo ou reporta algum bug, sу ir no fуrum.\n\n");
SendClientMessage(playerid, -1, "Divirta-se ao mбximo aqui no servidor, chame amigos, parentes, entre outros.");
        */
Reply
#8

Quote:
Originally Posted by sofina
Посмотреть сообщение
Й esses os cуdigos que vocк falou? Se for, eu coloquei para tipo aparecer essas mensagens dentro do servidor com o passar do tempo, tipo passa uns 10 20 min todos do servidor recebe essa mensagem [ mais recebe sу uma a cada tempo desse.]. (( Tinha pensando que vocк falou o do tutorial, e sobre o tutorial eu posso colocar quantos SendClientMessage(playerid, -1, eu quiser ou tem uma quantia certa? Tipo 6 7 desses. ))

Код:
new TimerPlayer[MAX_PLAYERS];

/*SendClientMessage(playerid, -1, "Seja bem vindo ao Los Angeles Official 2013.\n\n");
SendClientMessage(playerid, -1,"Se vocк estб precisando de ajuda, sу usar o /sos e esperar um admin lhe ajudar.\n");
SendClientMessage(playerid, -1, "Nosso objetivo, й poder sempre deixar nossos players felizes.\n\n");
SendClientMessage(playerid, -1, "O servidor estб em fase de desenvolvimento no momento, caso queira deixar uma sugestгo ou reporta algum bug, sу ir no fуrum.\n\n");
SendClientMessage(playerid, -1, "Divirta-se ao mбximo aqui no servidor, chame amigos, parentes, entre outros.");
        */
Pхe quantos quiser.

Pra fazer isso das mensagens de tempo em tempo, precisa de mais cуdigo do que isso!

Veja:
https://sampforum.blast.hk/showthread.php?tid=180718
https://sampforum.blast.hk/showthread.php?tid=138260
Reply
#9

Certo, muito obrigado pela sua ajuda, irei termina esses dois sistemas e tentar criar o sistema de administrador.

+rep para vocк.
Reply
#10

Quote:
Originally Posted by sofina
Посмотреть сообщение
Certo, muito obrigado pela sua ajuda, irei termina esses dois sistemas e tentar criar o sistema de administrador.

+rep para vocк.
De nada.
E seu REP sу funcionarб quando vocк tiver 50 posts ou mais, hehe!


Adios.
Reply
#11

Sу uma dica:

Pelo que eu vi, vocк esta iniciando um projeto de GameMode RPG.
Nгo faзa isso agora, comece pelos DM ou scripts pequenos,
Porque vocк vai encontrar diversas duvida em criaзгo do GM.
Estude bastante, deixe para outras ocasiхes seu RPG.
Abraзos !
Reply
#12

No sistema de Mensagens automбticas estб dando esse erro.

Код:
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\teste.pwn(63) : error 029: invalid expression, assumed zero
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


1 Error.
Linha do erro й na return.

Код:
new RandomMSG[][] =
{
  "Seja bem vindo ao Los Angeles Official 2013.",
  "Divirta-se ao mбximo aqui no servidor, chame amigos, parentes, entre outros.",
  "O servidor estб em fase de desenvolvimento no momento, caso queira deixar uma sugestгo ou reporta algum bug, sу ir no fуrum.",
  "Se vocк estб precisando de ajuda, sу usar o /sos e esperar um admin lhe ajudar.",
  "Nosso objetivo, й poder sempre deixar nossos players felizes.",
{
	return 1;
}
@AmericanStyle eu sei cara, mais eu nгo consigo fazer isso, gosto de coisas mais complicadas de se fazer. (( Claro tem uns erros que nгo consigo resolver, mais tem coisas que eu consigo, sу quebrar a cabeзa.
Reply
#13

pawn Код:
new RandomMSG[][] =
{
  "Seja bem vindo ao Los Angeles Official 2013.",
  "Divirta-se ao mбximo aqui no servidor, chame amigos, parentes, entre outros.",
  "O servidor estб em fase de desenvolvimento no momento, caso queira deixar uma sugestгo ou reporta algum bug, sу ir no fуrum.",
  "Se vocк estб precisando de ajuda, sу usar o /sos e esperar um admin lhe ajudar.",
  "Nosso objetivo, й poder sempre deixar nossos players felizes."
};
Reply
#14

Obrigado.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)