SA-MP Forums Archive
[Ajuda] Alguns sistemas - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Alguns sistemas (/showthread.php?tid=397146)



Alguns sistemas - sofina - 03.12.2012

Bom, eu estou criando um server ( nгo me diga. ) sу que eu jб compilei alguns sistemas ( com ajuda de alguns membros do fуrum. ) e quando eu entro no servidor eu crio a conta, mais o tutorial nгo aparece, e algumas defines que eu coloquei nгo funcionou. Alguйm sabe o que pode ser? ( Estou tentando descobrir o que й, mais nгo estou achando o problema.

#defines que nгo pegaram

Код:
#define LEVEL          1 // QUANTIDADE DE LEVEL QUANDO O PLAYER SE REGISTRA
#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
GM COMPLETO

Код:
#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 LEVEL          1 // QUANTIDADE DE LEVEL QUANDO O PLAYER SE REGISTRA
#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

#define DEAGLEDANO 48
#define M4DANO 42
#define SMGDANO 25
#define MP5DANO 25
#define SOCODANO 1
#define NOVEDANO 20
#define SILENCEDDANO 20
#define FACADANO 5
#define SHOTGUNDANO 30
#define SAWNDANO 20
#define AK47DANO 42
#define SNIPERDANO 100

forward Tutorial(playerid);

forward SendMSG();

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

new RandomColors [] =
{
	0xF50000FF, //Vermelho
 	0xF50000FF, //Vermelho
	0xF50000FF, //Vermelho
	0xF50000FF, //Vermelho
	0xF50000FF
};

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."
};

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"

new Player[MAX_PLAYERS][Informacoes];

public OnGameModeExit() {
	SetTimer("SendMSG", 30000, true);
    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 Angeles Official RPG");
    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, "					MetaGaming					");
				SendClientMessage(playerid, -1, "MetaGaming й tipo se vocк ver o nome na cabeзa de uma pessoa, exemplo: Fulado_Ciclano e fingir que vocк conhece ele");
				SendClientMessage(playerid, -1, "Exemplo: 'Ei Fulano.', nгo й assim, primeiro vocк terб que perguntar 'Olб amigo, qual й o seu nome? ou Olб caro amigo, como vocк se chama?' perguntar com respeito");
				SendClientMessage(playerid, -1, "Na vida real as pessoas nгo tem nome em cima da cabeзa.");
				SendClientMessage(playerid, -1, "Se vocк ver tambйm um Azteca entrando na loja de armas vocк tambйm nгo poderб falar 'Como entro para os Aztecas?'.");
				SendClientMessage(playerid, -1, "Tambйm isso й incorreto!! Hб muitas formas de Metagaming, mas uma das mais comuns sгo o nome em cima da cabeзa e o metagaming das skins.");
			    }
        case 31:
				{
				SendClientMessage(playerid, -1, "					PowerGaming					");
				SendClientMessage(playerid, -1, "Powergaming й uma coisa que vocк nгo deixarб o jogador ter uma chance de reagir");
				SendClientMessage(playerid, -1, "Quebrar algemas ou Corda com uma Pedra й Powergaming");
				SendClientMessage(playerid, -1, "Correr quando vocк foi derrubado por 2 pessoas й Powergaming.");
				SendClientMessage(playerid, -1, "Primeiro, vocк tem que dar uma chance de um player reagir as suas brigas/batalhas.");
				SendClientMessage(playerid, -1, "Vocк Gostaria que fizessem o mesmo com vocк? Forзar alguйm a fazer o que vocк diz й PowerGaming.");
				SendClientMessage(playerid, -1, "/me joga Fulano_Ciclano no chгo. й PowerGaming. Se vocк estб sozinho, vocк nгo pode forзar ninguйm а fazer (Exceto se tiver em vantagem, como armas, etc.");
				}
        case 32:
        		{
				SendClientMessage(playerid, -1, "					Character Kill					");
				SendClientMessage(playerid, -1, "CK significa: Character Kill, ou seja, vocк foi morto vбrias vezes dai o jogador fazerб CK em vocк.");
				SendClientMessage(playerid, -1, "Ele tira uma SCREENSHOT, posta no fуrum para o admin ver. o admin farб o CK em vocк que funcionarб a partir de lб.");
				SendClientMessage(playerid, -1, "A partir disso, vocк nгo poderб mais usar o nome que estб usando agora. porque o personagem morrerб.");
   				SendClientMessage(playerid, -1, "Vocк terб que usar outro nome.");
				}
        case 33:
				{
				SendClientMessage(playerid, -1, "					DeathMatch					");
				SendClientMessage(playerid, -1, "DM й uma pequena sigla de Deathmatch, ou seja sair matando que nem um louco");
				SendClientMessage(playerid, -1, "Entгo vocк nгo pode sair matando todo mundo como um louco que nгo sabe de nada");
				SendClientMessage(playerid, -1, "Vocк nгo poderб sair matando todos pela cidade porque extraindo as informaзхes IC para OOC");
				SendClientMessage(playerid, -1, "Vocк pegarб pena de morte ou prisгo perpйtua.");
				}

		case 34:
				{
				SendClientMessage(playerid, -1, "					Revenge Kill					");
				SendClientMessage(playerid, -1, "RK significa: Revenge Kill й matar alguйm que jб te matou por vinganзa");
				}

		case 35:
				{
				SendClientMessage(playerid, -1, "					Bunnyhopping					");
				SendClientMessage(playerid, -1, "Bunnyhopping significa, alguйm pulando que nem louco para chegar em um lugar mais rбpido");
				SendClientMessage(playerid, -1, "aqui й proibido Bunnyhopping. cuidado para nгo te reportarem");
				SendClientMessage(playerid, -1, "Serб kickado.");
				}

		case 36:
				{
				SendClientMessage(playerid, -1, "					Smileys					");
				SendClientMessage(playerid, -1, "Smileys que vocк encontra na linguagem do mundo da internet sу poderгo ser usados no /b");
				SendClientMessage(playerid, -1, "Se o jogador usar smiley no IC serб avisado 1Є vez 2Є vez 3Є kick");
				SendClientMessage(playerid, -1, "Smileys mais usando, sгo: xD, =D, :) e assim por diante.");
				}
		 case 40:
        {
            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;
}

