Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*VISITE NOSSO SITE: http://www.sampknd.com/
- VISITE NOSSO FACEBOOK: http://www.facebook.com/SampKnd
- SAMP KND MELHOR BLOG DE SAMP DO BRASIL
- */
- #include <a_samp> // SA-MP TEAM
- #include <zcmd> // Zeex.
- #include <sscanf2> // Y_Less
- #include <DOF2> // Double-O-Seven
- #define Arma GivePlayerWeapon(playerid, 24, 9999);
- #define Arma2 GivePlayerWeapon(playerid, 29, 9999);
- /* Copie a define a cima, e mude o ID das armas, e o nome da define.
- > Exemplo:
- #define NOMEDEFINE GivePlayerWeapon(playerid, IDARMA, MUNIÇÃO);
- */
- #define rBox1 5452 // Cuidado conflitos.
- #define rAviso 5453 // Cuidado conflitos.
- #define rInfod 5454 // Cuidado conflitos.
- #define rDuelos "pDuelos/%s.ini" // Pasta
- #define pDinheiro 12000 // Premio em Dinheiro.
- #define pScore 10 // Premio em Score.
- new
- pDuelo,
- bool:eDuelo[MAX_PLAYERS],
- pConvidou,
- Desafiado,
- String[200],
- String2[200],
- TempoSpawn[MAX_PLAYERS],
- peDuelos[MAX_PLAYERS],
- reDuelos[MAX_PLAYERS],
- acDuelos[MAX_PLAYERS],
- emDuelos[MAX_PLAYERS],
- wDuelos[MAX_PLAYERS],
- lDuelos[MAX_PLAYERS],
- Minutos,
- Segundos,
- TempoMinutos,
- Text:TempoRestante,
- Text:dMinutos
- ;
- public OnFilterScriptInit()
- {
- print("\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
- print("[rDuelSystem] - Sistema de Duelo @Riichard");
- print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n");
- // Minutos
- dMinutos = TextDrawCreate(143.000000, 363.000000, "03:00");
- TextDrawBackgroundColor(dMinutos, 255);
- TextDrawFont(dMinutos, 3);
- TextDrawBoxColor(dMinutos, 255);
- TextDrawColor(dMinutos, -1178809089);
- TextDrawSetOutline(dMinutos, 1);
- TextDrawUseBox(dMinutos, 0);
- TextDrawLetterSize(dMinutos, 0.539999, 1.400000);
- // Tempo Restante
- TempoRestante = TextDrawCreate(139.000000, 353.000000, "Tempo Restante:");
- TextDrawBackgroundColor(TempoRestante, 255);
- TextDrawFont(TempoRestante, 1);
- TextDrawBoxColor(TempoRestante, 255);
- TextDrawColor(TempoRestante, -16776961);
- TextDrawSetOutline(TempoRestante, 1);
- TextDrawSetProportional(TempoRestante, 1);
- TextDrawSetShadow(TempoRestante, 1);
- TextDrawAlignment(TempoRestante, 0);
- TextDrawUseBox(TempoRestante, 0);
- TextDrawLetterSize(TempoRestante, 0.230000, 0.900000);
- return 1;
- }
- public OnFilterScriptExit()
- {
- for (new r = 0; r != MAX_PLAYERS; r++)
- {
- if(IsPlayerConnected(r))
- {
- dSalvar(r);
- }
- }
- DOF2_Exit();
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == rBox1)
- {
- if(response)
- {
- Segundos = 60;
- Minutos = 2;
- KillTimer(TempoSpawn[pConvidou]);
- pDuelo += 1;
- acDuelos[playerid] += 1;
- TogglePlayerControllable(pConvidou, true);
- eDuelo[playerid] = true;
- SetPlayerPos(playerid, 1412.639892, -1.787510, 1000.924377);
- ResetPlayerWeapons(playerid);
- SetPlayerTeam(playerid, 255);
- SetPlayerArmour(playerid, 100);
- SetPlayerInterior(playerid, 1);
- SetPlayerHealth(playerid, 100);
- format(String,sizeof(String), "[INFO] O jogador %s, aceitou o x1 de, %s.", rNome(playerid), rNome(pConvidou));
- SendClientMessageToAll(0xFFFF00AA, String);
- TempoMinutos = SetTimer("MinutosDuelo", 1000, true);
- TextDrawShowForPlayer(playerid, TempoRestante);
- TextDrawShowForPlayer(pConvidou, TempoRestante);
- TextDrawShowForPlayer(playerid, dMinutos);
- TextDrawShowForPlayer(pConvidou, dMinutos);
- Arma
- Arma2
- /* Se for colocar outras armas, coloque aqui o nome da define:
- > Exemplo:
- Arma3
- */
- }
- if(!response)
- {
- format(String,sizeof(String), "[NOOB] O arregão %s, recusou o x1 de, %s.", rNome(playerid), rNome(pConvidou));
- SendClientMessageToAll(0xFFFF00AA, String);
- TogglePlayerControllable(pConvidou, true);
- pDuelo -= 1;
- reDuelos[playerid] += 1;
- eDuelo[pConvidou] = false;
- SpawnPlayer(pConvidou);
- KillTimer(TempoSpawn[pConvidou]);
- }
- }
- return 0;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- if(eDuelo[killerid] == true || eDuelo[playerid] == true)
- {
- eDuelo[playerid] = false;
- eDuelo[killerid] = false;
- wDuelos[killerid] += 1;
- lDuelos[playerid] += 1;
- GivePlayerMoney(killerid, pDinheiro);
- SetPlayerScore(killerid, GetPlayerScore(killerid) +pScore);
- GameTextForPlayer(killerid, "~w~P~g~~h~arabens voce venceu~w~.", 2000, 3);
- format(String,sizeof(String), "[INFO - X1] {6495ED}%s{FFFFFF} venceu o jogador {6495ED}%s{FFFFFF} no x1. [{6495ED}Prêmio: R$%d + %d Score{FFFFFF}]", rNome(killerid), rNome(playerid), pDinheiro, pScore);
- SendClientMessageToAll(0xFFFFFFAA, String);
- SendClientMessage(killerid, -1 , "[INFO] Aguarde 5 segundos para ser spawnado...");
- SetTimerEx("SpawnDuelo", 5000, false, "d", killerid);
- TextDrawHideForPlayer(playerid, TempoRestante);
- TextDrawHideForPlayer(killerid, TempoRestante);
- TextDrawHideForPlayer(playerid, dMinutos);
- TextDrawHideForPlayer(killerid, dMinutos);
- KillTimer(TempoMinutos);
- }
- return 0;
- }
- public OnPlayerConnect(playerid)
- {
- eDuelo[playerid] = false;
- peDuelos[playerid] = 0;
- reDuelos[playerid] = 0;
- acDuelos[playerid] = 0;
- emDuelos[playerid] = 0;
- wDuelos[playerid] = 0;
- lDuelos[playerid] = 0;
- new Arq[50];
- format(Arq, sizeof(Arq), rDuelos, rNome(playerid));
- if (DOF2_FileExists(Arq))
- {
- dCarregar(playerid);
- SendClientMessage(playerid, 0x00BFFFAA, "[INFO] As informações de duelos foram carregadas.");
- SendClientMessage(playerid, 0x00BFFFAA, "[DICA] Digite '/dinfo' para ver suas informações.");
- }else{
- dSalvar(playerid);
- }
- return 0;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- dSalvar(playerid);
- if(eDuelo[Desafiado] == true)
- {
- format(String, sizeof(String), "~> O jogador %s, se desconectou-se em um duelo.", rNome(Desafiado));
- SendClientMessageToAll(0x00BFFFAA, String);
- eDuelo[Desafiado] = false;
- pDuelo -= 1;
- KillTimer(TempoSpawn[pConvidou]);
- SpawnPlayer(pConvidou);
- KillTimer(TempoMinutos);
- }
- if(eDuelo[pConvidou] == true)
- {
- format(String, sizeof(String), "~> O jogador %s, se desconectou-se em um duelo.", rNome(pConvidou));
- SendClientMessageToAll(0x00BFFFAA, String);
- eDuelo[pConvidou] = false;
- pDuelo -= 1;
- KillTimer(TempoSpawn[pConvidou]);
- SpawnPlayer(Desafiado);
- KillTimer(TempoMinutos);
- }
- return 0;
- }
- CMD:duelo(playerid, params[]) return cmd_duelar(playerid, params);
- CMD:x1(playerid, params[]) return cmd_duelar(playerid, params);
- CMD:duelar(playerid, params[])
- {
- if(pDuelo == 2) return SendClientMessage(playerid, 0xA9A9A9AA, "[ERRO] Já contém 2 pessoas em duelo.");
- if(eDuelo[playerid] == true) return SendClientMessage(playerid, 0xA9A9A9AA, "[ERRO] Você já está no duelo.");
- if(sscanf(params, "d", Desafiado)) return SendClientMessage(playerid, 0xFFA500AA, "~> /Duelar [playerid]");
- if(!IsPlayerConnected(Desafiado)) return SendClientMessage(playerid, 0xA9A9A9AA, "[ERRO] Jogador offline.");
- if(eDuelo[Desafiado] == true) return SendClientMessage(playerid, 0xA9A9A9AA, "[ERRO] Este jogador já está em um duelo.");
- if(Desafiado == playerid) return SendClientMessage(playerid, 0xA9A9A9AA, "[ERRO] Você não pode duelar você mesmo.");
- format(String, sizeof(String), "~> Você convidou o jogador %s para duelar.", rNome(Desafiado));
- SendClientMessage(playerid, 0x00BFFFAA, String);
- pConvidou = playerid;
- SetPlayerPos(playerid, 1412.639892, -1.787510, 1000.924377);
- SetPlayerInterior(playerid, 1);
- TogglePlayerControllable(playerid, false);
- eDuelo[playerid] = true;
- pDuelo += 1;
- ResetPlayerWeapons(playerid);
- SetPlayerTeam(playerid, 255);
- SetPlayerArmour(playerid, 100);
- SetPlayerHealth(playerid, 100);
- Arma
- Arma2
- /* Se for colocar outras armas, coloque aqui o nome da define:
- > Exemplo:
- Arma3
- */
- GameTextForPlayer(playerid,"~w~A~b~~h~guardando Resposta~w~...",2000,3);
- format(String2,sizeof(String2), "{B9BCCC}- Você foi convidado pelo jogador {6495ED}%s{B9BCCC} para um desafio(x1).\n\n - * {6495ED}[Prêmio: R$%d + %d Score]{B9BCCC} *\n\n - Você aceita?", rNome(playerid), pDinheiro, pScore);
- ShowPlayerDialog(Desafiado, rBox1, DIALOG_STYLE_MSGBOX, "[rDuelSystem] > Você foi desafiado.", String2, "Sim", "Não");
- TempoSpawn[playerid] = SetTimerEx("AguardandoResposta", 10000, false, "d", playerid);
- SendClientMessage(playerid, 0xA9A9A9AA, "[AVISO] Se ele não aceitar o convite em 10 segundos, você é spawnado.");
- peDuelos[Desafiado] += 1;
- return 1;
- }
- CMD:dinfo(playerid)
- {
- SendClientMessage(playerid, 0x00BFFFAA, "|________________ Duelo Info ________________|");
- format(String, sizeof(String), "× Duelos Pedidos: {6495ED}%d", peDuelos[playerid]);
- SendClientMessage(playerid, 0xB9BCCCAA, String);
- format(String, sizeof(String), "× Duelos Recusados: {6495ED}%d", reDuelos[playerid]);
- SendClientMessage(playerid, 0xB9BCCCAA, String);
- format(String, sizeof(String), "× Duelos Aceitos: {6495ED}%d", acDuelos[playerid]);
- SendClientMessage(playerid, 0xB9BCCCAA, String);
- format(String, sizeof(String), "× Duelos Empatados: {6495ED}%d", emDuelos[playerid]);
- SendClientMessage(playerid, 0xB9BCCCAA, String);
- format(String, sizeof(String), "× Duelos Vencidos: {6495ED}%d", wDuelos[playerid]);
- SendClientMessage(playerid, 0xB9BCCCAA, String);
- format(String, sizeof(String), "× Duelos Perdidos: {6495ED}%d", lDuelos[playerid]);
- SendClientMessage(playerid, 0xB9BCCCAA, String);
- SendClientMessage(playerid, 0x00BFFFAA, "[INFO] Ao se desconectar, as informações são salvas automaticamente.");
- return 1;
- }
- forward AguardandoResposta(playerid);
- public AguardandoResposta(playerid)
- {
- SpawnPlayer(playerid);
- KillTimer(TempoSpawn[playerid]);
- SetPlayerInterior(playerid, 0);
- format(String, sizeof(String), "[NOOB] O arregão %s, recusou o x1 de, %s.", rNome(Desafiado), rNome(playerid));
- SendClientMessageToAll(0xFFFF00AA, String);
- TogglePlayerControllable(playerid, true);
- pDuelo -= 1;
- eDuelo[playerid] = false;
- reDuelos[Desafiado] += 1;
- format(String2, sizeof(String2), "{B9BCCC}>>{FF0000} Se passou 10 segundos{B9BCCC}.\n\n{B9BCCC}> Você não aceitou o pedido de duelo do jogador %s.\n\n>> {FF0000}Noob{B9BCCC}.", rNome(playerid));
- ShowPlayerDialog(Desafiado, rAviso, DIALOG_STYLE_MSGBOX, "[rDuelSystem] > AVISO", String2, "Fechar", "");
- return 1;
- }
- forward SpawnDuelo(playerid);
- public SpawnDuelo(playerid)
- {
- SpawnPlayer(playerid);
- pDuelo = 0;
- SendClientMessage(playerid, -1, "[rDuelSystem] Spawnado.");
- return 1;
- }
- forward MinutosDuelo();
- public MinutosDuelo()
- {
- if(pDuelo > 0)
- {
- Segundos -= 1;
- if(Segundos == 0)
- {
- Minutos -= 1;
- Segundos = 59;
- }
- if(Minutos == 0 && Segundos == 0)
- {
- SpawnPlayer(pConvidou);
- SpawnPlayer(Desafiado);
- pDuelo = 0;
- eDuelo[Desafiado] = false;
- eDuelo[pConvidou] = false;
- TextDrawHideForPlayer(pConvidou, TempoRestante);
- TextDrawHideForPlayer(Desafiado, TempoRestante);
- TextDrawHideForPlayer(pConvidou, dMinutos);
- TextDrawHideForPlayer(Desafiado, dMinutos);
- emDuelos[Desafiado] += 1;
- emDuelos[pConvidou] += 1;
- KillTimer(TempoMinutos);
- SendClientMessageToAll(0x00BFFFAA, "[INFO] Se passarou 3 minutos no duelo, e ninguém venceu.");
- }
- if(Segundos <= 9)
- {
- format(String2, sizeof(String2), "0%d:0%d", Minutos, Segundos);
- TextDrawSetString(dMinutos, String2);
- // Para colocar o 0 na frente quando estiver a baixo 9 segundos.
- }
- if(Segundos >= 10)
- {
- format(String2, sizeof(String2), "0%d:%d", Minutos, Segundos);
- TextDrawSetString(dMinutos, String2);
- // Para retirar o 0 quando não estiver a baixo 9 segundos.
- }
- }
- return 1;
- }
- stock rNome(playerid)
- {
- new rnome[MAX_PLAYER_NAME];
- GetPlayerName(playerid, rnome, MAX_PLAYER_NAME);
- return rnome;
- }
- stock dSalvar(playerid)
- {
- new Arq[50];
- format(Arq, sizeof(Arq), rDuelos, rNome(playerid));
- if (DOF2_FileExists(Arq))
- {
- DOF2_SetInt(Arq, "Pedidos de Duelo", peDuelos[playerid]);
- DOF2_SetInt(Arq, "Duelos Recusados", reDuelos[playerid]);
- DOF2_SetInt(Arq, "Duelos Aceitos", acDuelos[playerid]);
- DOF2_SetInt(Arq, "Duelos Empatados", emDuelos[playerid]);
- DOF2_SetInt(Arq, "Duelos Vencidos", wDuelos[playerid]);
- DOF2_SetInt(Arq, "Duelos Perdidos", lDuelos[playerid]);
- DOF2_SaveFile();
- }else{
- DOF2_CreateFile(Arq);
- DOF2_SetInt(Arq, "Pedidos de Duelo", peDuelos[playerid]);
- DOF2_SetInt(Arq, "Duelos Recusados", reDuelos[playerid]);
- DOF2_SetInt(Arq, "Duelos Aceitos", acDuelos[playerid]);
- DOF2_SetInt(Arq, "Duelos Empatados", emDuelos[playerid]);
- DOF2_SetInt(Arq, "Duelos Vencidos", wDuelos[playerid]);
- DOF2_SetInt(Arq, "Duelos Perdidos", lDuelos[playerid]);
- DOF2_SaveFile();
- }
- return 1;
- }
- stock dCarregar(playerid)
- {
- new Arq[50];
- format(Arq, sizeof(Arq), rDuelos, rNome(playerid));
- if (DOF2_FileExists(Arq))
- {
- peDuelos[playerid] = DOF2_GetInt(Arq, "Pedidos de Duelo");
- reDuelos[playerid] = DOF2_GetInt(Arq, "Duelos Recusados");
- acDuelos[playerid] = DOF2_GetInt(Arq, "Duelos Aceitos");
- emDuelos[playerid] = DOF2_GetInt(Arq, "Duelos Empatados");
- wDuelos[playerid] = DOF2_GetInt(Arq, "Duelos Vencidos");
- lDuelos[playerid] = DOF2_GetInt(Arq, "Duelos Perdidos");
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement