Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //============================================================================//
- #include < a_samp >
- #include < sscanf2 >
- #include < zcmd >
- #include < foreach >
- //============================================================================//
- #define SCM SendClientMessage
- #define SCMALL SendClientMessageToAll
- #define COLOR_GREY 0xD4D4D4FF
- //DIALOGS DEFINE
- #define DIALOG_DUEL_WEAPON 1
- #define DIALOG_DUEL_MAP 2
- //============================================================================//
- new InDuel[MAX_PLAYERS],
- DuelInvite[MAX_PLAYERS],
- DuelAccepter[MAX_PLAYERS],
- DuelWeapon[MAX_PLAYERS],
- DuelMap[MAX_PLAYERS];
- #pragma dynamic 145000
- //============================================================================//
- stock GetName(playerid)
- {
- new szName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, szName, sizeof(szName));
- return szName;
- }
- //============================================================================//
- main(){printf("Gamemode-ul se proceseaza...");}
- forward resetDuel(playerid);
- public resetDuel(playerid)
- {
- InDuel[playerid] = 0;
- DuelInvite[playerid] = -1;
- DuelWeapon[playerid] = -1;
- DuelMap[playerid] = -1;
- DuelAccepter[playerid] = -1;
- }
- forward duelTimer(playerid);
- public duelTimer(playerid)
- {
- TogglePlayerControllable(playerid, 1);
- TogglePlayerControllable(DuelInvite[playerid], 1);
- TogglePlayerControllable(DuelInvite[playerid], 1);
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- if(InDuel[playerid] == 1)
- {
- SpawnPlayer(playerid);
- SetPlayerInterior(playerid, 0);
- GameTextForPlayer(playerid, "You have lost the duel.", 3000, 3);
- if(GetPlayerMoney(playerid) < 50000) return 1;
- else GivePlayerMoney(playerid, -50000), SCM(playerid, 0xFF7A7AAA, "You have lost the duel and $50,000.");
- resetDuel(playerid);
- }
- if(InDuel[killerid] == 1 )
- {
- SpawnPlayer(killerid);
- SetPlayerInterior(playerid, 0);
- GameTextForPlayer(killerid, "You have won the duel.", 3000, 3);
- GivePlayerMoney(killerid, 50000);
- SCM(killerid, 0x88FF7AAA, "You have won the duel and $50,000.");
- ResetPlayerWeapons(killerid);
- resetDuel(killerid);
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case DIALOG_DUEL_MAP:
- {
- if(!response) return 1;
- switch(listitem)
- {
- case 0: DuelMap[playerid] = 0;
- case 1: DuelMap[playerid] = 1;
- case 2: DuelMap[playerid] = 2;
- }
- new string[256];
- format(string, sizeof(string), "Duel-System: {FFFFFF}%s (%d) has invited you to a duel. Usage (/acceptduel <playerid>) to accept it.", GetName(playerid), playerid);
- SCM(DuelAccepter[playerid], COLOR_GREY, string);
- format(string, sizeof(string), "Duel-System: {FFFFFF}You have invited %s (%d) to a duel.", GetName(DuelAccepter[playerid]), DuelAccepter[playerid]);
- SCM(playerid, COLOR_GREY, string);
- }
- case DIALOG_DUEL_WEAPON:
- {
- if(!response) return 1;
- switch(listitem)
- {
- case 0:
- {
- DuelWeapon[playerid] = 0;
- ShowPlayerDialog(playerid, DIALOG_DUEL_MAP, DIALOG_STYLE_LIST, "Duel System [Map Select]", "Chilliad\nAmmunation Range\nWarehouse", "Select", "");
- }
- case 1:
- {
- DuelWeapon[playerid] = 1;
- ShowPlayerDialog(playerid, DIALOG_DUEL_MAP, DIALOG_STYLE_LIST, "Duel System [Map Select]", "Chilliad\nAmmunation Range\nWarehouse", "Select", "");
- }
- case 2:
- {
- DuelWeapon[playerid] = 2;
- ShowPlayerDialog(playerid, DIALOG_DUEL_MAP, DIALOG_STYLE_LIST, "Duel System [Map Select]", "Chilliad\nAmmunation Range\nWarehouse", "Select", "");
- }
- case 3:
- {
- DuelWeapon[playerid] = 3;
- ShowPlayerDialog(playerid, DIALOG_DUEL_MAP, DIALOG_STYLE_LIST, "Duel System [Map Select]", "Chilliad\nAmmunation Range\nWarehouse", "Select", "");
- }
- case 4:
- {
- DuelWeapon[playerid] = 4;
- ShowPlayerDialog(playerid, DIALOG_DUEL_MAP, DIALOG_STYLE_LIST, "Duel System [Map Select]", "Chilliad\nAmmunation Range\nWarehouse", "Select", "");
- }
- }
- }
- }
- return 1;
- }
- //Duel_System
- CMD:duel(playerid, params[])
- {
- if(InDuel[playerid] == 1) return SCM(playerid, COLOR_GREY, "Error: {FFFFFF}You are already in a duel.");
- new userid;
- if(sscanf(params, "u", userid)) return SCM(playerid, COLOR_GREY, "Usage: {FFFFFF}/duel <playerid>");
- if(userid == INVALID_PLAYER_ID) return SCM(playerid, COLOR_GREY, "Error: {FFFFFF}Player is not connected.");
- DuelInvite[userid] = playerid;
- DuelAccepter[playerid] = userid;
- if(InDuel[userid] == 1) return SCM(playerid, COLOR_GREY, "Error: {FFFFFF}Player is already in a duel.");
- ShowPlayerDialog(playerid, DIALOG_DUEL_WEAPON, DIALOG_STYLE_LIST, "Duel System [Weapon Select]", "Desert Eagle\nM4\nShotgun\nMP5\nSniper", "Select", "");
- return 1;
- }
- CMD:acceptduel(playerid, params[])
- {
- if(InDuel[playerid] == 1) return SCM(playerid, COLOR_GREY, "Error: {FFFFFF}You are already in a duel.");
- if(DuelInvite[playerid] == -1)return SCM(playerid, COLOR_GREY, "Error: {FFFFFF}You haven't been invited in a duel.");
- if(DuelInvite[playerid] != -1 && DuelInvite[playerid] == INVALID_PLAYER_ID) return SCM(playerid, COLOR_GREY, "Error: {FFFFFF}Player is not connected.");
- new userid, string[256];
- if(sscanf(params, "u", userid)) return SCM(playerid, COLOR_GREY, "Usage: {FFFFFF}/acceptduel <playerid>");
- if(userid != DuelInvite[playerid] ) return SCM(playerid, COLOR_GREY, "Error: {FFFFFF}You haven't been invited to duel by that player.");
- userid = DuelInvite[playerid];
- DuelInvite[playerid] = userid;
- format(string, sizeof(string), "Duel-System: {FFFFFF}%s (%d) has accepted the duel. You are being teleported in the arena.", GetName(playerid), playerid);
- SCM(userid, COLOR_GREY, string);
- format(string, sizeof(string), "Duel-System: {FFFFFF}You have accepted the duel from %s (%d). You are being teleported in the arena.", GetName(userid), userid);
- SCM(playerid, COLOR_GREY, string);
- TogglePlayerControllable(playerid, 0);
- TogglePlayerControllable(userid, 0);
- SetTimer("duelTimer", 4000, false);
- GameTextForPlayer(playerid, "BATTLE IS STARTING...", 3000, 3);
- GameTextForPlayer(userid, "BATTLE IS STARTING...", 3000, 3);
- switch(DuelWeapon[userid])
- {
- case 0:
- {
- GivePlayerWeapon(playerid, WEAPON_DEAGLE, 1337);
- GivePlayerWeapon(DuelInvite[playerid], WEAPON_DEAGLE, 1337);
- }
- case 1:
- {
- GivePlayerWeapon(playerid, WEAPON_M4, 1337);
- GivePlayerWeapon(DuelInvite[playerid], WEAPON_M4, 1337);
- }
- case 2:
- {
- GivePlayerWeapon(playerid, WEAPON_SHOTGUN, 1337);
- GivePlayerWeapon(DuelInvite[playerid], WEAPON_SHOTGUN, 1337);
- }
- case 3:
- {
- GivePlayerWeapon(playerid, WEAPON_MP5, 1337);
- GivePlayerWeapon(DuelInvite[playerid], WEAPON_MP5, 1337);
- }
- case 4:
- {
- GivePlayerWeapon(playerid, WEAPON_SNIPER, 1337);
- GivePlayerWeapon(DuelInvite[playerid], WEAPON_SNIPER, 1337);
- }
- }
- switch(DuelMap[userid])
- {
- case 0:
- {
- SetPlayerPos(playerid, -2319.5796, -1636.9464, 483.7679);
- SetPlayerPos(DuelInvite[playerid], -2324.5034, -1623.0521, 483.7335);
- }
- case 1:
- {
- SetPlayerInterior(playerid, 7);
- SetPlayerPos(playerid, 293.5793, -134.6942, 1004.1299);
- SetPlayerInterior(DuelInvite[playerid], 7);
- SetPlayerPos(DuelInvite[playerid], 283.1079, -134.7406, 1004.0901);
- }
- case 2:
- {
- SetPlayerPos(playerid, 1399.5500, -19.3916, 1000.9594);
- SetPlayerPos(DuelInvite[playerid], 1383.6892, -19.3346, 1000.9594);
- SetPlayerInterior(playerid, 1);
- SetPlayerInterior(DuelInvite[playerid], 1);
- }
- }
- InDuel[playerid] = 1;
- InDuel[userid] = 1;
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement