Skip to content

Instantly share code, notes, and snippets.

@Zaur-Lumanov
Created December 8, 2015 15:16
Show Gist options
  • Save Zaur-Lumanov/e69eead06698a871dd9a to your computer and use it in GitHub Desktop.
Save Zaur-Lumanov/e69eead06698a871dd9a to your computer and use it in GitHub Desktop.
#define FILTERSCRIPT
#include <a_samp>
#include <zcmd>
#define EXITDLG 2775
#define SendMes(%1,%2,%3,%4) do{ format(sendmes, sizeof(sendmes), (%3),%4); SendClientMessage((%1),(%2), sendmes); } while(FALSE)
new PlayerText:Textdraw[MAX_PLAYERS][175];
new sendmes[144], playername[2][MAX_PLAYER_NAME], FALSE;
const BoxColor = 0xEF9F26FF;
new frontplayerid[MAX_PLAYERS] = -1,step[MAX_PLAYERS] = -1, inviter[MAX_PLAYERS] = -1, asend[MAX_PLAYERS], apool[MAX_PLAYERS][MAX_PLAYERS char], chXpool[MAX_PLAYERS][81 char], chOpool[MAX_PLAYERS][81 char];
//new Xscore[MAX_PLAYERS char], Oscore[MAX_PLAYERS char];
new Float:BoxPos[][] = {
{
360.444824,
391.444824,
422.444824,
453.444824,
484.444824,
515.444824,
546.444824,
577.444824,
608.444824
},
{
101.582160,
132.582160,
163.582160,
194.582160,
225.582160,
256.582160,
287.582160,
318.582160,
349.582160
}
};
public OnFilterScriptInit()
{
return true;
}
public OnPlayerConnect(playerid)
{
LoadTXD(playerid);
return true;
}
public OnPlayerDisconnect(playerid)
{
if(frontplayerid[playerid] != -1)
{
for(new i; i < 174; i++) PlayerTextDrawHide(playerid,Textdraw[playerid][i]), PlayerTextDrawHide(frontplayerid[playerid],Textdraw[frontplayerid[playerid]][i]);
ShowPlayerDialog(frontplayerid[playerid], 0, DIALOG_STYLE_MSGBOX, "Игра окончена", "Ваш соперник покинул игру.", "Выход", "");
CancelSelectTextDraw(playerid);
CancelSelectTextDraw(frontplayerid[playerid]);
inviter[playerid] = -1;
inviter[frontplayerid[playerid]] = -1;
step[playerid] = -1;
step[frontplayerid[playerid]] = -1;
frontplayerid[frontplayerid[playerid]] = -1;
frontplayerid[playerid] = -1;
}
for(new i; i < 174; i++) PlayerTextDrawDestroy(playerid, Textdraw[playerid][i]);
}
public OnPlayerCommandText(playerid, cmdtext[])
{
return true;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
SendClientMessage(playerid,-1,"odr");
printf("%i",dialogid);
if(dialogid == EXITDLG)
{
SendClientMessage(playerid,-1,"not if");
if(!response) return true;
SendClientMessage(playerid,-1,"if");
for(new i; i < 174; i++) PlayerTextDrawHide(playerid,Textdraw[playerid][i]), PlayerTextDrawHide(frontplayerid[playerid],Textdraw[frontplayerid[playerid]][i]);
/*for(new i; i < 175; i++)
{
//new ptxdid = 92 + i;
//PlayerTextDrawHide(playerid,Textdraw[playerid][ptxdid]);
PlayerTextDrawHide(playerid,Textdraw[playerid][i]);
PlayerTextDrawHide(frontplayerid[playerid],Textdraw[playerid][i]);
//PlayerTextDrawSetString(playerid, Textdraw[playerid][ptxdid], " ");
//PlayerTextDrawSetString(frontplayerid[playerid], Textdraw[playerid][ptxdid], " ");
if(i > 82) continue;
chXpool[playerid][i] = 0;
chOpool[frontplayerid[playerid]][i] = 0;
SendClientMessage(playerid,-1,"for");
}*/
CancelSelectTextDraw(playerid);
CancelSelectTextDraw(frontplayerid[playerid]);
ShowPlayerDialog(frontplayerid[playerid], 0, DIALOG_STYLE_MSGBOX, "Игра окончена", "Ваш соперник покинул игру.", "Выход", "");
inviter[playerid] = -1;
inviter[frontplayerid[playerid]] = -1;
step[playerid] = -1;
step[frontplayerid[playerid]] = -1;
frontplayerid[frontplayerid[playerid]] = -1;
frontplayerid[playerid] = -1;
}
return true;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == 16) if(frontplayerid[playerid] != -1) SelectTextDraw(playerid, 0);
return true;
}
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
SendMes(playerid,-1,"%i", step[playerid]);
if(playertextid == Textdraw[playerid][82])
{
ShowPlayerDialog(playerid, EXITDLG, DIALOG_STYLE_MSGBOX, "Выход из игры", "Вы действительно хотите выйти из игры?", "Да", "Нет");
}
else if(playertextid == Textdraw[playerid][83]) if(step[playerid] == playerid)
{
PlayerTextDrawColor(playerid, Textdraw[playerid][89], -1);
PlayerTextDrawColor(frontplayerid[playerid], Textdraw[frontplayerid[playerid]][89], -1);
PlayerTextDrawColor(playerid, Textdraw[playerid][90], 1005604607);
PlayerTextDrawColor(frontplayerid[playerid], Textdraw[frontplayerid[playerid]][90], 1005604607);
PlayerTextDrawShow(playerid, Textdraw[playerid][90]);
PlayerTextDrawShow(frontplayerid[playerid], Textdraw[frontplayerid[playerid]][90]);
PlayerTextDrawShow(playerid, Textdraw[playerid][89]);
PlayerTextDrawShow(frontplayerid[playerid], Textdraw[frontplayerid[playerid]][89]);
step[playerid] = frontplayerid[playerid];
step[frontplayerid[playerid]] = frontplayerid[playerid];
}
new ptxdid;
for(new i = 1; i<82; i++) if(playertextid == Textdraw[playerid][i])
{
if(step[playerid] == playerid)
{
ptxdid = 92 + i;
if(inviter[playerid] == playerid) {
PlayerTextDrawSetString(playerid, Textdraw[playerid][ptxdid], "X");
PlayerTextDrawSetString(frontplayerid[playerid], Textdraw[frontplayerid[playerid]][ptxdid], "X");
PlayerTextDrawColor(playerid, Textdraw[playerid][90], 1005604607);
PlayerTextDrawColor(frontplayerid[playerid], Textdraw[frontplayerid[playerid]][90], 1005604607);
PlayerTextDrawColor(playerid, Textdraw[playerid][89], -1);
PlayerTextDrawColor(frontplayerid[playerid], Textdraw[frontplayerid[playerid]][89], -1);
chXpool[playerid]{i} = 1;
}
else
{
PlayerTextDrawSetString(playerid, Textdraw[playerid][ptxdid], "O");
PlayerTextDrawSetString(frontplayerid[playerid], Textdraw[frontplayerid[playerid]][ptxdid], "O");
PlayerTextDrawColor(playerid, Textdraw[playerid][90], -1);
PlayerTextDrawColor(frontplayerid[playerid], Textdraw[frontplayerid[playerid]][90], -1);
PlayerTextDrawColor(playerid, Textdraw[playerid][89], 1005604607);
PlayerTextDrawColor(frontplayerid[playerid], Textdraw[frontplayerid[playerid]][89], 1005604607);
chOpool[frontplayerid[playerid]]{i} = 1;
}
PlayerTextDrawShow(playerid, Textdraw[playerid][89]);
PlayerTextDrawShow(frontplayerid[playerid], Textdraw[frontplayerid[playerid]][89]);
PlayerTextDrawShow(playerid, Textdraw[playerid][90]);
PlayerTextDrawShow(frontplayerid[playerid], Textdraw[frontplayerid[playerid]][90]);
PlayerTextDrawShow(playerid, Textdraw[playerid][ptxdid]);
PlayerTextDrawShow(frontplayerid[playerid], Textdraw[frontplayerid[playerid]][ptxdid]);
step[playerid] = frontplayerid[playerid];
step[frontplayerid[playerid]] = frontplayerid[playerid];
}
/* new xoidx;
for(new i; i < 10; i++)
{
for(new j; j < 10; j++)
{
if(inviter[playerid] == playerid) {
if(chXpool[playerid]{i}) Oscore{frontplayerid[playerid]}++;
}
if(chOpool[frontplayerid[playerid]]{i}) Oscore{frontplayerid[playerid]}++;
xoidx++;
}
}*/
}
return true;
}
CMD:xo(playerid, params[]){
if(!strlen(params)) return SendClientMessage(playerid, BoxColor, "Введите: \"/xo [playerid]\"");
params[1] = strval(params);
if(!IsPlayerConnected(params[1])) return SendClientMessage(playerid, BoxColor, "Игрок оффлайн.");
GetPlayerName(params[1], playername[0], MAX_PLAYER_NAME);
GetPlayerName(playerid, playername[1], MAX_PLAYER_NAME);
SendMes(playerid, BoxColor, "Вы отправили приглашение игроку %s.", playername[1]);
SendMes(params[1], BoxColor, "%s отправил Вам приглашение в игру \"Крестики и нолики\". Введите /acceptxo %i что бы начать игру.", playername[1], playerid);
asend[playerid] = params[1];
apool[params[1]][playerid] = 1;
return true;
}
CMD:acceptxo(playerid, params[])
{
if(!strlen(params)) return SendClientMessage(playerid, BoxColor, "Введите: \"/acceptxo [playerid]\"");
params[1] = strval(params);
if(apool[playerid][params[1]] && asend[params[1]] == playerid)
{
if(!IsPlayerConnected(params[1])) return SendClientMessage(playerid, BoxColor, "Игрок оффлайн.");
GetPlayerName(params[1], playername[0], MAX_PLAYER_NAME);
GetPlayerName(playerid, playername[1], MAX_PLAYER_NAME);
PlayerTextDrawSetString(params[1], Textdraw[params[1]][87], playername[0]);
PlayerTextDrawSetString(playerid, Textdraw[playerid][87], playername[0]);
PlayerTextDrawSetString(params[1], Textdraw[params[1]][88], playername[1]);
PlayerTextDrawSetString(playerid, Textdraw[playerid][88], playername[1]);
SelectTextDraw(playerid, 0);
SelectTextDraw(frontplayerid[playerid], 0);
for(new i; i < 92; i++) PlayerTextDrawShow(playerid,Textdraw[playerid][i]), PlayerTextDrawShow(params[1],Textdraw[params[1]][i]);
PlayerTextDrawHide(playerid,Textdraw[playerid][91]), PlayerTextDrawShow(params[1],Textdraw[params[1]][91]);
PlayerTextDrawHide(playerid,Textdraw[playerid][92]), PlayerTextDrawShow(params[1],Textdraw[params[1]][92]);
frontplayerid[playerid] = params[1]; // !
frontplayerid[params[1]] = playerid;
inviter[playerid] = frontplayerid[playerid];
inviter[frontplayerid[playerid]] = frontplayerid[playerid];
step[playerid] = params[1];
step[frontplayerid[playerid]] = params[1];
return true;
}
return SendClientMessage(playerid, BoxColor, "Данный игрок Вас не приглашал.");
}
LoadTXD(playerid)
{
Textdraw[playerid][0] = CreatePlayerTextDraw(playerid, 662.000488, 101.553344, "usebox");
PlayerTextDrawLetterSize(playerid, Textdraw[playerid][0], 0.000000, 30.907514);
PlayerTextDrawTextSize(playerid, Textdraw[playerid][0], 162.444519, 0.000000);
PlayerTextDrawAlignment(playerid, Textdraw[playerid][0], 1);
PlayerTextDrawColor(playerid, Textdraw[playerid][0], 0);
PlayerTextDrawUseBox(playerid, Textdraw[playerid][0], true);
PlayerTextDrawBoxColor(playerid, Textdraw[playerid][0], 102);
PlayerTextDrawSetShadow(playerid, Textdraw[playerid][0], 0);
PlayerTextDrawSetOutline(playerid, Textdraw[playerid][0], 0);
PlayerTextDrawFont(playerid, Textdraw[playerid][0], 0);
new idx = 1;
for(new i = 1; i < 10; i++)
{
for(new j = 1; j < 10; j++)
{
Textdraw[playerid][idx] = CreatePlayerTextDraw(playerid, BoxPos[0][(j-1)], BoxPos[1][(i-1)], "LD_SPAC:white");
PlayerTextDrawLetterSize(playerid, Textdraw[playerid][idx], 0.000000, 0.000000);
PlayerTextDrawTextSize(playerid, Textdraw[playerid][idx], 29.000000, 29.000000);
PlayerTextDrawAlignment(playerid, Textdraw[playerid][idx], 1);
PlayerTextDrawColor(playerid, Textdraw[playerid][idx], BoxColor);
PlayerTextDrawSetShadow(playerid, Textdraw[playerid][idx], 0);
PlayerTextDrawSetOutline(playerid, Textdraw[playerid][idx], 0);
PlayerTextDrawFont(playerid, Textdraw[playerid][idx], 4);
PlayerTextDrawSetSelectable(playerid, Textdraw[playerid][idx], true);
idx++;
}
}
Textdraw[playerid][82] = CreatePlayerTextDraw(playerid, 263.110870, 349.582160, "LD_SPAC:white");
PlayerTextDrawLetterSize(playerid, Textdraw[playerid][82], 0.000000, 0.000000);
PlayerTextDrawTextSize(playerid, Textdraw[playerid][82], 96.000030, 29.000000);
PlayerTextDrawAlignment(playerid, Textdraw[playerid][82], 1);
PlayerTextDrawColor(playerid, Textdraw[playerid][82], -263308289);
PlayerTextDrawSetShadow(playerid, Textdraw[playerid][82], 0);
PlayerTextDrawSetOutline(playerid, Textdraw[playerid][82], 0);
PlayerTextDrawFont(playerid, Textdraw[playerid][82], 4);
PlayerTextDrawSetSelectable(playerid, Textdraw[playerid][82], true);
Textdraw[playerid][83] = CreatePlayerTextDraw(playerid, 165.444168, 349.582160, "LD_SPAC:white");
PlayerTextDrawLetterSize(playerid, Textdraw[playerid][83], 0.000000, 0.000000);
PlayerTextDrawTextSize(playerid, Textdraw[playerid][83], 96.000030, 29.000000);
PlayerTextDrawAlignment(playerid, Textdraw[playerid][83], 1);
PlayerTextDrawColor(playerid, Textdraw[playerid][83], 1312551167);
PlayerTextDrawSetShadow(playerid, Textdraw[playerid][83], 0);
PlayerTextDrawSetOutline(playerid, Textdraw[playerid][83], 0);
PlayerTextDrawFont(playerid, Textdraw[playerid][83], 4);
PlayerTextDrawSetSelectable(playerid, Textdraw[playerid][83], true);
Textdraw[playerid][84] = CreatePlayerTextDraw(playerid, 281.777862, 354.417755, "Exit");
PlayerTextDrawLetterSize(playerid, Textdraw[playerid][84], 0.688220, 2.067909);
PlayerTextDrawAlignment(playerid, Textdraw[playerid][84], 1);
PlayerTextDrawColor(playerid, Textdraw[playerid][84], -1);
PlayerTextDrawSetShadow(playerid, Textdraw[playerid][84], 0);
PlayerTextDrawSetOutline(playerid, Textdraw[playerid][84], 0);
PlayerTextDrawBackgroundColor(playerid, Textdraw[playerid][84], 51);
PlayerTextDrawFont(playerid, Textdraw[playerid][84], 2);
PlayerTextDrawSetProportional(playerid, Textdraw[playerid][84], 1);
Textdraw[playerid][85] = CreatePlayerTextDraw(playerid, 184.111175, 354.422241, "Skip");
PlayerTextDrawLetterSize(playerid, Textdraw[playerid][85], 0.688220, 2.067909);
PlayerTextDrawAlignment(playerid, Textdraw[playerid][85], 1);
PlayerTextDrawColor(playerid, Textdraw[playerid][85], -1);
PlayerTextDrawSetShadow(playerid, Textdraw[playerid][85], 0);
PlayerTextDrawSetOutline(playerid, Textdraw[playerid][85], 0);
PlayerTextDrawBackgroundColor(playerid, Textdraw[playerid][85], 51);
PlayerTextDrawFont(playerid, Textdraw[playerid][85], 2);
PlayerTextDrawSetProportional(playerid, Textdraw[playerid][85], 1);
Textdraw[playerid][86] = CreatePlayerTextDraw(playerid, 170.222259, 101.048873, "Noughts_and_Crosses");
PlayerTextDrawLetterSize(playerid, Textdraw[playerid][86], 0.593110, 2.152534);
PlayerTextDrawTextSize(playerid, Textdraw[playerid][86], -17.777807, -63.715557);
PlayerTextDrawAlignment(playerid, Textdraw[playerid][86], 1);
PlayerTextDrawColor(playerid, Textdraw[playerid][86], -1);
PlayerTextDrawSetShadow(playerid, Textdraw[playerid][86], 0);
PlayerTextDrawSetOutline(playerid, Textdraw[playerid][86], 0);
PlayerTextDrawBackgroundColor(playerid, Textdraw[playerid][86], 51);
PlayerTextDrawFont(playerid, Textdraw[playerid][86], 1);
//PlayerTextDrawSetProportional(playerid, Textdraw[playerid][86], 1);
PlayerTextDrawUseBox(playerid, Textdraw[playerid][86], false);
Textdraw[playerid][87] = CreatePlayerTextDraw(playerid, 181.333251, 128.924514, "Alexandr_Rublev");
PlayerTextDrawLetterSize(playerid, Textdraw[playerid][87], 0.335777, 1.535287);
PlayerTextDrawTextSize(playerid, Textdraw[playerid][87], 273.777679, 104.035560);
PlayerTextDrawAlignment(playerid, Textdraw[playerid][87], 1);
PlayerTextDrawColor(playerid, Textdraw[playerid][87], -1);
PlayerTextDrawSetShadow(playerid, Textdraw[playerid][87], 0);
PlayerTextDrawSetOutline(playerid, Textdraw[playerid][87], 0);
PlayerTextDrawBackgroundColor(playerid, Textdraw[playerid][87], 51);
PlayerTextDrawFont(playerid, Textdraw[playerid][87], 1);
PlayerTextDrawSetProportional(playerid, Textdraw[playerid][87], 1);
Textdraw[playerid][88] = CreatePlayerTextDraw(playerid, 181.444366, 142.368927, "Zaur_Lumanov");
PlayerTextDrawLetterSize(playerid, Textdraw[playerid][88], 0.335777, 1.535287);
PlayerTextDrawTextSize(playerid, Textdraw[playerid][88], 273.777679, 104.035560);
PlayerTextDrawAlignment(playerid, Textdraw[playerid][88], 1);
PlayerTextDrawColor(playerid, Textdraw[playerid][88], -1);
PlayerTextDrawSetShadow(playerid, Textdraw[playerid][88], 0);
PlayerTextDrawSetOutline(playerid, Textdraw[playerid][88], 0);
PlayerTextDrawBackgroundColor(playerid, Textdraw[playerid][88], 51);
PlayerTextDrawFont(playerid, Textdraw[playerid][88], 1);
PlayerTextDrawSetProportional(playerid, Textdraw[playerid][88], 1);
Textdraw[playerid][89] = CreatePlayerTextDraw(playerid, 169.333358, 103.040008, ".");
PlayerTextDrawLetterSize(playerid, Textdraw[playerid][89], 1.302443, 4.895287);
PlayerTextDrawAlignment(playerid, Textdraw[playerid][89], 1);
PlayerTextDrawColor(playerid, Textdraw[playerid][89], 1005604607);
PlayerTextDrawUseBox(playerid, Textdraw[playerid][89], true);
PlayerTextDrawBoxColor(playerid, Textdraw[playerid][89], 0);
PlayerTextDrawSetShadow(playerid, Textdraw[playerid][89], 0);
PlayerTextDrawSetOutline(playerid, Textdraw[playerid][89], 0);
PlayerTextDrawBackgroundColor(playerid, Textdraw[playerid][89], 51);
PlayerTextDrawFont(playerid, Textdraw[playerid][89], 0);
PlayerTextDrawSetProportional(playerid, Textdraw[playerid][89], 1);
Textdraw[playerid][90] = CreatePlayerTextDraw(playerid, 169.444473, 116.484458, ".");
PlayerTextDrawLetterSize(playerid, Textdraw[playerid][90], 1.302443, 4.895287);
PlayerTextDrawAlignment(playerid, Textdraw[playerid][90], 1);
PlayerTextDrawColor(playerid, Textdraw[playerid][90], -1);
PlayerTextDrawUseBox(playerid, Textdraw[playerid][90], true);
PlayerTextDrawBoxColor(playerid, Textdraw[playerid][90], 0);
PlayerTextDrawSetShadow(playerid, Textdraw[playerid][90], 0);
PlayerTextDrawSetOutline(playerid, Textdraw[playerid][90], 0);
PlayerTextDrawBackgroundColor(playerid, Textdraw[playerid][90], 51);
PlayerTextDrawFont(playerid, Textdraw[playerid][90], 0);
PlayerTextDrawSetProportional(playerid, Textdraw[playerid][90], 1);
Textdraw[playerid][91] = CreatePlayerTextDraw(playerid, 238.666763, 299.164215, "YOU");
PlayerTextDrawLetterSize(playerid, Textdraw[playerid][91], 0.553999, 2.500977);
PlayerTextDrawAlignment(playerid, Textdraw[playerid][91], 2);
PlayerTextDrawColor(playerid, Textdraw[playerid][91], -1);
PlayerTextDrawSetShadow(playerid, Textdraw[playerid][91], 0);
PlayerTextDrawSetOutline(playerid, Textdraw[playerid][91], 0);
PlayerTextDrawBackgroundColor(playerid, Textdraw[playerid][91], 51);
PlayerTextDrawFont(playerid, Textdraw[playerid][91], 2);
PlayerTextDrawSetProportional(playerid, Textdraw[playerid][91], 1);
Textdraw[playerid][92] = CreatePlayerTextDraw(playerid, 266.666687, 299.662139, "");
PlayerTextDrawLetterSize(playerid, Textdraw[playerid][92], 0.633111, 2.431288);
PlayerTextDrawAlignment(playerid, Textdraw[playerid][92], 1);
PlayerTextDrawColor(playerid, Textdraw[playerid][92], -263308289);
PlayerTextDrawSetShadow(playerid, Textdraw[playerid][92], 0);
PlayerTextDrawSetOutline(playerid, Textdraw[playerid][92], 0);
PlayerTextDrawBackgroundColor(playerid, Textdraw[playerid][92], 51);
PlayerTextDrawFont(playerid, Textdraw[playerid][92], 2);
PlayerTextDrawSetProportional(playerid, Textdraw[playerid][92], 1);
idx = 1;
for(new i = 1; i < 10; i++)
{
for(new j = 1; j < 10; j++)
{
Textdraw[playerid][92 + idx] = CreatePlayerTextDraw(playerid, 336.20000+30.9*float(j), 76.019981+30.8*(i), " ");
PlayerTextDrawLetterSize(playerid, Textdraw[playerid][92 + idx], 0.613555, 2.003199);
PlayerTextDrawAlignment(playerid, Textdraw[playerid][92 + idx], 1);
PlayerTextDrawColor(playerid, Textdraw[playerid][92 + idx], -1);
PlayerTextDrawSetShadow(playerid, Textdraw[playerid][92 + idx], 0);
PlayerTextDrawSetOutline(playerid, Textdraw[playerid][92 + idx], 0);
PlayerTextDrawBackgroundColor(playerid, Textdraw[playerid][92 + idx], 51);
PlayerTextDrawFont(playerid, Textdraw[playerid][92 + idx], 2);
PlayerTextDrawSetProportional(playerid, Textdraw[playerid][92 + idx], 1);
idx++;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment