Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Крестики-нолики 9x9 на TD

Статус
В этой теме нельзя размещать новые ответы.

#Azamat

Компетентный
Всем привет, вот вам небольшой мануал игры в крестики-нолики 9х9 на TD. Данную работу я делал для конкурса "Лучший скриптер 2015-2016"


Итак, начнем:

Добавляем инклуды:
PHP:
#include <a_samp>
#include <sscanf2>
#include <dc_cmd>
Ко всем new:
PHP:
new Text:fon;//Фон
new Text:nacdraw[81];//Квадраты
new PlayerText:Text[6];//Тексты
new PlayerText:kseldraw[81];//ТД крестика или нолика
new nacdrawpos[81][2];//Позиции для крестика или нолика
new CheckBox[MAX_PLAYERS][81];//В каких клетках отмечал игрок
new chet[MAX_PLAYERS];//Счет каждого игрока
new turn[MAX_PLAYERS];//Очередь игроков
Если делаете FS, то в public OnFilterScriptInit(), если хотите вписать в мод, то в public OnGameModeInit():
PHP:
fon = TextDrawCreate(213.082092, 106.808280, "LD_SPAC:white");
	TextDrawTextSize(fon, 217.582397, 303.508300);
	TextDrawColor(fon, 7340031);
	TextDrawFont(fon, 4);
	new tid = 0;
	for(new i=1; i < 10; i++)
	{
		for(new j=1; j < 10; j++)
		{
			    nacdraw[tid] = TextDrawCreate((j*24)+191.0, (i*28)+114.0, "LD_SPAC:white");
			    TextDrawLetterSize(nacdraw[tid], 0.000000, 0.000000);
				TextDrawTextSize(nacdraw[tid], 22.142021, 26.458320);
				TextDrawAlignment(nacdraw[tid], 1);
				TextDrawColor(nacdraw[tid], -1);
				TextDrawFont(nacdraw[tid], 4);
				TextDrawSetSelectable(nacdraw[tid], 1);
				nacdrawpos[tid][0] = ((j*24)+191)+15;
				nacdrawpos[tid][1] = (i*28)+114+4;
				tid++;
		}
	}
Добавляем команду для начала игры, она на DC_CMD:
PHP:
CMD:nac(playerid, params[])//Nought And Crosses
{
	if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, 0xB4B5B7FF, "Введите: /nac [ид игрока]");
	if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, 0xFF6347FF, "Указанный игрок не подключен!");
	new ktext[81], kname[24];
 	SetPVarInt(params[0], "nac_id", playerid);
 	SetPVarInt(playerid, "nac_id", params[0]);
	GetPlayerName(playerid, kname, sizeof kname);
	format(ktext, sizeof ktext, "Игрок {33CCFF}%s {FFFFFF}предлагает вам сыграть в крестики-нолики.", kname);
	ShowPlayerDialog(params[0], 1, DIALOG_STYLE_MSGBOX, "{33CCFF}Крестики-нолики", ktext, "Принять", "Отказаться");
	return 1;
}
В OnDialogResponse добавляем диалог. Я делал FS, и поэтому у меня тут только 1 диалог:
PHP:
switch(dialogid)
	{
	    case 1:
	    {
	        new nac_id = GetPVarInt(playerid, "nac_id");
			if(!response) return SendClientMessage(nac_id, 0xB4B5B7FF, "Игрок отказался от игры.");
			CreateTextDraws(playerid);
			CreateTextDraws(nac_id);
			turn[nac_id] = 1;
			SetPVarInt(playerid, "kto", 2);
			SetPVarInt(playerid, "nac", 1);//nac - Проверка игры
			SetPVarInt(nac_id, "nac", 1);
			SetPVarInt(playerid, "ksel", 0);//0 - нолик
			SetPVarInt(nac_id, "ksel", 1);//1- Крестик
			chet[playerid] = 0;
			chet[nac_id] = 0;
			new kname[24], dname[24];
			GetPlayerName(playerid, kname, sizeof kname);
			GetPlayerName(nac_id, dname, sizeof dname);
			PlayerTextDrawSetString(playerid, Text[1], kname);
			PlayerTextDrawSetString(playerid, Text[0], dname);
			PlayerTextDrawSetString(nac_id, Text[0], dname);
			PlayerTextDrawSetString(nac_id, Text[1], kname);
            ShowNac(playerid);
            ShowNac(nac_id);
            return 1;
		}
	}
В OnPlayerClickTextDraw:
PHP:
if(_:clickedid == INVALID_TEXT_DRAW)
	{
	    if(GetPVarInt(playerid, "nac") == 1) HideNac(playerid);
	}
	for(new nid = 0; nid < 81; nid++)
	{
	    if(clickedid == nacdraw[nid])
	    {
	        new naid = GetPVarInt(playerid, "nac_id");
	        if(turn[playerid] == 0) return SendClientMessage(playerid, 0xFF6347FF, "Не ваша очередь!");
	        if(CheckBox[playerid][nid] == 1 || CheckBox[naid][nid] == 1) return SendClientMessage(playerid, 0xFF6347FF, "Эта клетка уже отмечена!");
	        if(GetPVarInt(playerid, "ksel") == 1) ClickInBox(playerid, 1, nid);
			else ClickInBox(playerid, 0, nid);
			CheckBox[playerid][nid] = 1;
			turn[naid] = 1;
			turn[playerid] = 0;
			CheckGame(playerid);
	 	}
	}
В OnPlayerClickPlayerTextDraw:
PHP:
if(playertextid == Text[5]) HideNac(playerid);
Создаем эти стоки(6 шт):
PHP:
stock ClickInBox(playerid, kl, nid)
{
    if(kl == 1) kseldraw[nid] = CreatePlayerTextDraw(playerid, nacdrawpos[nid][0], nacdrawpos[nid][1], "X");
	else kseldraw[nid] = CreatePlayerTextDraw(playerid, nacdrawpos[nid][0], nacdrawpos[nid][1], "O");
	PlayerTextDrawLetterSize(playerid, kseldraw[nid], 0.320594, 1.733582);
    PlayerTextDrawAlignment(playerid, kseldraw[nid], 3);
	PlayerTextDrawSetProportional(playerid, kseldraw[nid], 1);
	PlayerTextDrawFont(playerid, kseldraw[nid], 2);
	PlayerTextDrawColor(playerid, kseldraw[nid], 225);
	PlayerTextDrawSetOutline(playerid, kseldraw[nid], 0);
	PlayerTextDrawSetShadow(playerid, kseldraw[nid], 0);
	PlayerTextDrawShow(playerid, kseldraw[nid]);
	return 1;
}
stock CreateTextDraws(playerid)
{
	Text[0] = CreatePlayerTextDraw(playerid, 215.8, 107.05, "Your_Nickname");
	Text[1] = CreatePlayerTextDraw(playerid, 215.8, 122.15, "Opponent_Nickname");
	Text[2] = CreatePlayerTextDraw(playerid, 428.0, 107.05, "0");
	Text[3] = CreatePlayerTextDraw(playerid, 428.0, 122.15, "0");
	Text[4] = CreatePlayerTextDraw(playerid, 215.8, 392.7, "YOUR MOVE");
	Text[5] = CreatePlayerTextDraw(playerid, 401.0, 392.7, "EXIT");
	for(new i=0; i < 6; i++)
	{
		if(i == 5) PlayerTextDrawTextSize(playerid, Text[i], 427.666229, 18.900012), PlayerTextDrawSetSelectable(playerid, Text[i], 1);
		PlayerTextDrawLetterSize(playerid, Text[i], 0.320594, 1.733582);
  		if(i == 2 || i == 3) PlayerTextDrawAlignment(playerid, Text[i], 3);
  		PlayerTextDrawSetProportional(playerid, Text[i], 1);
  		PlayerTextDrawFont(playerid, Text[i], 2);
  		PlayerTextDrawColor(playerid, Text[i], 0xFFFFFFFF);
		PlayerTextDrawSetShadow(playerid, Text[i], 0);
		PlayerTextDrawSetOutline(playerid, Text[i], 0);
	}
	return 1;
}
stock ShowNac(playerid)
{
    TextDrawShowForPlayer(playerid, fon);
    for(new f=0; f < 81; f++)
	{
    	TextDrawShowForPlayer(playerid, nacdraw[f]);
	}
 	for(new f=0; f < 6; f++)
	{
		PlayerTextDrawShow(playerid, Text[f]);
	}
	SelectTextDraw(playerid, 0xFF6347FF);
	return 1;
}
stock Win(playerid)
{
    new ch[5];
	SendClientMessage(playerid, 0xFF6347FF, "Вы победили!");
	SendClientMessage(GetPVarInt(playerid, "nac_id"), 0xFF6347FF, "Соперник выиграл этот раунд!");
	chet[playerid]++;
	valstr(ch, chet[playerid]);
	if(GetPVarInt(playerid, "kto") == 2) PlayerTextDrawSetString(playerid, Text[3], ch);
    for(new f=0; f < 81; f++)
	{
	    CheckBox[playerid][f] = 0;
	    CheckBox[GetPVarInt(playerid, "nac_id")][f] = 0;
    	PlayerTextDrawHide(playerid, kseldraw[f]);
    	PlayerTextDrawHide(GetPVarInt(playerid, "nac_id"), kseldraw[f]);
	}
	return 1;
}
stock HideNac(playerid)//скрываем ТД и обнуляем данные
{
	new naid = GetPVarInt(playerid, "nac_id");
	SendClientMessage(naid, 0xFF6347FF, "Соперник покинул игру!");
    for(new f=0; f < 81; f++)
	{
	    CheckBox[playerid][f] = 0;
	    CheckBox[naid][f] = 0;
    	TextDrawHideForPlayer(playerid, nacdraw[f]);
    	TextDrawHideForPlayer(naid, nacdraw[f]);
     	PlayerTextDrawHide(playerid, kseldraw[f]);
     	PlayerTextDrawHide(naid, kseldraw[f]);
	}
	TextDrawHideForPlayer(playerid, fon);
 	for(new f=0; f < 6; f++)
	{
		PlayerTextDrawHide(playerid, Text[f]);
		PlayerTextDrawHide(naid, Text[f]);
	}
	CancelSelectTextDraw(playerid);
	DeletePVar(playerid, "ksel");
	DeletePVar(playerid, "nac");
	DeletePVar(playerid, "kto");
	DeletePVar(naid, "ksel");
	DeletePVar(naid, "nac");
	DeletePVar(naid, "kto");
	chet[playerid] = 0;
	turn[playerid] = 0;
	chet[naid] = 0;
	turn[naid] = 0;
	return 1;
}
stock CheckGame(playerid)
{
	new count, box;
	new naid = GetPVarInt(playerid, "nac_id");
	for(new j; j < 9; j++)//10
	{
		count = 0;
	    box=j;
	    for(new k; k < 9; k++)
	    {
	        if(CheckBox[playerid][box] == 1) count++;
            else count = 0;
            if(count == 5) return Win(playerid);
            box=box+9;//
	    }
	    count = 0;
	    box=j*9;//
	    for(new k; k < 9; k++)
	    {
	        if(CheckBox[playerid][box] == 1) count++;
            else count = 0;
            if(count == 5) return Win(playerid);
            box++;
	    }
	    if(j > 4) continue;
	    count = 0;
	    box=8-j;//
	    for(new k=j; k < 9; k++)
	   	{
            if(CheckBox[playerid][box] == 1) count++;
            else count = 0;
            if(count == 5) return Win(playerid);
            box=box+8;
	   	}
	    box=j;//
	    count = 0;
		for(new k=81-j*9-9+j; k < 81-j*9; k++)
	   	{
            if(CheckBox[playerid][box] == 1) count++;
            else count = 0;
            if(count == 5) return Win(playerid);
            box=box+10;
	   	}
	   	if(j == 0) continue;
	   	box=j*9;//
	    count = 0;
		for(new k=72+j; k < 81; k++)
	   	{
            if(CheckBox[playerid][box] == 1) count++;
            else count = 0;
            if(count == 5) return Win(playerid);
            box=box+10;
	   	}
	   	if(j < 2) continue;
	    count = 0;
	    box=9*j-1;//
	    for(new k=j; k < 10; k++)
	   	{
            if(CheckBox[playerid][box] == 1) count++;
            else count = 0;
            if(count == 5) return Win(playerid);
            box=box+8;
	   	}
	}
	PlayerTextDrawSetString(naid, Text[4], "YOUR MOVE");
	PlayerTextDrawSetString(playerid, Text[4], "OPPONENT MOVE");
	PlayerTextDrawHide(playerid, Text[4]);
	PlayerTextDrawHide(naid, Text[4]);
	PlayerTextDrawShow(playerid, Text[4]);
	PlayerTextDrawShow(naid, Text[4]);
	return 1;
}
PHP:
//#Azamat
//#Azamat - 2015.12.15
#include <a_samp>
#include <sscanf2>
#include <dc_cmd>

new Text:fon;//Фон
new Text:nacdraw[81];//Квадраты
new PlayerText:Text[6];//Тексты
new PlayerText:kseldraw[81];//ТД крестика или нолика
new nacdrawpos[81][2];//Позиции для крестика или нолика
new CheckBox[MAX_PLAYERS][81];//В каких клетках отмечал игрок
new chet[MAX_PLAYERS];//Счет каждого игрока
new turn[MAX_PLAYERS];//Очередь игроков

public OnFilterScriptInit()
{
	fon = TextDrawCreate(213.082092, 106.808280, "LD_SPAC:white");
	TextDrawTextSize(fon, 217.582397, 303.508300);
	TextDrawColor(fon, 7340031);
	TextDrawFont(fon, 4);
	new tid = 0;
	for(new i=1; i < 10; i++)
	{
		for(new j=1; j < 10; j++)
		{
			    nacdraw[tid] = TextDrawCreate((j*24)+191.0, (i*28)+114.0, "LD_SPAC:white");
			    TextDrawLetterSize(nacdraw[tid], 0.000000, 0.000000);
				TextDrawTextSize(nacdraw[tid], 22.142021, 26.458320);
				TextDrawAlignment(nacdraw[tid], 1);
				TextDrawColor(nacdraw[tid], -1);
				TextDrawFont(nacdraw[tid], 4);
				TextDrawSetSelectable(nacdraw[tid], 1);
				nacdrawpos[tid][0] = ((j*24)+191)+15;
				nacdrawpos[tid][1] = (i*28)+114+4;
				tid++;
		}
	}
	return 1;
}
CMD:nac(playerid, params[])//Nought And Crosses
{
	if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, 0xB4B5B7FF, "Введите: /nac [ид игрока]");
	if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, 0xFF6347FF, "Указанный игрок не подключен!");
	new ktext[81], kname[24];
 	SetPVarInt(params[0], "nac_id", playerid);
 	SetPVarInt(playerid, "nac_id", params[0]);
	GetPlayerName(playerid, kname, sizeof kname);
	format(ktext, sizeof ktext, "Игрок {33CCFF}%s {FFFFFF}предлагает вам сыграть в крестики-нолики.", kname);
	ShowPlayerDialog(params[0], 1, DIALOG_STYLE_MSGBOX, "{33CCFF}Крестики-нолики", ktext, "Принять", "Отказаться");
	return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
	{
	    case 1:
	    {
	        new nac_id = GetPVarInt(playerid, "nac_id");
			if(!response) return SendClientMessage(nac_id, 0xB4B5B7FF, "Игрок отказался от игры.");
			CreateTextDraws(playerid);
			CreateTextDraws(nac_id);
			turn[nac_id] = 1;
			SetPVarInt(playerid, "kto", 2);
			SetPVarInt(playerid, "nac", 1);//nac - Проверка игры
			SetPVarInt(nac_id, "nac", 1);
			SetPVarInt(playerid, "ksel", 0);//0 - нолик
			SetPVarInt(nac_id, "ksel", 1);//1- Крестик
			chet[playerid] = 0;
			chet[nac_id] = 0;
			new kname[24], dname[24];
			GetPlayerName(playerid, kname, sizeof kname);
			GetPlayerName(nac_id, dname, sizeof dname);
			PlayerTextDrawSetString(playerid, Text[1], kname);
			PlayerTextDrawSetString(playerid, Text[0], dname);
			PlayerTextDrawSetString(nac_id, Text[0], dname);
			PlayerTextDrawSetString(nac_id, Text[1], kname);
            ShowNac(playerid);
            ShowNac(nac_id);
            return 1;
		}
	}
	return 1;
}

public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    if(_:clickedid == INVALID_TEXT_DRAW)
	{
	    if(GetPVarInt(playerid, "nac") == 1) HideNac(playerid);
	}
	for(new nid = 0; nid < 81; nid++)
	{
	    if(clickedid == nacdraw[nid])
	    {
	        new naid = GetPVarInt(playerid, "nac_id");
	        if(turn[playerid] == 0) return SendClientMessage(playerid, 0xFF6347FF, "Не ваша очередь!");
	        if(CheckBox[playerid][nid] == 1 || CheckBox[naid][nid] == 1) return SendClientMessage(playerid, 0xFF6347FF, "Эта клетка уже отмечена!");
	        if(GetPVarInt(playerid, "ksel") == 1) ClickInBox(playerid, 1, nid);
			else ClickInBox(playerid, 0, nid);
			CheckBox[playerid][nid] = 1;
			turn[naid] = 1;
			turn[playerid] = 0;
			CheckGame(playerid);
	 	}
	}
	return 1;
}
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
    if(playertextid == Text[5]) HideNac(playerid);
	return 1;
}
stock ClickInBox(playerid, kl, nid)
{
 	new naid = GetPVarInt(playerid, "nac_id");
    if(kl == 1) kseldraw[nid] = CreatePlayerTextDraw(playerid, nacdrawpos[nid][0], nacdrawpos[nid][1], "X"), kseldraw[nid] = CreatePlayerTextDraw(naid, nacdrawpos[nid][0], nacdrawpos[nid][1], "X");
	else kseldraw[nid] = CreatePlayerTextDraw(playerid, nacdrawpos[nid][0], nacdrawpos[nid][1], "O"), kseldraw[nid] = CreatePlayerTextDraw(naid, nacdrawpos[nid][0], nacdrawpos[nid][1], "O");
	PlayerTextDrawLetterSize(playerid, kseldraw[nid], 0.320594, 1.733582);
	PlayerTextDrawLetterSize(naid, kseldraw[nid], 0.320594, 1.733582);
    PlayerTextDrawAlignment(playerid, kseldraw[nid], 3);
    PlayerTextDrawAlignment(naid, kseldraw[nid], 3);
	PlayerTextDrawSetProportional(playerid, kseldraw[nid], 1);
	PlayerTextDrawSetProportional(naid, kseldraw[nid], 1);
	PlayerTextDrawFont(playerid, kseldraw[nid], 2);
	PlayerTextDrawFont(naid, kseldraw[nid], 2);
	PlayerTextDrawColor(playerid, kseldraw[nid], 225);
	PlayerTextDrawColor(naid, kseldraw[nid], 225);
	PlayerTextDrawSetOutline(playerid, kseldraw[nid], 0);
	PlayerTextDrawSetOutline(naid, kseldraw[nid], 0);
	PlayerTextDrawSetShadow(playerid, kseldraw[nid], 0);
	PlayerTextDrawSetShadow(naid, kseldraw[nid], 0);
	PlayerTextDrawShow(playerid, kseldraw[nid]);
	PlayerTextDrawShow(naid, kseldraw[nid]);
	return 1;
}
stock CreateTextDraws(playerid)
{
	Text[0] = CreatePlayerTextDraw(playerid, 215.8, 107.05, "Your_Nickname");
	Text[1] = CreatePlayerTextDraw(playerid, 215.8, 122.15, "Opponent_Nickname");
	Text[2] = CreatePlayerTextDraw(playerid, 428.0, 107.05, "0");
	Text[3] = CreatePlayerTextDraw(playerid, 428.0, 122.15, "0");
	Text[4] = CreatePlayerTextDraw(playerid, 215.8, 392.7, "YOUR MOVE");
	Text[5] = CreatePlayerTextDraw(playerid, 401.0, 392.7, "EXIT");
	for(new i=0; i < 6; i++)
	{
		if(i == 5) PlayerTextDrawTextSize(playerid, Text[i], 427.666229, 18.900012), PlayerTextDrawSetSelectable(playerid, Text[i], 1);
		PlayerTextDrawLetterSize(playerid, Text[i], 0.320594, 1.733582);
  		if(i == 2 || i == 3) PlayerTextDrawAlignment(playerid, Text[i], 3);
  		PlayerTextDrawSetProportional(playerid, Text[i], 1);
  		PlayerTextDrawFont(playerid, Text[i], 2);
  		PlayerTextDrawColor(playerid, Text[i], 0xFFFFFFFF);
		PlayerTextDrawSetShadow(playerid, Text[i], 0);
		PlayerTextDrawSetOutline(playerid, Text[i], 0);
	}
	return 1;
}
stock ShowNac(playerid)
{
    TextDrawShowForPlayer(playerid, fon);
    for(new f=0; f < 81; f++)
	{
    	TextDrawShowForPlayer(playerid, nacdraw[f]);
	}
 	for(new f=0; f < 6; f++)
	{
		PlayerTextDrawShow(playerid, Text[f]);
	}
	SelectTextDraw(playerid, 0xFF6347FF);
	return 1;
}
stock Win(playerid)
{
    new ch[5];
	SendClientMessage(playerid, 0xFF6347FF, "Вы победили!");
	SendClientMessage(GetPVarInt(playerid, "nac_id"), 0xFF6347FF, "Соперник выиграл этот раунд!");
	chet[playerid]++;
	valstr(ch, chet[playerid]);
	if(GetPVarInt(playerid, "kto") == 2) PlayerTextDrawSetString(playerid, Text[3], ch);
    for(new f=0; f < 81; f++)
	{
	    CheckBox[playerid][f] = 0;
	    CheckBox[GetPVarInt(playerid, "nac_id")][f] = 0;
    	PlayerTextDrawHide(playerid, kseldraw[f]);
    	PlayerTextDrawHide(GetPVarInt(playerid, "nac_id"), kseldraw[f]);
	}
	return 1;
}
stock HideNac(playerid)//скрываем ТД и обнуляем данные
{
	new naid = GetPVarInt(playerid, "nac_id");
	SendClientMessage(naid, 0xFF6347FF, "Соперник покинул игру!");
    for(new f=0; f < 81; f++)
	{
	    CheckBox[playerid][f] = 0;
	    CheckBox[naid][f] = 0;
    	TextDrawHideForPlayer(playerid, nacdraw[f]);
    	TextDrawHideForPlayer(naid, nacdraw[f]);
     	PlayerTextDrawHide(playerid, kseldraw[f]);
     	PlayerTextDrawHide(naid, kseldraw[f]);
	}
	TextDrawHideForPlayer(playerid, fon);
	TextDrawHideForPlayer(naid, fon);
 	for(new f=0; f < 6; f++)
	{
		PlayerTextDrawHide(playerid, Text[f]);
		PlayerTextDrawHide(naid, Text[f]);
	}
	CancelSelectTextDraw(playerid);
	CancelSelectTextDraw(naid);
	DeletePVar(playerid, "ksel");
	DeletePVar(playerid, "nac");
	DeletePVar(playerid, "kto");
	DeletePVar(naid, "ksel");
	DeletePVar(naid, "nac");
	DeletePVar(naid, "kto");
	chet[playerid] = 0;
	turn[playerid] = 0;
	chet[naid] = 0;
	turn[naid] = 0;
	return 1;
}
stock CheckGame(playerid)
{
	new count, box;
	new naid = GetPVarInt(playerid, "nac_id");
	for(new j; j < 9; j++)//10
	{
		count = 0;
	    box=j;
	    for(new k; k < 9; k++)
	    {
	        if(CheckBox[playerid][box] == 1) count++;
            else count = 0;
            if(count == 5) return Win(playerid);
            box=box+9;//
	    }
	    count = 0;
	    box=j*9;//
	    for(new k; k < 9; k++)
	    {
	        if(CheckBox[playerid][box] == 1) count++;
            else count = 0;
            if(count == 5) return Win(playerid);
            box++;
	    }
	    if(j > 4) continue;
	    count = 0;
	    box=8-j;//
	    for(new k=j; k < 9; k++)
	   	{
            if(CheckBox[playerid][box] == 1) count++;
            else count = 0;
            if(count == 5) return Win(playerid);
            box=box+8;
	   	}
	    box=j;//
	    count = 0;
		for(new k=81-j*9-9+j; k < 81-j*9; k++)
	   	{
            if(CheckBox[playerid][box] == 1) count++;
            else count = 0;
            if(count == 5) return Win(playerid);
            box=box+10;
	   	}
	   	if(j == 0) continue;
	   	box=j*9;//
	    count = 0;
		for(new k=72+j; k < 81; k++)
	   	{
            if(CheckBox[playerid][box] == 1) count++;
            else count = 0;
            if(count == 5) return Win(playerid);
            box=box+10;
	   	}
	   	if(j < 2) continue;
	    count = 0;
	    box=9*j-1;//
	    for(new k=j; k < 10; k++)
	   	{
            if(CheckBox[playerid][box] == 1) count++;
            else count = 0;
            if(count == 5) return Win(playerid);
            box=box+8;
	   	}
	}
	PlayerTextDrawSetString(naid, Text[4], "YOUR MOVE");
	PlayerTextDrawSetString(playerid, Text[4], "OPPONENT MOVE");
	PlayerTextDrawHide(playerid, Text[4]);
	PlayerTextDrawHide(naid, Text[4]);
	PlayerTextDrawShow(playerid, Text[4]);
	PlayerTextDrawShow(naid, Text[4]);
	return 1;
}

На этом всё.
Автор(я): #Azamat
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу