Форум Pawn.Wiki - Воплоти мечту в реальность!: помогите с error - Форум Pawn.Wiki - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Pawn ]
помогите с error

#1
Пользователь офлайн   liquidosich 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Сделал простую систему /mn, вставил свой диалог. Только почему-то выдает ошибки..

Буду благодарен + за помощь.

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new len = strlen(inputtext);

    switch(dialogid)
    {
        // Регистрация: Ввод пароля
        case 1:
        {
            if(response)
            {
                if(!len)
                {
                    ShowRegister(playerid);
                    return SCM(playerid, Color_Grey, "Вы ничего не ввели.");
                }

                if(len < 6 || len > 32)
                {
                    ShowRegister(playerid);
                    return SCM(playerid, Color_Grey, "Неверная длина пароля.");
                }

                if(CheckRusText(inputtext, len + 1))
                {
                    ShowRegister(playerid);
                    return SCM(playerid, Color_Grey, "Смените раскладку клавиатуры.");
                }

                strmid(pInfo[playerid][pPass], inputtext, 0, len, 33);
                ShowPassCheck(playerid);
            }
            else
            {
                SCM(playerid, Color_FireBrick, "Введите /q[uit]");
                Pkick(playerid);
            }
            return true;
        }

        // Проверка пароля при регистрации
        case 2:
        {
            if(!strcmp(pInfo[playerid][pPass], inputtext))
            {
                ShowEmail(playerid);
            }
            else
            {
                SCM(playerid, Color_LightRed, "Неверный пароль.");
                return Pkick(playerid);
            }
            return true;
        }

        // Ввод Email
        case 3:
        {
            if(response)
            {
                if(!len)
                {
                    ShowEmail(playerid);
                    return SCM(playerid, Color_White, "Вы ничего не ввели.");
                }

                if(len < 6 || len > 46)
                {
                    ShowEmail(playerid);
                    return SCM(playerid, Color_White, "Неверная длина Email.");
                }

                if(strfind(inputtext, "@", false) == -1 || strfind(inputtext, ".", false) == -1)
                {
                    ShowEmail(playerid);
                    return SCM(playerid, Color_White, "Неверный формат Email.");
                }

                if(CheckRusText(inputtext, len + 1))
                {
                    ShowEmail(playerid);
                    return SCM(playerid, Color_White, "Смените раскладку клавиатуры.");
                }

                strmid(pInfo[playerid][pEmail], inputtext, 0, len, 46+1);
                new year_server, month_server, day_server;

                login_check[playerid] = true;
                update_timer[playerid] = SetTimerEx("UpdateTime", 1000, false, "i", playerid);
                Freeze(playerid, 1);
                getdate(year_server, month_server, day_server);
                format(pInfo[playerid][pDateReg], 10+1, "%02d/%02d/%02d", day_server, month_server, year_server);

                pInfo[playerid][pSkin] = 1;

                static fmt_str[] = "INSERT INTO `users` (`Name`, `Pass`, `Email`, `Date Reg`, `Skin`, `Level`) VALUES ('%s', '%s', '%s', '%s', '%d', '%d')";
                new string[sizeof(fmt_str)+MAX_PLAYER_NAME*2+76];
                mysql_format(dbHandle, string, sizeof(string), fmt_str,
                    pInfo[playerid][pName], pInfo[playerid][pPass], pInfo[playerid][pEmail],
                    pInfo[playerid][pDateReg], pInfo[playerid][pSkin], pInfo[playerid][pLevel]);
                mysql_function_query(dbHandle, string, true, "GetID", "i", playerid);

                ShowSkinSelector(playerid);
                return true;
            }
        }

        case 4:
        {
            if(response)
            {
                if(isnull(inputtext))
                {
                    ShowLogin(playerid);
                    return SCM(playerid, Color_Grey, "Вы ничего не ввели.");
                }

                new query[128];
                mysql_format(dbHandle, query, sizeof(query),
                    "SELECT * FROM `users` WHERE `Name` = '%e' AND `Pass` = '%e' LIMIT 1",
                    pInfo[playerid][pName], inputtext);
                mysql_function_query(dbHandle, query, true, "PlayerLogin", "i", playerid);
            }
            else
            {
                SCM(playerid, Color_FireBrick, "Введите /q[uit]");
                Pkick(playerid);
            }
            return true;
        }

        case 5: // Ввод ID скина
        {
            if(!response) return true;

            new skinid = strval(inputtext);

            if(skinid < 1 || skinid > 311)
            {
                SCM(playerid, Color_Red, "Некорректный ID скина. Введите число от 1 до 311.");
                ShowSkinSelector(playerid);
                return true;
            }

            pInfo[playerid][pSkin] = skinid;
            SetPlayerSkin(playerid, skinid);

            SavePlayer(playerid, "Skin", pInfo[playerid][pSkin], "d");

            SpawnPlayer(playerid);
            IsPlayerLogged[playerid] = true;
            userconnect[playerid] = 1;
            login_check[playerid] = true;

			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, 0xFFFFFFFF, "Регистрация прошла успешно, добро пожаловать!");
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, 0xC41E3AFF, "[Информация] Меню по серверу доступно по команде: {FFFFFF}/mn");
			SendClientMessage(playerid, 0xC41E3AFF, "[Информация] Для просмотра информации, а также подсказок по серверу используйте: {FFFFFF}/help");
			SendClientMessage(playerid, 0xC41E3AFF, "[Помощь] Администрация Revex DM всегда готова помочь вам по команде: {FFFFFF}/report");
			SendClientMessage(playerid, -1, " "); // Пробел
			SendClientMessage(playerid, 0xFF6347FF, "[Подсказка] Вы можете сменить скин в любой момент: {FFFFFF}/setskin"); // томатный
			SendClientMessage(playerid, 0x44C15FFF, "Приятной игры на сервере Revex DeathMatch!"); // оранжево-красный (огненный)
			
			// TextDraw Welcome
			new plname[MAX_PLAYER_NAME];
			GetPlayerName(playerid, plname, sizeof(plname));

			new tmp2[64];
			format(tmp2, sizeof(tmp2), "~w~Welcome ~n~~b~%s", plname);

			GameTextForPlayer(playerid, tmp2, 5000, 1);

            Freeze(playerid, 0);
            return true;
		}
        case DIALOG_MAIN_MENU:
        {
            switch(listitem)
            {
                case 0:
                {
					SendClientMessage(playerid, Color_White, "В разработке.");
					return 1;
                }
				case 1: // Статистика персонажа
				{
					new str[512];

					format(str, sizeof(str),
					    "{FFFF00}Ник: {FFFFFF}%s\n"
					    "{FFFF00}Дата регистрации: {FFFFFF}%s\n"
					    "{FFFF00}Уровень: {FFFFFF}%d\n"
					    "{FFFF00}Деньги: {FFFFFF}%d$\n"
					    "{FFFF00}Скин: {FFFFFF}%d\n"
					    "{FFFF00}ID аккаунта: {FFFFFF}%d\n"
					    "{FFFF00}Админ: {FFFFFF}%s\n"
					    "{FFFF00}Email: {FFFFFF}%s",
					    pInfo[playerid][pName],
					    pInfo[playerid][pDateReg],
					    pInfo[playerid][pLevel],
					    pInfo[playerid][pMoney],
					    pInfo[playerid][pSkin],
					    pInfo[playerid][pID],
					    (pInfo[playerid][pAdmin] > 0) ? ("Да") : ("Нет"),
					    pInfo[playerid][pEmail]
					);
					ShowPlayerDialog(playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX,
					    "Статистика персонажа", str, "Ок", "Назад");
				return 1;
				}
                case 2: // Связь с администрацией
                {
					SendClientMessage(playerid, Color_White, "В разработке.");
					return 1;
                }
            }
        }
	}
    if (dialogid == 6 && response)
    {
		    if (listitem >= 0 && listitem < MAX_DM_ZONES)
		    {
		        if (dmZonePlayers[listitem] >= 10)
		        {
		            SendClientMessage(playerid, 0xFF4500FF, "Локация заполнена (максимум 10 игроков).");
		            return 1;
		        }

		        dmPlayerZone[playerid] = listitem;
		        dmPlayerVW[playerid] = listitem + 1000;

		        dmZonePlayers[listitem]++; // Увеличиваем счётчик

		        new rand = random(MAX_SPAWNS_PER_ZONE);
		        SetPlayerVirtualWorld(playerid, dmPlayerVW[playerid]);
		        SetPlayerPos(playerid,
		            dmLocations[listitem][rand][0],
		            dmLocations[listitem][rand][1],
		            dmLocations[listitem][rand][2]);
		        GivePlayerWeapon(playerid, 24, 9000);
		        SetPlayerHealth(playerid, 100.0);
                SetPlayerColor(playerid, 0x44c1b4FF);
                
		        SendClientMessage(playerid, 0xFF4500FF, "Вы вошли на режим DeathMatch.");
		        SendClientMessage(playerid, 0xFF4500FF, "Для смены режима введите /modes, для выхода — /exitdm.");
		        SendClientMessage(playerid, 0xFFFFFFFF, "Для информации об этом и других режимах — /modesinfo.");
		    }
		    else
		    {
		        SendClientMessage(playerid, 0xFF0000FF, "Неверный выбор локации.");
		    }
    }
    return 1;
}


CMD:mn(playerid, params[])
{
    ShowPlayerDialog(playerid, DIALOG_MAIN_MENU, DIALOG_STYLE_LIST,
        "{FF4500}Меню персонажа",
        "1. Игровые режимы\n2. Статистика персонажа\n3. Связь с администрацией",
        "Выбрать", "Закрыть");
    return 1;
}


D:\Revex DM\Mod — копия\gamemodes\revex.pwn(714 -- 716) : error 001: expected token: ",", but found "-string-"
D:\Revex DM\Mod — копия\gamemodes\revex.pwn(716) : warning 217: loose indentation
D:\Revex DM\Mod — копия\gamemodes\revex.pwn(716 -- 717) : warning 215: expression has no effect
D:\Revex DM\Mod — копия\gamemodes\revex.pwn(717) : error 001: expected token: ";", but found "-string-"
D:\Revex DM\Mod — копия\gamemodes\revex.pwn(717 -- 718) : warning 215: expression has no effect
D:\Revex DM\Mod — копия\gamemodes\revex.pwn(718) : error 001: expected token: ";", but found "-string-"
D:\Revex DM\Mod — копия\gamemodes\revex.pwn(718) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

0

#2
Пользователь офлайн   U P D O W N 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияliquidosich (21 июня 2025 - 20:21) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]

https://translate.go...n/?hl=ru&tab=TT
Думаю, что данный инструмент, придуманный человечеством Вам поможет!
0

#3
Пользователь офлайн   Saibot 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
Еще добавлю, что вот тут D:\Revex DM\Mod — копия\gamemodes\revex.pwn(714 -- 716) показывает на какой строке ошибка.

Сообщение отредактировал Saibot: 21 июня 2025 - 22:26

0

#4
Пользователь офлайн   DeimoS 

  • Evil Scripter
  • Вставить ник
  • Раскрыть информацию
Вы что, хотите, чтоб человек напрягался? Изверги! :ohmy:
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика