[Ajuda] Bounties - 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] Bounties (
/showthread.php?tid=374689)
Bounties -
s4kuL - 03.09.2012
Eae gente beleza? eu andei estudando um gamemodes e achei um de TDM, e vi um sistema muito legal, mais eu nгo entendi, alguйm ai poderia me explicar mais ou menos como faзo isso? (Cada vez que um player matar 1 swat/exercito ele gahar 2000 de recompensa por ser morto)
Cуdigo:
pawn Код:
new Bounty[MAX_PLAYERS];
new BountyKills[MAX_PLAYERS];
public OnPlayerDeath(playerid, killerid, reason)
{
if(gTeam[killerid] != gTeam[playerid])
{
// Valid kill
new str[128];
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
GivePlayerMoney(killerid, 1000);
if(IsPlayerJustice(playerid) && !IsPlayerJustice(killerid))
{
BountyKills[killerid]++;
if(BountyKills[killerid] > 3)
{
if(BountyKills[killerid] == 4) Bounty[killerid] = 10000;
else Bounty[killerid] += 2500;
GetName(killerid, killername);
format(str, sizeof(str), "%s (%d) now has a bounty of $%d", killername, killerid, Bounty[killerid]);
SendClientMessageToAll(COLOR_YELLOW, str);
}
}
if(Bounty[playerid] > 0)
{
GetName(playerid, playername);
GivePlayerMoney(killerid, Bounty[playerid]);
format(str, sizeof(str), "You got $%d bounty reward for killing %s (%d)", Bounty[playerid], playername, playerid);
SendClientMessage(killerid, COLOR_YELLOW, str);
}
}
}
Bounty[playerid] = 0;
BountyKills[playerid] = 0;
return 1;
}
Re: Bounties -
LeLeTe - 03.09.2012
Espero ter ajudado.
pawn Код:
new Bounty[MAX_PLAYERS]; //Valores, normal...
new BountyKills[MAX_PLAYERS];//Valores, normal...
public OnPlayerDeath(playerid, killerid, reason) //Quando um player morre (playerid) ...
{
if(gTeam[killerid] != gTeam[playerid]) //... e o time de quem matou (killerid) й diferente de quem morreu (playerid)...
{
new str[128];//String .-.
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);//Aumenta +1 no score do cara (TAB)
GivePlayerMoney(killerid, 1000);//Dб 1000$ de dinheiro pro mano que matou...
if(IsPlayerJustice(playerid) && !IsPlayerJustice(killerid)) //Se o cara que morreu (playerid) for da facзгo Justice (ou qualquer que seja a facзгo que usa IsPlayerJustice) e o matador nгo for...
{
BountyKills[killerid]++; //... o matador ganha +1 morte de recompensa...
if(BountyKills[killerid] > 3) // Se as mortes de recompensa forem maiores que trкs...
{
if(BountyKills[killerid] == 4) Bounty[killerid] = 10000; //Se as mortes forem EXATAMENTE iguais a 4, a recompensa por matar o matador fica EXATAMENTE igual a dez..
else Bounty[killerid] += 2500;// Se nгo, a cabeзa do matador ganha mais 2500 de recompensa...
GetName(killerid, killername);//Funзгo para pegar o nome do matador.
format(str, sizeof(str), "%s (%d) now has a bounty of $%d", killername, killerid, Bounty[killerid]); //Mensagem que diz ' %s [matador] (%d) [id do matador] agora tem uma recompensa de $%d [quanto vale a cabeзa do matador]'
SendClientMessageToAll(COLOR_YELLOW, str); //Manda a mensagem pra geral.
}
}
if(Bounty[playerid] > 0)//Se o cara que morreu tiver uma recompensa maior que $0 pela sua cabeзa...
{
GetName(playerid, playername);//Pega o nome de quem morreu...
GivePlayerMoney(killerid, Bounty[playerid]); //Dб o dinheiro da recompensa pro matador...
format(str, sizeof(str), "You got $%d bounty reward for killing %s (%d)", Bounty[playerid], playername, playerid);//Mensagem que diz ' Vocк ganhou $%d [dinheiro da recompensa] de recompensa por matar %s [nome do morto] (%d) [id do morto]
SendClientMessage(killerid, COLOR_YELLOW, str);//Manda a mensagem pra galera.
}
}
}
Bounty[playerid] = 0;//Zera o quanto a cabeзa do cara que morreu vale em dinheiro, ou seja, a recompensa por matar ele vira zero.
BountyKills[playerid] = 0;//Zera quantas pessoas da facзгo Justice o mano que acabou de morrer matou.
return 1;
}
Re: Bounties -
s4kuL - 03.09.2012
Valeu lelete, agora outra coisa, me ajuda fazer esse sistema no meu gamemode?
NГO ESTOU PEDINDO DE MГO BEIJADO, Й POR FAVOR..
Re: Bounties -
LeLeTe - 03.09.2012
Claro.
Me passa as suas funзхes que vocк utiliza para dinheiro (Sу o GetPlayerMoney e o SetPlayerMoney), o ID e a array ou funзгo que vocк usa para determinar o time que vocк quer que a recompensa seja colocada (tipo, se vocк matar um player da facзгo IsPlayerPulissa ou playerInfo[playerid][pTeam] == 2, vocк comeзa a ter uma recompensa por sua cabeзa), e eu faзo.
Re: Bounties -
s4kuL - 03.09.2012
Hmm, acho que nгo entendi muito bem, me passa seu msn pra gente conversar mehor?
Re: Bounties -
LeLeTe - 03.09.2012
У.
- Sua funзгo de dinheiro. (No gm que vocк pegou, ele usa SetPlayerMoney, e GetPlayerMoney) Que funзгo vocк usa pra ver quanto de dinheiro um player tem, e qual pra dar dinheiro pra ele?
- Que facзгo vocк gostaria que tivesse uma recompensa pelos membros mortos?
Sу.
Re: Bounties -
s4kuL - 03.09.2012
Queria assim, a cada ves que o cara matar 1 swat ele ganha 2 mil de recopensa, ai quando ele for morto da a recompnsa ora quem matou ele, eu uso GetPlayerMoney e GivePlayerMoney
Re: Bounties -
LeLeTe - 03.09.2012
No seu GM vocк usa
IsASwat
Ou vocк usa
PlayerInfo[playerid][pTeam] == 3
Pra determinar quem й swat?
Re: Bounties -
s4kuL - 03.09.2012
SetPlayerTeam(playerid,TEAM_SWATS);
Team[playerid] = TEAM_SWATS;
XD
Respuesta: Bounties -
ipsBruno - 03.09.2012
Topo GM:
pawn Код:
new recompensas[MAX_PLAYERS];
Em
OnPlayerDeath
pawn Код:
if ( Team[playerid] == TEAM_SWATS && killerid != INVALID_PLAYER_ ID) {
SendClientMessage(killerid, -1, "Vocк matou um membro da SWAT");
GivePlayerMoney(killerid, 2000); // tira essa linha se voce nao quer dar dinheiro ppara quem mata SWAT
recompensas[killerid] += 2000 ; // aumenta a cabeзa do cara que matou para + 2000
}
else if(recompensas[playerid] && killerid != INVALID_PLAYER_ ID) { // caso for alguem que tenha recompensa
SendClientMessage(killerid, -1, "Vocк matou um membro com recompensa");
GivePlayerMoney(killerid, recompensas[playerid]); // dar a grana de recompensa
recompensas[playerid] = 0; // tira o premio, pois ele morreu
}
Em OnPlayerConnect:
pawn Код:
recompensas[playerid] = 0;