Como criar um Emprego -
Mandrack_FreeZe - 23.06.2012
°°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.
Re: Como criar um Emprego -
Edu33 - 23.06.2012
Ъtil.
Re: Como criar um Emprego -
Mandrack_FreeZe - 23.06.2012
Quote:
Originally Posted by Edu33
Ъtil. 
|
Vlw!
Re: Como criar um Emprego -
Kuddy - 23.06.2012
Acho q compensaria mais fazer um tuto explicando melhor sobre variбveis e enums do que fazer um tutorial dessa maneira.
Re: Como criar um Emprego -
Jake_Dunlapp - 23.06.2012
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
Re: Como criar um Emprego -
Mandrack_FreeZe - 23.06.2012
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!
Re: Como criar um Emprego -
paulor - 23.06.2012
Fazendo um tutorial deveria ao menos indentar neh!
Tuto bem simples mas deve ajudar alguйm!
Re: Como criar um Emprego -
Mandrack_FreeZe - 23.06.2012
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!
Re: Como criar um Emprego -
leonardo1434 - 23.06.2012
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.
Re: Como criar um Emprego -
RoacH` - 23.06.2012
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!
Re: Como criar um Emprego -
Mandrack_FreeZe - 23.06.2012
Sistema de salvamento adicionado. Aproveitem pessoal.
leonardo1434 , vlw pela dica.
Obrigado por postar tambйm vlw!
Re: Como criar um Emprego -
leonardo1434 - 23.06.2012
Por Favor,ajustar a identaзгo. Pois irб estragar com o entendimento dos outros.
Re: Como criar um Emprego -
Mandrack_FreeZe - 23.06.2012
Quote:
Originally Posted by leonardo1434
Por Favor,ajustar a identaзгo. Pois irб estragar com o entendimento dos outros.
|
ok. vlw por avisar.
Re: Como criar um Emprego -
fernando_coder - 07.08.2013
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;
}