Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <zcmd>
- #include <sscanf2>
- #include <fixes2>
- #define SCM SendClientMessage
- #define dueldialog 242
- #define DuelPlace1 3577.6873,1696.7938,278.7320 //Change this to ur duel location
- #define DuelPlace2 3577.6873,1789.9469,278.7320 //Change this to ur duel location
- new DuelType, Bet, InDuel[MAX_PLAYERS], declinedueltimer, dueler1, dueler2, Progress, DUEL_TIMER, DuelAllowed[MAX_PLAYERS];
- new CD, CDTimer;
- public OnFilterScriptInit()
- {
- dueler2 = 0;
- dueler1 = 0;
- Progress = 0;
- DuelType = 0;
- Bet = 0;
- CreateObject(13657, 3541.7075,1721.0681,280.9664, 0.0000000,0.0000000,0.0000000, 1000); //This is the current duel place
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- InDuel[playerid] = 0;
- DuelAllowed[playerid] = 1;
- return 1;
- }
- public OnPlayerDisconnect(playerid)
- {
- if(Progress == 2)
- {
- new msg[128];
- format(msg, sizeof(msg), "{ff0000}Duel Between %s(%d) and %s(%d) Has Ended. Reason: Time UP!", GetName(dueler1), dueler1, GetName(dueler2), dueler2);
- SendClientMessageToAll(-1, msg);
- Progress =0;
- }
- return 1;
- }
- stock GiveDuelWeapons(Type)
- {
- if(Type == 0)
- {
- GivePlayerWeapon(dueler1, 26, 15000);
- GivePlayerWeapon(dueler2, 26, 15000);
- }
- if(Type == 1)
- {
- GivePlayerWeapon(dueler1, 24, 15000);
- GivePlayerWeapon(dueler2, 24, 15000);
- }
- if(Type == 2)
- {
- GivePlayerWeapon(dueler1, 32, 15000);
- GivePlayerWeapon(dueler2, 32, 15000);
- }
- if(Type == 3)
- {
- GivePlayerWeapon(dueler1, 31, 15000);
- GivePlayerWeapon(dueler2, 31, 15000);
- }
- if(Type == 4)
- {
- GivePlayerWeapon(dueler1, 30, 15000);
- GivePlayerWeapon(dueler2, 30, 15000);
- }
- if(Type == 5)
- {
- GivePlayerWeapon(dueler1, 22, 15000);
- GivePlayerWeapon(dueler2, 22, 15000);
- }
- if(Type == 6)
- {
- GivePlayerWeapon(dueler1, 32, 15000);
- GivePlayerWeapon(dueler1, 26, 15000);
- GivePlayerWeapon(dueler1, 24, 15000);
- GivePlayerWeapon(dueler2, 32, 15000);
- GivePlayerWeapon(dueler2, 26, 15000);
- GivePlayerWeapon(dueler2, 24, 15000);
- }
- if(Type == 7)
- {
- GivePlayerWeapon(dueler1, 31, 15000);
- GivePlayerWeapon(dueler1, 24, 15000);
- GivePlayerWeapon(dueler2, 24, 15000);
- GivePlayerWeapon(dueler2, 31, 15000);
- }
- if(Type == 8)
- {
- GivePlayerWeapon(dueler1, 34, 15000);
- GivePlayerWeapon(dueler1, 31, 15000);
- GivePlayerWeapon(dueler2, 31, 15000);
- GivePlayerWeapon(dueler2, 34, 15000);
- }
- return 1;
- }
- stock GetName(playerid)
- {
- new Name[24];
- GetPlayerName(playerid, Name, sizeof(Name));
- return Name;
- }
- CMD:duel(playerid, params[])
- {
- new target, duelbet;
- if(sscanf(params, "ui", target, duelbet)) return SendClientMessage(playerid, -1,"{ff0000}Error: {ffffff}Correct usage: /duel [PlayerID] [bet]");
- if(DuelAllowed[target] == 0) return SCM(playerid, -1, "{ff0000}Error: {ffffff}That Player Has His Duel Invitations OFF");
- if(Progress == 2) return SCM(playerid, -1, "{ff0000}Error: {ffffff}Duel Is In Progress");
- if(Progress == 1) return SCM(playerid, -1, "{ff0000}Error: {ffffff}Someone Is Inviting Someone else To A Duel, Please Wait..");
- if(!IsPlayerConnected(target)) return SCM(playerid, -1, "{ff0000}Error: {ffffff}That Player Is Not Connected");
- if(GetPlayerMoney(playerid) < duelbet && duelbet != 0) return SCM(playerid, -1, "{ff0000}Error: {ffffff}You don't have that much money");
- if(GetPlayerMoney(target) < duelbet && duelbet != 0) return SCM(playerid, -1, "{ff0000}Error: {ffffff}That player doesn't have that much amount of money!");
- if(duelbet < 0) return SCM(playerid, -1, "{ff0000}Error: {ffffff}Bet Range: $0-250000");
- if(duelbet > 250000) return SCM(playerid, -1, "{ff0000}Error: {ffffff}Bet Range: $0-250000");
- if(target == playerid) return SCM(playerid, -1, "{ff0000}Error: {ffffff}You cannot duel yourself");
- dueler2 = target;
- dueler1 = playerid;
- Bet = duelbet;
- Progress = 1;
- ShowPlayerDialog(playerid, dueldialog + 1, DIALOG_STYLE_LIST, "{00ff2a}Duel Weapons:", "{0affea}Sawn-off Shotgun\n{0affea}Desert Eagle\n{0affea}TEC-9\n{0affea}M4\n{0affea}Ak47\n{0affea}Colt-45 / 9mm\n{0affea}Sawn-off Shotgun + TEC-9 + Deagle\n{0affea}M4 + Deagle\n{0affea}Sniper + M4", "Choose", "Cancel");
- return 1;
- }
- CMD:toggleduels(playerid, params[])
- {
- if(DuelAllowed[playerid] == 0)
- {
- SCM(playerid, -1, "{00ff2a}You've allowed duel invitations");
- DuelAllowed[playerid] = 1;
- }
- else
- {
- SCM(playerid, -1, "{FF0000}You've DisAllowed duel invitations");
- DuelAllowed[playerid] = 0;
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case dueldialog +1:
- {
- if(!response) return Progress = 0;
- DuelType = listitem;
- DuelOffered();
- }
- case dueldialog +2:
- {
- if(!response) return DuelDeclined();
- SetPlayerPos(dueler1, DuelPlace1);
- SetPlayerFacingAngle(dueler1, 4.5954);
- SetCameraBehindPlayer(dueler1);
- SetPlayerPos(dueler2, DuelPlace2);
- SetPlayerFacingAngle(dueler2, 188.0179);
- SetCameraBehindPlayer(dueler2);
- SetPlayerHealth(dueler2, 100);
- SetPlayerHealth(dueler1, 100);
- SetPlayerArmour(dueler2, 100);
- SetPlayerArmour(dueler1, 100);
- GivePlayerMoney(dueler1, -Bet);
- GivePlayerMoney(dueler2, -Bet);
- Progress = 2;
- SetPlayerVirtualWorld(dueler1, 2);
- SetPlayerVirtualWorld(dueler2, 2);
- new string[128];
- format(string, sizeof(string), "{ff0000}[DUEL] The Duel Between %s(%d) and %s(%d) Has Started. (Bet: %d)", GetName(dueler1), dueler1, GetName(dueler2), dueler2, Bet);
- SendClientMessageToAll(-1, string);
- TogglePlayerControllable(dueler1, false);
- TogglePlayerControllable(dueler2, false);
- InDuel[dueler1] = 1;
- InDuel[dueler2] = 1;
- GiveDuelWeapons(DuelType);
- CD = 6;
- CDTimer = SetTimer("CountDown", 1000, 1);
- KillTimer(declinedueltimer);
- DUEL_TIMER = SetTimer("TIMEUP", 60000*3, 0);
- }
- }
- return 0;
- }
- public OnPlayerDeath(playerid, killerid)
- {
- if(InDuel[playerid] == 1 && InDuel[killerid] == 1)
- {
- GivePlayerMoney(killerid, 2*Bet);
- new Float:Health, Float:Armour, string[128];
- GetPlayerArmour(killerid, Armour);
- GetPlayerHealth(killerid, Health);
- format(string, sizeof(string), "{ff0000}[DUEL] %s(%d) Has Won The Duel From %s(%d) And Still Has %.2f Health and %.2f Armour Left", GetName(killerid), killerid, GetName(playerid), playerid, Health, Armour);
- SendClientMessageToAll(-1, string);
- SpawnPlayer(killerid);
- new str[128];
- format(str, sizeof(str), "{ff0000}[DUEL]: You've Won The Duel Against %s(%d) And Won $%d", GetName(playerid), playerid, Bet);
- SCM(killerid, -1, str);
- Progress = 0;
- InDuel[playerid] = 0;
- InDuel[killerid] = 0;
- KillTimer(DUEL_TIMER);
- }
- return 1;
- }
- forward DuelOffered();
- public DuelOffered()
- {
- new string[128], str[256];
- if(dueler2 > -10)
- {
- if(DuelType == 0) format(str, sizeof(str), "{ff0000}You Have Been Challenged To A 1v1 Duel By {00ff37}%s!\n{ff0000}This Invite Will Be Auto Cancelled In 10 Seconds.\n{ff0000}Duel Weapons: {00ff37}Sawn-off Shotgun\n{ff0000}Bet: {00ff37}$%d", GetName(dueler1), Bet);
- if(DuelType == 1) format(str, sizeof(str), "{ff0000}You Have Been Challenged To A 1v1 Duel By {00ff37}%s!\n{ff0000}This Invite Will Be Auto Cancelled In 10 Seconds.\n{ff0000}Duel Weapons: {00ff37}Desert Eagle\n{ff0000}Bet: {00ff37}$%d", GetName(dueler1), Bet);
- if(DuelType == 2) format(str, sizeof(str), "{ff0000}You Have Been Challenged To A 1v1 Duel By {00ff37}%s!\n{ff0000}This Invite Will Be Auto Cancelled In 10 Seconds.\n{ff0000}Duel Weapons: {00ff37}TEC-9\n{ff0000}Bet: {00ff37}$%d", GetName(dueler1), Bet);
- if(DuelType == 3) format(str, sizeof(str), "{ff0000}You Have Been Challenged To A 1v1 Duel By {00ff37}%s!\n{ff0000}This Invite Will Be Auto Cancelled In 10 Seconds.\n{ff0000}Duel Weapons: {00ff37}M4\n{ff0000}Bet: {00ff37}$%d", GetName(dueler1), Bet);
- if(DuelType == 4) format(str, sizeof(str), "{ff0000}You Have Been Challenged To A 1v1 Duel By {00ff37}%s!\n{ff0000}This Invite Will Be Auto Cancelled In 10 Seconds.\n{ff0000}Duel Weapons: {00ff37}Ak47\n{ff0000}Bet: {00ff37}$%d", GetName(dueler1), Bet);
- if(DuelType == 5) format(str, sizeof(str), "{ff0000}You Have Been Challenged To A 1v1 Duel By {00ff37}%s!\n{ff0000}This Invite Will Be Auto Cancelled In 10 Seconds.\n{ff0000}Duel Weapons: {00ff37}Colt 45\n{ff0000}Bet: {00ff37}$%d", GetName(dueler1), Bet);
- if(DuelType == 6) format(str, sizeof(str), "{ff0000}You Have Been Challenged To A 1v1 Duel By {00ff37}%s!\n{ff0000}This Invite Will Be Auto Cancelled In 10 Seconds.\n{ff0000}Duel Weapons: {00ff37}Sawn-off Shotgun + TEC-9 + Deagle\n{ff0000}Bet: {00ff37}$%d", GetName(dueler1), Bet);
- if(DuelType == 7) format(str, sizeof(str), "{ff0000}You Have Been Challenged To A 1v1 Duel By {00ff37}%s!\n{ff0000}This Invite Will Be Auto Cancelled In 10 Seconds.\n{ff0000}Duel Weapons: {00ff37}M4 + Deagle\n{ff0000}Bet: {00ff37}$%d", GetName(dueler1), Bet);
- if(DuelType == 8) format(str, sizeof(str), "{ff0000}You Have Been Challenged To A 1v1 Duel By {00ff37}%s!\n{ff0000}This Invite Will Be Auto Cancelled In 10 Seconds.\n{ff0000}Duel Weapons: {00ff37}Sniper + M4\n{ff0000}Bet: {00ff37}$%d", GetName(dueler1), Bet);
- }
- format(string, sizeof(string), "{ff0000}You Have Challenged %s(%d) To A 1v1 Duel!", GetName(dueler2), dueler2);
- ShowPlayerDialog(dueler2, dueldialog + 2, DIALOG_STYLE_MSGBOX, "{ff0000}DUEL CHALLENGE", str, "Accept", "Decline");
- SCM(dueler1, -1, string);
- declinedueltimer = SetTimer("DuelDeclined", 10000, 0);
- return 1;
- }
- forward DuelDeclined();
- public DuelDeclined()
- {
- new string[128];
- format(string, sizeof(string), "{ff0000}%s(%d) Have Declined Your Duel Challenge", GetName(dueler2), dueler2);
- SCM(dueler1, -1, string);
- SCM(dueler2, -1, "{ff0000}You Have Declined The Duel Challenge");
- Progress = 0;
- KillTimer(declinedueltimer);
- ShowPlayerDialog(dueler2, -1, DIALOG_STYLE_MSGBOX, "Okay", "Enough madafkka", "", "");
- return 1;
- }
- forward TIMEUP();
- public TIMEUP()
- {
- new msg[128];
- format(msg, sizeof(msg), "{ff0000}Duel Between %s(%d) and %s(%d) Has Ended. Reason: Time UP!", GetName(dueler1), dueler1, GetName(dueler2), dueler2);
- SendClientMessageToAll(-1, msg);
- Progress =0;
- SpawnPlayer(dueler1);
- SpawnPlayer(dueler2);
- ResetPlayerWeapons(dueler1);
- ResetPlayerWeapons(dueler2);
- return 1;
- }
- forward CountDown();
- public CountDown()
- {
- CD --;
- if(CD == 0)
- {
- GameTextForPlayer(dueler1, "~r~GO! GO! GO!", 2000, 3);
- GameTextForPlayer(dueler2, "~r~GO! GO! GO!", 2000, 3);
- KillTimer(CDTimer);
- TogglePlayerControllable(dueler1, true);
- TogglePlayerControllable(dueler2, true);
- PlayerPlaySound(dueler1, 1057, DuelPlace1);
- PlayerPlaySound(dueler2, 1057, DuelPlace2);
- return 1;
- }
- new msg[30];
- format(msg, sizeof(msg), "~r~%d", CD);
- GameTextForPlayer(dueler1, msg, 1000, 3);
- GameTextForPlayer(dueler2, msg, 1000, 3);
- PlayerPlaySound(dueler1, 1056, DuelPlace1);
- PlayerPlaySound(dueler2, 1056, DuelPlace2);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement