[Ajuda] Contador de Kills
#1

Olб,
Venho aqui perguntar como posso fazer um contador de KILLS, deixe qualquer textdraw ai tanto faz somente para eu criar o meu prуprio e ver como funciona, e outra coisa, como eu poderia fazer um sistema de salvamento para as kills ?, pode criar em Dini que eu converto pra DOF2 ou tanto faz, eu sу queria que vocкs me ajudem com o seguinte:
Como criar um contador de Kills,
Textdraw para o contador,
salvamento dini ou DOF2.

O textdraw eu sei como faz sу que preciso ver aonde coloca as parada tudo certinho e etc, obrigado pela forзa que vocкs tem me dado gente !
Reply
#2

Para o contador e a textdraw, й sу vocк criar variaveis, por exemplo:
Код:
new Matou[MAX_PLAYERS];

public OnPlayerDeath(playerid, killerid, reason)
{
	Matou[playerid]++;
}
Depois й sу vocк criar a textdraw, e setar a string de acordo com a variбvel.
Reply
#3

Para o contador de kills й simples, olhe: vocк precisarб de uma variбvel global inteira para cada jogador, onde vocк declara ela assim:
Код:
new Kills[MAX_PLAYERS];
Feito, vocк criou a variбvel, agora vocк precisa aumentar as kills quando alguйm matar alguйm, sendo assim, vб na callback OnPlayerDeath e faзa assim:
Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    if(killerid != INVALID_PLAYER_ID) //aqui verificamos se o jogador que morreu, nгo foi morto por si prуprio
    //por exemplo: vemos se ele nгo se jogou.
    {
        Kills[killerid]+= 1; //aqui, acrescentamos +1 na variбvel kills do id do assassino, vocк tambйm poderia fazer Kills[killerid]++;
    }
    return 1;
}
Agora para salvar em DOF2, basta fazer isso (lembrando que aqui apenas mostro como salvar as kills):
Код:
stock SavePlayer(playerid)
{
    new file[50], name[25];
    GetPlayerName(playerid, name, sizeof(name));
    format(file, sizeof(file), "Contas/%s.ini", name); //mude o caminho das contas para o que vocк tem na pasta scriptfiles
    if(!DOF2_FileExists(file)) //verificamos se o jogador NAO tem seu arquivo criado, se nao tiver, criamos na proxima linha abaixo 
        DOF2_CreateFile(file);

    DOF2_SetInt(file, "Kills", Kills[playerid]);
    DOF2_SaveFile();  
}
Mas, precisamos carregar tambйm, nй? Entгo fica assim:
Код:
stock LoadPlayer(playerid)
{
	new file[50], name[25];
	GetPlayerName(playerid, name, sizeof(name)); //pegamos o nome do jogador que desejamos carregar para verificar
	//...se o arquivo pertencente a ele existe
	format(file, sizeof(file), "Contas/%s.ini", name); //lembre-se de alterar "Contas/" para o caminho onde й salvo as contas dentr de scriptfiles
	if(DOF2_FileExists(file)) //se existir o arquivo pertencente ao jogador
	{
	    Kills[playerid] = DOF2_GetInt(file, "Kills");
	}
}
Lembre-se que deve adaptar ao seu gamemode!
Qualquer dъvida e/ou erro de compilaзгo й sу dizer.
Reply
#4

Certo manolo isto funcionou, agora para eu colocar um textdraw para aparecer as kills faзo como ?!
Reply
#5

Quote:
Originally Posted by Manorango
Посмотреть сообщение
Para o contador de kills й simples, olhe: vocк precisarб de uma variбvel global inteira para cada jogador, onde vocк declara ela assim:
Код:
new Kills[MAX_PLAYERS];
Feito, vocк criou a variбvel, agora vocк precisa aumentar as kills quando alguйm matar alguйm, sendo assim, vб na callback OnPlayerDeath e faзa assim:
Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    if(killerid != INVALID_PLAYER_ID) //aqui verificamos se o jogador que morreu, nгo foi morto por si prуprio
    //por exemplo: vemos se ele nгo se jogou.
    {
        Kills[killerid]+= 1; //aqui, acrescentamos +1 na variбvel kills do id do assassino, vocк tambйm poderia fazer Kills[killerid]++;
    }
    return 1;
}
Agora para salvar em DOF2, basta fazer isso (lembrando que aqui apenas mostro como salvar as kills):
Код:
stock SavePlayer(playerid)
{
    new file[50], name[25];
    GetPlayerName(playerid, name, sizeof(name));
    format(file, sizeof(file), "Contas/%s.ini", name); //mude o caminho das contas para o que vocк tem na pasta scriptfiles
    if(!DOF2_FileExists(file)) //verificamos se o jogador NAO tem seu arquivo criado, se nao tiver, criamos na proxima linha abaixo 
        DOF2_CreateFile(file);

    DOF2_SetInt(file, "Kills", Kills[playerid]);
    DOF2_SaveFile();  
}
Mas, precisamos carregar tambйm, nй? Entгo fica assim:
Код:
stock LoadPlayer(playerid)
{
	new file[50], name[25];
	GetPlayerName(playerid, name, sizeof(name)); //pegamos o nome do jogador que desejamos carregar para verificar
	//...se o arquivo pertencente a ele existe
	format(file, sizeof(file), "Contas/%s.ini", name); //lembre-se de alterar "Contas/" para o caminho onde й salvo as contas dentr de scriptfiles
	if(DOF2_FileExists(file)) //se existir o arquivo pertencente ao jogador
	{
	    Kills[playerid] = DOF2_GetInt(file, "Kills");
	}
}
Lembre-se que deve adaptar ao seu gamemode!
Qualquer dъvida e/ou erro de compilaзгo й sу dizer.
Mano, como que eu posso fazer um TEXTDRAW para este sistema de KILLS ??
Reply
#6

