Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #define DIALOG_DUEL 24245
- new
- bool:InvitedDuel[MAX_PLAYERS],
- IdDuel[MAX_PLAYERS],
- wep1[MAX_PLAYERS],
- wep2[MAX_PLAYERS],
- bool:UsingArena,
- Counting = 5,
- CountDueling[5][5] ={"~r~1","~b~2","~p~3","~y~4","~g~5"}
- ;
- forward ExecuteCount(playerid,pid);
- public ExecuteCount(playerid,pid)
- {
- if (Counting > 0)
- {
- GameTextForPlayer(playerid,CountDueling[Counting-1], 2500, 3);
- GameTextForPlayer(pid,CountDueling[Counting-1], 1000, 3);
- Counting--;
- SetTimerEx("GoDuel",1000,false,"ii",playerid,pid);
- }
- else
- {
- GameTextForPlayer(playerid,"~>~~g~Go~w~Go~r~Go~b~Go~<~", 2500, 3);
- GameTextForPlayer(pid,"~>~~g~Go~w~Go~r~Go~b~Go~<~", 2500, 3);
- Counting = 5;
- TogglePlayerControllable(playerid,true);
- TogglePlayerControllable(pid,true);
- }
- return true;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new cmd[128],idx;
- cmd = strtok(cmdtext, idx);
- if(!strcmp("/duel", cmd, true))
- {
- new id,tmp[3][80],w1,w2,string[128];
- tmp[0] = strtok(cmdtext, idx);
- tmp[1] = strtok(cmdtext, idx);
- tmp[2] = strtok(cmdtext, idx);
- id = strval(tmp[0]);
- w1 = strval(tmp[1]);
- w2 = strval(tmp[2]);
- if(InvitedDuel[playerid] == true)
- return SendClientMessage(playerid,0xF41917AA,"»»[DUEL]«« : Have you invited someone, wait Expire Invitation");
- if(UsingArena == true)
- return SendClientMessage(playerid,0xF41917AA,"»»[DUEL]«« : At the time the Arena is Being Used");
- if(!IsValidWeapon(w1) || !IsValidWeapon(w2))
- return SendClientMessage(playerid,0xF41917AA,"»»[DUEL]«« : Use Valids Weapons IDs");
- if(!strlen(tmp[1]) || !strlen(tmp[2]))
- return SendClientMessage(playerid,0xF41917AA,"»»[DUEL]«« : Use /duel [id] [wep1] [wep2]");
- if(!strlen(tmp[0]))
- return SendClientMessage(playerid,0xF41917AA,"»»[DUEL]«« : You must enter the ID of the player following the Way (/duel [playerid])");
- if(id == playerid)
- return SendClientMessage(playerid,0xF41917AA,"»»[DUEL]«« : You can not invite the Self");
- if(InvitedDuel[id] == true)
- return SendClientMessage(playerid,0xF41917AA,"»»[DUEL]«« : Currently the player is in a Duel, wait..");
- new name[24];
- GetPlayerName(playerid, name, sizeof(name));
- format(string, sizeof(string), "»»[DUEL]«« : %s This inviting you to a \n Duel Runing (Press Accept to Accept Duel)",name);
- ShowPlayerDialog(id,DIALOG_DUEL,DIALOG_STYLE_MSGBOX,"»»[DUEL]«« :",string,"Accept", "No");
- GameTextForPlayer(id,"~r~DUE~w~LO !", 2500, 3);
- IdDuel[id] = playerid;
- wep1[id] = w1;
- wep2[id] = w2;
- SetTimerEx("ExpireDuel",15000,false,"ii",id,playerid);
- return true;
- }
- return false;
- }
- forward GoDuel(playerid,pid,w1,w2);
- public GoDuel(playerid,pid,w1,w2)
- {
- //-> Go To X1 <-//
- //SetPlayerPos
- //SetPlayerArmor
- //SetPlayerHealth
- //-> Functions for Count x1<-//
- GivePlayerWeapon(playerid,w1,999999);
- GivePlayerWeapon(playerid,w2,999999);
- GivePlayerWeapon(pid,w1,999999);
- GivePlayerWeapon(pid,w2,999999);
- InvitedDuel[playerid] = true;
- InvitedDuel[pid] = true;
- TogglePlayerControllable(playerid,false);
- TogglePlayerControllable(pid,false);
- ExecuteCount(playerid,pid);
- return true;
- }
- forward ExpireDuel(playerid,pid);
- public ExpireDuel(playerid,pid)
- {
- if(UsingArena == false)
- {
- SendClientMessage(pid,0x1DF6F6AA,"»»[DUEL]«« : Expired challenge, He Refused");
- SendClientMessage(playerid,0x1DF6F6AA,"»»[DUEL]«« : Expired challenge, you automatically refuse");
- InvitedDuel[pid] = false;
- InvitedDuel[playerid] = false;
- IdDuel[playerid] = playerid;
- IdDuel[pid] = pid;
- }
- return true;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_DUEL)
- {
- if(!response) return ExpireDuel(playerid,IdDuel[playerid]);
- if(response)
- {
- UsingArena = true;
- new name[MAX_PLAYER_NAME], string[44];
- GetPlayerName(playerid, name, sizeof(name));
- format(string, sizeof(string), "»»[DUEL]«« : %s accepted the challenge, wait 8 seconds to go to Duel.",name);
- SendClientMessage(IdDuel[playerid],0xF6F600AA,string);
- SendClientMessage(playerid,0xF6F600AA,"»»[DUEL]«« : You accepted the Duel Wait 8 seconds to process your Data");
- SetTimerEx("GoDuel",8000,false,"ii",playerid,IdDuel[playerid],wep1[playerid],wep2[playerid]);
- }
- return true;
- }
- return true;
- }
- public OnPlayerDisconnect(playerid,reason)
- {
- if(InvitedDuel[playerid] == true)
- {
- for(new killerid; killerid < MAX_PLAYERS; killerid++) if(IsPlayerConnected(killerid) && InvitedDuel[killerid] == true)
- {
- new Float:healthkiller;
- new namekiller[24],namedeather[24],string[44];
- GetPlayerName(killerid, namekiller, 24);
- GetPlayerName(playerid, namedeather, 24);
- GetPlayerHealth(killerid,healthkiller);
- format(string, sizeof(string), "»»[DUELO]«« : %s Wins Duel of %s how %0.0f off Armour and Health",namekiller,namedeather,healthkiller);
- SendClientMessageToAll(0xF600F6AA, string);
- InvitedDuel[killerid] = false;
- InvitedDuel[playerid] = false;
- IdDuel[playerid] = playerid;
- IdDuel[killerid] = killerid;
- UsingArena = false;
- healthkiller = 0;
- SpawnPlayer(killerid);
- }
- }
- return true;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- if(InvitedDuel[killerid] == true)
- {
- new Float:healthkiller;
- new namekiller[24],namedeather[24],string[44];
- GetPlayerName(killerid, namekiller, 24);
- GetPlayerName(playerid, namedeather, 24);
- GetPlayerHealth(killerid,healthkiller);
- format(string, sizeof(string), "»»[DUELO]«« : %s Wins Duel of %s how %0.0f off Armour and Health",namekiller,namedeather,healthkiller);
- SendClientMessageToAll(0xF600F6AA, string);
- InvitedDuel[killerid] = false;
- InvitedDuel[playerid] = false;
- IdDuel[playerid] = playerid;
- IdDuel[killerid] = killerid;
- UsingArena = false;
- healthkiller = 0;
- SpawnPlayer(killerid);
- }
- return true;
- }
- IsValidWeapon(weaponid)
- {
- new badWeapon[21] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 40, 44, 45, 46};
- for(new i=0; i <20; i++)
- if (weaponid == badWeapon[i])
- return false;
- return true;
- }
- strtok(const string[], &index)
- {
- new length = strlen(string);
- while ((index < length) && (string[index] <= ' '))
- {
- index++;
- }
- new offset = index;
- new result[20];
- while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = string[index];
- index++;
- }
- result[index - offset] = EOS;
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment