[Tutorial] Como criar um Emprego
#1

°°Tutorial de Emprego°°
Bem ola a todos estou aki hoje para ensinar a vcs como criar um emprego,sei que ja existe um tutorial sobre isto porйm acho que este jeito й melhor, entгo mгos ao teclado!

primeiro de tudo no topo de seu Game Mode:
pawn Код:
#define Cor_Advogado  0xFF6600AA
enum pInfo
{
    pEmprego
}
new PlayerInfo[MAX_PLAYERS][pInfo]
Pronto, nosso emprego esta definido e tem sua cor Prуpria.

Agora irei explicar como vocк fas para o player pegar o emprego:

pawn Код:
if(strcmp(cmdtext, "/viraradvogado", true) == 0)
{
    PlayerInfo[playerid][pEmprego] = 1; // Alйm de "Definir" que o emprego do player й 1 que no caso й advogado, ele       seta o emprego do player para 1 (advogado).
    SendClientMessage(playerid, Cor_Advogado, "Parabens, vocк virou um advogado");//Manda a mensagem para o   player disendo que ele virou um advogado.
}
Pronto assim vc seta o emprego do player.

Agora irei mostrar como criar um comando apenas para quem й do emprego:

pawn Код:
if(strcmp(cmdtext, "/checaradvogado", true) == 0)
{
    if(PlayerInfo[playerid][pEmprego] == 1)//Checa se o player й do emprego 1 (Advogado)
{
    SendClientMessage(playerid, Cor_Advogado, "Parabens, vocк й um advogado");//Manda a mensagem disendo que o player й advogado.
}
else {//Checa se o player nгo й advogado
    SendClientMessage(playerid, Cor_Advogado, "Vocк nгo й um advogado.");//Manda a mensagem disendo que ele nгo й um advogado.
}
}
Assim й que se cria um comando para um emprego, entгo vamos criar um comando para sair do emprego:

pawn Код:
if(strcmp(cmdtext, "/sairdoemprego", true) == 0)
{
    if(PlayerInfo[playerid][pEmprego] == 1)//Checa se o player й do emprego 1 (Advogado).
{
    PlayerInfo[playerid][pEmprego] = 0;//Seta o emprego do player para 0 (Sem emprego ou se preferir Civil).
    SendClientMessage(playerid, Cor_Advogado, "Parabens, vocк nгo й mais um advogado");//Manda a mensagem disendo que o player nгo й mais um advogado.
}
else {//Checa se o player nгo й advogado
    SendClientMessage(playerid, Cor_Advogado, "Vocк nгo tem um emprego!");//Manda a mensagem disendo que ele nгo й um advogado.
}
}
Bem e й assim que se cria um emprego, facil porйm chato de fazer. Se aver algo errado por favor deiche um coment para que eu arrume.

Salvando os empregos:
Aqui irei colocar como salvar os empregos com FINI.

No topo de seu Game Mode:
pawn Код:
#include <a_fini>// ou #include <Fini>
new pName[MAX_PLAYER_NAME];//Define o nome para usarmos no GetPlayerName
Agora no OnPlayerDisconnect:
pawn Код:
new string[80];//Define a string para usarmos.
    GetPlayerName(playerid, pName, sizeof(pName));//Pega o nome do Player.
    format(string, sizeof(string), "Empregos/%s.ini",pName);//Cria o formato do arquivo.
    if(Fini_Exists(string))//Checa se o arquivo do Formato que definimos a cima existe.
{
 
    Fini_OpenFile(string);//abre o arquivo para podermos salvar o emprego.
    Fini_SetVal("Emprego", PlayerInfo[playerid][pEmprego]);//salva o emprego do player.
    Fini_SaveFile(string);//salva o arquivo.
    Fini_CloseFile();//fecha o arquivo.
}
    else {//Se o player nгo tem o arquivo de emprego, ele sera criado automaticamente.
    Fini_Create(string);//cria o arquivo do player para salvar o emprego.
    Fini_OpenFile(string);//abre o arquivo do player para modificarmos oque ah dentro.
    Fini_SetVal("Emprego", PlayerInfo[playerid][pEmprego]);//Seta o emprego do player para salvarmos
    Fini_SaveFile(string);//salva o arquivo do player para quando ele logar entrar com o mesmo emprego em que saio.
    Fini_CloseFile();// fecha o arquivo do emprego do player
}
Pronto. Arquivo salvo.

Agora quando o player logar, ele presisa voltar com o mesmo emprego. Entгo usamos o seguinte:

Agora no OnPlayerConnect:
pawn Код:
new string[80];//Define a string para usarmos.
        GetPlayerName(playerid, pName, sizeof(pName));//Pega o nome do Player.
        format(string, sizeof(string), "Empregos/%s.ini",pName);//Cria o formato do arquivo.
        Fini_OpenFile(string);//abre o arquivo para pegar o emprego do player.
        PlayerInfo[playerid][pEmprego] = Fini_GetValue("Emprego"); //Pega o emprego do player
        Fini_CloseFile();//Fecha o arquivo.
Pronto! O player loga com o mesmo emprego em que deslogou.

Espero que esse Tutorial ajude a todos que presisam de ajuda em criar um emprego.

Crйditos:

CrazY_Fenix(Mandrack_FreeZe) pelo tutorial inteiro.
Reply
#2

Ъtil.
Reply
#3

Quote:
Originally Posted by Edu33
Посмотреть сообщение
Ъtil.
Vlw!
Reply
#4

Acho q compensaria mais fazer um tuto explicando melhor sobre variбveis e enums do que fazer um tutorial dessa maneira.
Reply
#5

Tutorial util porem se sair do servidor e voltar ja sabe ne? entгo tenta por um tuto pra salvar o emprego tambem ne ;d
Reply
#6

Quote:
Originally Posted by Kuddy
Посмотреть сообщение
Acho q compensaria mais fazer um tuto explicando melhor sobre variбveis e enums do que fazer um tutorial dessa maneira.
й um tuto de faser emprego... Eu tambem pensei em faser um tuto de enum mais й que quando pensei tava no meio do tuto kk ai nгo dava, sу server como exemplo pro caso dos novatos quiserem faser seu prуprio sistema de emprego.

Vale pelo coment!
Reply
#7

Fazendo um tutorial deveria ao menos indentar neh!
Tuto bem simples mas deve ajudar alguйm!
Reply
#8

Quote:
Originally Posted by Jake_Dunlapp
Посмотреть сообщение
Tutorial util porem se sair do servidor e voltar ja sabe ne? entгo tenta por um tuto pra salvar o emprego tambem ne ;d
pode crer vo botar tambйm, vlw pela dica!
Reply
#9

Seria melhor se usastes uma define, ao invйs de numero e tambйm indentaзгo melhor, Ficaria bem mais simples dos "mais novatos" entenderem.

pawn Код:
#define Advogado 1
#define Mecanico 2

// Como usar:
if(PlayerInfo[playerid][pEmprego] == Advogado) return SendClientMessage(playerid,-1,"vocк й advogado");

//Oposiзгo acima:
if(PlayerInfo[playerid][pEmprego] != Advogado) return SendClientMessage(playerid,-1,"vocк NГO й advogado");

// Como Usar 2:
if(PlayerInfo[playerid][pEmprego] == Mecanico ) return SendClientMessage(playerid,-1,"vocк й Mecanico ");

//Oposiзгo acima:
if(PlayerInfo[playerid][pEmprego] != Mecanico ) return SendClientMessage(playerid,-1,"vocк  NГO й Mecanico ");
De qualquer maneira, Nгo achei muito bom, poderia ter mais funзхes. Porйm, й ъtil.
Reply
#10

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[]) {

    if(!strcmp(cmdtext, "/viraradvogado", false)) {
   
        if(!GetPVarInt(playerid, #advogado)) {
            SendClientMessage(playerid, 0xFFFF00FF, "[ERRO]: Vocк jб й advogado!");
        }
        SetPVarInt(playerid, #advogado, 1);
        SendClientMessage(playerid, 0xFFFF00FF, "[INFO]: Vocк virou advogado!");
        return 1;
    }
    if(!strcmp(cmdtext, "/checaradvogado", false)) {
   
        if(GetPVarInt(playerid, #advogado)) {
            SendClientMessage(playerid, 0xFFFF00FF, "[ERRO]: Vocк nгo й um advogado!");
        }
        SendClientMessage(playerid, 0xFFFF00FF, "[INFO]: Parabкns vocк й um advogado!");
        return 1;
    }
    if(!strcmp(cmdtext, "/sairdoemprego", false)) {
   
        if(GetPVarInt(playerid, #advogado)) {
            SendClientMessage(playerid, 0xFFFF00FF, "[ERRO]: Vocк nгo й um advogado!");
        }
        SetPVarInt(playerid, #advogado, 0);
        SendClientMessage(playerid, 0xFFFF00FF, "[INFO]: Vocк saiu do emprego de advogado!");
        return 1;
    }

    return 0;
}
Isso estб mais para um cуdigo ъtil. Quem sabe seja ъtil para alguйm!
Reply
#11

Sistema de salvamento adicionado. Aproveitem pessoal.

leonardo1434 , vlw pela dica.

Obrigado por postar tambйm vlw!
Reply
#12

Por Favor,ajustar a identaзгo. Pois irб estragar com o entendimento dos outros.
Reply
#13

Quote:
Originally Posted by leonardo1434
Посмотреть сообщение
Por Favor,ajustar a identaзгo. Pois irб estragar com o entendimento dos outros.
ok. vlw por avisar.
Reply
#14

deu esse erro ai ajuda

C:\Documents and Settings\Fernando\Desktop\Untitled.pwn(53) : warning 217: loose indentation
C:\Documents and Settings\Fernando\Desktop\Untitled.pwn(53) : error 017: undefined symbol "pName"
C:\Documents and Settings\Fernando\Desktop\Untitled.pwn(53) : error 017: undefined symbol "pName"
C:\Documents and Settings\Fernando\Desktop\Untitled.pwn(53) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Fernando\Desktop\Untitled.pwn(53) : fatal error 107: too many error messages on one line

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


4 Errors.


olha como esta

#include <a_samp>

#if defined FILTERSCRIPT
#include <a_fini>// ou #include <Fini>
new pName[MAX_PLAYER_NAME];//Define o nome para usarmos no GetPlayerName

public OnFilterScriptInit()
}
#define Cor_Advogado 0xFF6600AA
enum pInfo
{
pEmprego
}
new PlayerInfo[MAX_PLAYERS][pInfo]

#else

main()
{
print("\n----------------------------------");
print(" Euro Trucker Simulador 2");
print("----------------------------------\n");
}

#endif

public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("EURO_TRUCKER");
AddPlayerClass(192, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
AddPlayerClass(199, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
AddPlayerClass(15, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}

public OnGameModeExit()
{
return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}

public OnPlayerConnect(playerid)
{
new string[80];//Define a string para usarmos.
GetPlayerName(playerid, pName, sizeof(pName));//Pega o nome do Player.
format(string, sizeof(string), "Empregos/%s.ini",pName);//Cria o formato do arquivo.
Fini_OpenFile(string);//abre o arquivo para pegar o emprego do player.
PlayerInfo[playerid][pEmprego] = Fini_GetValue("Emprego"); //Pega o emprego do player
Fini_CloseFile();//Fecha o arquivo.
{
return 1;
}

public OnPlayerDisconnect(playerid, reason)
new string[80];//Define a string para usarmos.
GetPlayerName(playerid, pName, sizeof(pName));//Pega o nome do Player.
format(string, sizeof(string), "Empregos/%s.ini",pName);//Cria o formato do arquivo.
if(Fini_Exists(string))//Checa se o arquivo do Formato que definimos a cima existe.
{

Fini_OpenFile(string);//abre o arquivo para podermos salvar o emprego.
Fini_SetVal("Emprego", PlayerInfo[playerid][pEmprego]);//salva o emprego do player.
Fini_SaveFile(string);//salva o arquivo.
Fini_CloseFile();//fecha o arquivo.
}
else {//Se o player nгo tem o arquivo de emprego, ele sera criado automaticamente.
Fini_Create(string);//cria o arquivo do player para salvar o emprego.
Fini_OpenFile(string);//abre o arquivo do player para modificarmos oque ah dentro.
Fini_SetVal("Emprego", PlayerInfo[playerid][pEmprego]);//Seta o emprego do player para salvarmos
Fini_SaveFile(string);//salva o arquivo do player para quando ele logar entrar com o mesmo emprego em que saio.
Fini_CloseFile();// fecha o arquivo do emprego do player
}
{
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 OnPlayerCommandText(playerid, cmdtext[])
if(strcmp(cmdtext, "/viraradvogado", true) == 0)
{
PlayerInfo[playerid][pEmprego] = 1; // Alйm de "Definir" que o emprego do player й 1 que no caso й advogado, ele seta o emprego do player para 1 (advogado).
SendClientMessage(playerid, Cor_Advogado, "Parabens, vocк virou um advogado");//Manda a mensagem para o player disendo que ele virou um advogado.

{
if(strcmp(cmdtext, "/checaradvogado", true) == 0)
{
if(PlayerInfo[playerid][pEmprego] == 1)//Checa se o player й do emprego 1 (Advogado)
{
SendClientMessage(playerid, Cor_Advogado, "Parabens, vocк й um advogado");//Manda a mensagem disendo que o player й advogado.
}
else {//Checa se o player nгo й advogado
SendClientMessage(playerid, Cor_Advogado, "Vocк nгo й um advogado.");//Manda a mensagem disendo que ele nгo й um advogado.
}
}
if(strcmp(cmdtext, "/sairdoemprego", true) == 0)
{
if(PlayerInfo[playerid][pEmprego] == 1)//Checa se o player й do emprego 1 (Advogado).
{
PlayerInfo[playerid][pEmprego] = 0;//Seta o emprego do player para 0 (Sem emprego ou se preferir Civil).
SendClientMessage(playerid, Cor_Advogado, "Parabens, vocк nгo й mais um advogado");//Manda a mensagem disendo que o player nгo й mais um advogado.
}
else {//Checa se o player nгo й advogado
SendClientMessage(playerid, Cor_Advogado, "Vocк nгo tem um emprego!");//Manda a mensagem disendo que ele nгo й um advogado.
}
}
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[])
{
return 1;
}

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


Forum Jump:


Users browsing this thread: 3 Guest(s)