public SendMSG()
{
  new random2 = random(sizeof(RandomColors));
  new randMSG = random(sizeof(RandomMSG));
  SendClientMessageToAll(RandomColors[random2], RandomMSG[randMSG]);
}



Re: Alguns sistemas - humildadeforever - 03.12.2012

1є - Para de criar tуpicos.
2є - Jб te falei onde colocar o SetTimerEx.
3є - Desiste de RPG. Aprende primeiro, depois vocк faz um.
4є - Em relaзгo аs defines, nгo й que elas nгo funcionam, vocк nгo usou. Acha que funciona assim?
pawn Код:
#define SISTEMA_ORGS 1
?
Nгo.

pawn Код:
#define LEVEL 1
SetPlayerScore(playerid, LEVEL);

#define DINHEIRO 300
GivePlayerMoney(playerid, DINHEIRO);
Assim que funciona /\.


Re: Alguns sistemas - Schocc - 03.12.2012

Verdade Desista de RPG gamemodes RPG й pra quem tem mais Experiencia em PAWN

Procure o Maximo de tutoriais SA-MP leia TODOS!!!

Estude as funзхes ao inves de CTRL+C CTRL+V Isso

Muitos aqui quando vгo criar um comando COPIГO a linha if(strcmp(cmdtext, "/cmd", true)) e simplesmente trocгo o nome cmd Sem ao menos saber oque a funзгo strcmp

Mais coloque em PRATICA como colocar em Pratica?
Crie um Gamemode de Drift Dm stunt, va fazen do testes


Re: Alguns sistemas - jpeg - 03.12.2012

Quote:
Originally Posted by humildadeforever
Посмотреть сообщение
1є - Para de criar tуpicos.
2є - Jб te falei onde colocar o SetTimerEx.
3є - Desiste de RPG. Aprende primeiro, depois vocк faz um.
4є - Em relaзгo аs defines, nгo й que elas nгo funcionam, vocк nгo usou. Acha que funciona assim?
pawn Код:
#define SISTEMA_ORGS 1
?
Nгo.

pawn Код:
#define LEVEL 1
SetPlayerScore(playerid, LEVEL);

#define DINHEIRO 300
GivePlayerMoney(playerid, DINHEIRO);
Assim que funciona /\.
Lol, sem isso um fуrum fica sem sentido. '-'


Re: Alguns sistemas - Joao Pedro - 03.12.2012

Quote:
Originally Posted by jpeg
Посмотреть сообщение
Lol, sem isso um fуrum fica sem sentido. '-'
Vocк entendeu Gif ¬¬


Re: Alguns sistemas - jpeg - 03.12.2012

Quote:
Originally Posted by Joao Pedro
Посмотреть сообщение
Vocк entendeu Gif ¬¬
Haha, pensando bem, acho que sim. -q


Re: Alguns sistemas - humildadeforever - 03.12.2012

Quote:
Originally Posted by jpeg
Посмотреть сообщение
Haha, pensando bem, acho que sim. -q
Ele tem uns 9 tуpicos e 51 posts.