Crie um textdraw se nгo tiver, recomendo criar um com o Zamaroth's Textdraw Editor. Se o textdraw for especнfico para um jogador (PlayerTextDraw), use PlayerTextDrawSetString, agora se nгo for para um jogador sу, use TextDrawSetString. Primeiro mostre o textdraw e depois altere a string dele com algumas dessas funзхes citadas acima de acordo com o seu tipo de textdraw.
Reply
#7

o textdraw eu vou criar mas tipo assim como que eu posso fazer para colocar este textdraw para ele pegar as kills deste sistema que vocк passou?, e tambйm, em quais publics devo colocar os textdraws e outra coisa, tem de fazer um timer/updater para atualizar o textdraw ?
Reply
#8

PHP код:

new Text:KillsTextdraw[MAX_PLAYERS];//Junto com аs suas NEWS
//Pхem junto com as textdraws em OnGamemodeInit
for(new playerid 0playerid MAX_PLAYERSplayerid++)
{
new 
kills[128];
format(killssizeof(kills), "~g~Kills: ~w~%d "Player[playerid][pMatou]);//Aqui defina com sua variбvel.
KillsTextdraw[playerid] = TextDrawCreate(497.000000120.000000"~g~K: ~w~120");
TextDrawBackgroundColor(KillsTextdraw[playerid], 255);
TextDrawFont(KillsTextdraw[playerid], 2);
TextDrawLetterSize(KillsTextdraw[playerid], 0.2099981.100000);
TextDrawColor(KillsTextdraw[playerid], -1);
TextDrawSetOutline(KillsTextdraw[playerid], 0);
TextDrawSetProportional(KillsTextdraw[playerid], 1);
TextDrawSetShadow(KillsTextdraw[playerid], 1);
TextDrawSetSelectable(KillsTextdraw[playerid], 0);
}
TextDrawShowForPlayer(playeridKillsTextdraw[playerid]);//Pхem em OnplayerSpawn 
Espero que ajude.
Reply
#9

Quote:
Originally Posted by Rato22
Посмотреть сообщение
PHP код:

new Text:KillsTextdraw[MAX_PLAYERS];//Junto com аs suas NEWS
//Pхem junto com as textdraws em OnGamemodeInit
for(new playerid 0playerid MAX_PLAYERSplayerid++)
{
new 
kills[128];
format(killssizeof(kills), "~g~Kills: ~w~%d "Player[playerid][pMatou]);//Aqui defina com sua variбvel.
KillsTextdraw[playerid] = TextDrawCreate(497.000000120.000000"~g~K: ~w~120");
TextDrawBackgroundColor(KillsTextdraw[playerid], 255);
TextDrawFont(KillsTextdraw[playerid], 2);
TextDrawLetterSize(KillsTextdraw[playerid], 0.2099981.100000);
TextDrawColor(KillsTextdraw[playerid], -1);
TextDrawSetOutline(KillsTextdraw[playerid], 0);
TextDrawSetProportional(KillsTextdraw[playerid], 1);
TextDrawSetShadow(KillsTextdraw[playerid], 1);
TextDrawSetSelectable(KillsTextdraw[playerid], 0);
}
TextDrawShowForPlayer(playeridKillsTextdraw[playerid]);//Pхem em OnplayerSpawn 
Espero que ajude.
Blz Obrigado!
Reply
#10

(159) : error 001: expected token: ",", but found "["
(159) : error 029: invalid expression, assumed zero
(159) : error 017: undefined symbol "pMatou"
(159) : fatal error 107: too many error messages on one line

format(kills, sizeof(kills), "~g~Kills: ~w~%d ", Kills[playerid][pMatou]);

Me informe como irei definir a variбvel de acordo com o sistema que o Monorango passou por favor ?!
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)