Bom, meu nick de jogo é SuB_ZeRo0_ e este é meu primeiro post.
Postei pois me pediram para fazer este sistema.
Bom, primeiro iremos adicionar as stock que irão nos ajudar a adicionar os leveis, etc.
Coloque-as em cima ou em baixo de seu GameMode:
stock CriarArquivoLevels(playerid) //Cria o arquivo em Scriptfiles/Levels
{
new formatted[40],Nomesz[25];
GetPlayerName(playerid,Nomesz,25);
format(formatted,40,"Levels/%s.subzero",Nomesz);
if(fexist(formatted)) return 0;
new File:SubZero=fopen(formatted,io_write);
fwrite(SubZero,"0");
fclose(SubZero);
return 1;
}
stock PegarLevel(playerid) //Retorna o level do player
{
new Nomesz[25],strp[10],formatted[40];
GetPlayerName(playerid,Nomesz,25);
format(formatted,40,"Levels/%s.subzero",Nomesz);
if(fexist(formatted)) return 0;
new File:SubZero=fopen(formatted,io_read);
fread(SubZero,strp);
fclose(SubZero);
return strval(strp);
}
stock AddLevel(playerid) //Adiciona mais um level ao player
{
new Nomesz[25],strp[10],formatted[40];
GetPlayerName(playerid,Nomesz,25);
format(formatted,40,"Levels/%s.subzero",Nomesz);
if(fexist(formatted)) return 0;
new File:SubZero=fopen(formatted,io_read);
fread(SubZero,strp);
fclose(SubZero);
new level=strval(strp);
new StakLine[10];
format(StakLine,10,"%d",level+1);
new File:SubZero2=fopen(formatted,io_write);
fwrite(SubZero2,StakLine);
fclose(SubZero2);
return 1;
}
Agora, crie uma pasta em Scriptfiles, chamada 'Levels' (sem ' ).
Após ter feito isso, iremos criar uma variável, para sabermos quantas pessoas ele matou.
No topo do GameMode coloque:
new Kills[MAX_PLAYERS]; //Guarda quantos o player matou
Agora, vamos colocar nas publics o necessário, como neste código:
public OnPlayerDeath(playerid,killerid)
{
Kills[killerid]++; //Adiciona mais um Kill
new Matou=Kills[killerid];
//Aqui, quantos kills e o level:
if(Matou==1&&PegarLevel(killerid)==0) { //Se ele matou 1 e está level 0
AddLevel(killerid); //Adiciona mais um level
Kills[killerid]=0; //Zera o contador de Kills
}
//Exemplo de outro:
if(Matou==10&&PegarLevel(killerid)==1) {//Se ele matou 10 e está level 1
AddLevel(killerid); //Adiciona mais um level
Kills[killerid]=0; //Zera o contador de Kills
}
//Fim
return 1;
}
public OnPlayerConnect(playerid)
{
CriarArquivoLevels(playerid); //cria o arquivo do player
return 1;
}
public OnPlayerDisconnect(playerid)
{
Kills[playerid]=0; //Ajusta os Kills para 0, para o próximo player
return 1;
}
Pronto!
Siga o exemplo no OnPlayerDeath e crie mais leveis!
Boa sorte com seu GameMode, para ver o código completo:
Peça ajuda pelo nosso Xat e caso encontro algum bug, reporte.
0 comentários:
Postar um comentário