Доступ к архиву

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

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

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

[Warning] 213 - tag mismatch

Статус
В этой теме нельзя размещать новые ответы.
Я решил создать админ пароль и при компилировании ошибка:

Код:
C:\Users\Артем\Desktop\Разработка мода\gamemodes\new.pwn(348) : warning 213: tag mismatch
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
Мой мод:

Код:
main(){}
//============================= Инклуды ========================================
#include <a_samp>
#include <a_mysql>
//============================= Данные MYSQL ===================================
#define mysql_host "localhost"
#define mysql_user "root"
#define mysql_base "newservsamp"
#define mysql_pass ""
//============================= Прочее =========================================
#define serverNmae "MySQLR34" // название
#define BASE_USERS "users" // название базы данных
#define isValidPass 30 // валидность пароля
#define getpl(%0) plname[%0]
#define send(%0,%1) SendClientMessage(%0, -1, %1)
//============================= PVars ==========================================
#define SPVI SetPVarInt
#define SPVS SetPVarString
#define SPVF SetPVarFloat
#define GPVI GetPVarInt
#define GPVS GetPVarString
#define GPVF GetPVarFloat
//============================= Стили диалогов =================================
#define ds_msg 0
#define ds_input 1
#define ds_list 2
#define ds_pass 3
#define COLOR_GREEN 0x9EC73DAA
#define COLOR_RED 0xAA3333AA
//============================= Переменные =====================================
new plname[MAX_PLAYERS][MAX_PLAYER_NAME]; // записываем ник игрока при коннекте
//============================= Enum's =========================================
enum plInfo
{
    ORM:ORMID,
    plID, // ид аккаунта
    name[MAX_PLAYER_NAME], // ник игрока
    pass[isValidPass], // пароль игрока
    level, // скин игрока
    alevel,// админ уровень
    akey,//админ пароль
}
new Pi[MAX_PLAYERS][plInfo];
//============================= Паблики ========================================
public OnGameModeInit()
{
    /* MySQL R8 */
    mysql_connect(mysql_host, mysql_user, mysql_base, mysql_pass);
    mysql_log(LOG_DEBUG);
    /* MySQL R8 */
    SetGameModeText("MySQL R8 ");
    AddPlayerClass(0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
    return 1;
}

public OnGameModeExit()
{
	return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    SetPlayerVirtualWorld(playerid, playerid), SetPlayerInterior(playerid, 0);
    SetPlayerCameraPos(playerid, 1925.9149,-841.7464,150.9362);
    SetPlayerCameraLookAt(playerid, 1595.1147,-1173.6073,167.9245);
    SetPlayerPos(playerid, 1684.9298,-1216.7500,167.5547);
    SetPlayerFacingAngle(playerid, 266.1046);
    for(new i = 0; i < 21; i++) send(playerid, "");
    return 1;
}

public OnPlayerConnect(playerid)
{
    GetPlayerName(playerid, plname[playerid], MAX_PLAYER_NAME);
    for(new plInfo:e; e < plInfo; ++e) Pi[playerid][e] = 0;  // обнуляем числа при коннекте

    GetPlayerName(playerid, Pi[playerid][name], MAX_PLAYER_NAME);
    new ORM:ormid = Pi[playerid][ORMID] = orm_create(BASE_USERS);
    orm_addvar_int(ormid, Pi[playerid][plID], "id");
    orm_addvar_string(ormid, Pi[playerid][name], MAX_PLAYER_NAME+1, "name");
    orm_addvar_string(ormid, Pi[playerid][pass], isValidPass, "pass");
    orm_addvar_int(ormid, Pi[playerid][level], "level");
    orm_addvar_int(ormid, Pi[playerid][alevel], "alevel");
    orm_addvar_int(ormid, Pi[playerid][akey], "akey");

    orm_setkey(ormid, "name"), orm_select(ormid, "onPlayerLoadUsers", "d", playerid); // загружаем все параметры с бд
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    if(GPVI(playerid, "isPlAutothed")) // если игрок авторизирован
    {
        orm_update(Pi[playerid][ORMID]); // сохраняет все параметры игрока при дисконнекте
        for(new plInfo:e; e < plInfo; ++e) Pi[playerid][e] = 0; // обнуляем числа при дисконекте
        orm_destroy(Pi[playerid][ORMID]);
    }
    return 1;
}

public OnPlayerSpawn(playerid)
{
    new str[50];
    if(!GPVI(playerid, "isPlAutothed")) return 1;
    SetPlayerScore(playerid, Pi[playerid][level]);
    SetPlayerSkin(playerid, 3), SetPlayerColor(playerid, -1);
    SetPlayerPos(playerid, 1639.0121,-2239.9082,13.4998), SetPlayerFacingAngle(playerid, 129.8660);
    SetPlayerInterior(playerid, 0), SetPlayerVirtualWorld(playerid, 0);
    format(str, 50, "{3fda07}~ Добро пожаловать в наш штат.", getpl(playerid)), send(playerid, str);
    return 1;
}


public OnPlayerDeath(playerid, killerid, reason)
{
	return 1;
}

public OnVehicleSpawn(vehicleid)
{
	return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
	return 1;
}

public OnPlayerText(playerid, text[])
{
    if(!GPVI(playerid, "isPlAutothed")) { send(playerid, "{ff6347}** Вы не авторизированы на сервере."); return 0; }
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	if (strcmp("/mycommand", cmdtext, true, 10) == 0)
	{
		return 1;
	}
	if(strcmp(cmdtext, "/mm", true) == 0)
	{
		ShowPlayerDialog(playerid,14,DIALOG_STYLE_LIST,"Меню сервера.","Моя статистика.\nМои комманды.\nАдминистрация.\nПравила сервера.\nRole Play термины.\nДонат(/donate).","Далее.","Выход.");
		return 1;
	}
	if(strcmp(cmdtext, "/alogin", true) == 0)
 	{
  		if(Pi[playerid][alevel] < 1) return SendClientMessage(playerid, COLOR_RED, "Вы не администратор.");
    	if(!GPVI(playerid, "isPlalogged"))
     	{
      		ShowPlayerDialog(playerid,18,DIALOG_STYLE_INPUT,"Админ. авторизация.","Введите ваш админ. код.","Ввод.","Выход.");
      	}
       	return 1;
 	}
	return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
	return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
	return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
	return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
	return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
	return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
	return 1;
}

public OnRconCommand(cmd[])
{
	return 1;
}

public OnPlayerRequestSpawn(playerid)
{
	return 1;
}

public OnObjectMoved(objectid)
{
	return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
	return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
	return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
	return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
	return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
	return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
	return 1;
}

public OnPlayerExitedMenu(playerid)
{
	return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
	return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
	return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
	return 1;
}

public OnPlayerUpdate(playerid)
{
    if(!GPVI(playerid, "isPlAutothed")) return 1;
    return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
	return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
	return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
	return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case 1:
        {
            if(!response) return Kick(playerid);
            if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1, ds_input, "[ Авторизация игрового аккаунта ] ", " {ffffff}Добро пожаловать на сервер "serverNmae"\n{3fda07}Аккаунт с вашин ником уже зарегистрирован!", "Далее", "Закрыть"); // ERROR_OK Аккаунт зарегистрирован
            if(!strcmp(inputtext, Pi[playerid][pass], false, isValidPass)) // спавним игрока при корректном вводе пароля
            {
                for(new i = 0; i < 40; i++) send(playerid, "");
                SPVI(playerid, "isPlAutothed", true), SpawnPlayer(playerid);
           	}
            else return ShowPlayerDialog(playerid, 1, ds_input, "[ Авторизация игрового аккаунта ] ", " {ffffff}Добро пожаловать на сервер "serverNmae"\n{3fda07}Аккаунт с вашин ником уже зарегистрирован!", "Далее", "Закрыть"); // ERROR_OK Аккаунт зарегистрирован
            return 1;
        }
        case 2:
        {
            if(!response) return Kick(playerid);
            if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, ds_input, "[ Регистрация игрового аккаунта ]", " {ffffff}Добро пожаловать на сервер "serverNmae"\n{ff6347}Аккаунт с вашим ником не зарегистрирован, \n   нажмите {3fda07}Далее {ff6347}чтобы продолжить.\n{ffffff}Введите пароль(от 1 до 30):", "Регистр.", "Закрыть"); // ERROR_NO_DATA Аккаунт в базе не найден
            onPlayerRegister(playerid, inputtext);
            return 1;
        }
    }
    if(dialogid == 14 && response)
    {
        switch(listitem)
        {
        	case 0:
        	{
      			SendClientMessage(playerid, COLOR_GREEN, "Временно не доступно.");
        	}
        	case 1:
        	{
				SendClientMessage(playerid, COLOR_GREEN, "Временно не доступно.");
         	}
         	case 2:
         	{
        		SendClientMessage(playerid, COLOR_GREEN, "Временно не доступно.");
         	}
         	case 3:
         	{
       			SendClientMessage(playerid, COLOR_GREEN, "Временно не доступно.");
         	}
         	case 4:
 			{
         		SendClientMessage(playerid, COLOR_GREEN, "Временно не доступно.");
       		}
           	case 5:
       		{
           		SendClientMessage(playerid, COLOR_GREEN, "Временно не доступно.");
           	}
		}
	}
	if(dialogid == 18)
 	{
  		if(response)
        {
        	if(!strlen(inputtext)) // этта проверка проверяет, если игрок ничего не ввел в окно, тогда действие
         	{
          		SendClientMessage(playerid, COLOR_RED, "Вы ничего не ввели!");
            	ShowPlayerDialog(playerid,18,DIALOG_STYLE_INPUT,"Админ. авторизация.","Введите ваш админ. код.","Ввод.","Выход.");
             	return 1;
       		}
			if(strval(inputtext) != akey || !response) return SendClientMessage(playerid, COLOR_RED,"Вы ввели неверный админ. код и были кикнуты!"), Kick(playerid);
			{
				SendClientMessage(playerid, COLOR_GREEN, "Вы вошли как администратор.");
        		SPVI(playerid, "isPlalogged", true);
			}
        }
        else
        {
        	Kick(playerid);
 		}
 	}
    return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
	return 1;
}
//============================= Пользовательские паблики =======================
forward onPlayerLoadUsers(playerid);
public onPlayerLoadUsers(playerid)
{
    switch(orm_errno(Pi[playerid][ORMID]))
    {
        case ERROR_OK: ShowPlayerDialog(playerid, 1, ds_input, "[ Авторизация игрового аккаунта ] ", " {ffffff}Добро пожаловать на сервер "serverNmae"\n{3fda07}Аккаунт с вашин ником уже зарегистрирован!", "Далее", "Закрыть"); // ERROR_OK Аккаунт зарегистрирован
        case ERROR_NO_DATA: ShowPlayerDialog(playerid, 2, ds_input, "[ Регистрация игрового аккаунта ]", " {ffffff}Добро пожаловать на сервер "serverNmae"\n{ff6347}Аккаунт с вашим ником не зарегистрирован, \n   нажмите {3fda07}Далее {ff6347}чтобы продолжить.\n{ffffff}Введите пароль(от 1 до 30):", "Регистр.", "Закрыть"); // ERROR_NO_DATA Аккаунт в базе не найден
    }
    orm_setkey(Pi[playerid][ORMID], "id");
    return 1;
}

forward onPlayerRegisterCallback(playerid);
public onPlayerRegisterCallback(playerid) return SPVI(playerid, "isPlAutothed", true), SpawnPlayer(playerid);
//============================= Стоки ==========================================
stock onPlayerRegister(playerid, password[])
{
    format(Pi[playerid][name], MAX_PLAYER_NAME, "%s", getpl(playerid)); // записываем ник при реестре
    format(Pi[playerid][pass], isValidPass, "%s", password);  // записываем пароль при реестре

    Pi[playerid][level] = 1;
    Pi[playerid][akey] = 180402;
    orm_insert(Pi[playerid][ORMID], "onPlayerRegisterCallback", "d", playerid);
	return 1;
}
Паблик/строка с ошибкой:

Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case 1:
        {
            if(!response) return Kick(playerid);
            if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1, ds_input, "[ Авторизация игрового аккаунта ] ", " {ffffff}Добро пожаловать на сервер "serverNmae"\n{3fda07}Аккаунт с вашин ником уже зарегистрирован!", "Далее", "Закрыть"); // ERROR_OK Аккаунт зарегистрирован
            if(!strcmp(inputtext, Pi[playerid][pass], false, isValidPass)) // спавним игрока при корректном вводе пароля
            {
                for(new i = 0; i < 40; i++) send(playerid, "");
                SPVI(playerid, "isPlAutothed", true), SpawnPlayer(playerid);
           	}
            else return ShowPlayerDialog(playerid, 1, ds_input, "[ Авторизация игрового аккаунта ] ", " {ffffff}Добро пожаловать на сервер "serverNmae"\n{3fda07}Аккаунт с вашин ником уже зарегистрирован!", "Далее", "Закрыть"); // ERROR_OK Аккаунт зарегистрирован
            return 1;
        }
        case 2:
        {
            if(!response) return Kick(playerid);
            if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, ds_input, "[ Регистрация игрового аккаунта ]", " {ffffff}Добро пожаловать на сервер "serverNmae"\n{ff6347}Аккаунт с вашим ником не зарегистрирован, \n   нажмите {3fda07}Далее {ff6347}чтобы продолжить.\n{ffffff}Введите пароль(от 1 до 30):", "Регистр.", "Закрыть"); // ERROR_NO_DATA Аккаунт в базе не найден
            onPlayerRegister(playerid, inputtext);
            return 1;
        }
    }
    if(dialogid == 14 && response)
    {
        switch(listitem)
        {
        	case 0:
        	{
      			SendClientMessage(playerid, COLOR_GREEN, "Временно не доступно.");
        	}
        	case 1:
        	{
				SendClientMessage(playerid, COLOR_GREEN, "Временно не доступно.");
         	}
         	case 2:
         	{
        		SendClientMessage(playerid, COLOR_GREEN, "Временно не доступно.");
         	}
         	case 3:
         	{
       			SendClientMessage(playerid, COLOR_GREEN, "Временно не доступно.");
         	}
         	case 4:
 			{
         		SendClientMessage(playerid, COLOR_GREEN, "Временно не доступно.");
       		}
           	case 5:
       		{
           		SendClientMessage(playerid, COLOR_GREEN, "Временно не доступно.");
           	}
		}
	}
	if(dialogid == 18)
 	{
  		if(response)
        {
        	if(!strlen(inputtext)) // этта проверка проверяет, если игрок ничего не ввел в окно, тогда действие
         	{
          		SendClientMessage(playerid, COLOR_RED, "Вы ничего не ввели!");
            	ShowPlayerDialog(playerid,18,DIALOG_STYLE_INPUT,"Админ. авторизация.","Введите ваш админ. код.","Ввод.","Выход.");
             	return 1;
       		}
			if(strval(inputtext) != akey || !response) return SendClientMessage(playerid, COLOR_RED,"Вы ввели неверный админ. код и были кикнуты!"), Kick(playerid);
			{
				SendClientMessage(playerid, COLOR_GREEN, "Вы вошли как администратор.");
        		SPVI(playerid, "isPlalogged", true);
			}
        }
        else
        {
        	Kick(playerid);
 		}
 	}
    return 1;
}

----ОШИБКА ТУТ:

if(strval(inputtext) != akey || !response) return SendClientMessage(playerid, COLOR_RED,"Вы ввели неверный админ. код и были кикнуты!"), Kick(playerid);
Помогите исправить.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу