Рекомендованные сообщения



Не найдено.

3 posts in this topic

Всем привет.

У меня такая проблема:

При покупке гаража пишет "У Вас уже имеется гараж" , но у меня его нету. В чем проблема?

 

Вот код:

cmd:buygarage(playerid)
{

	for(new g = 0; g < TotalGarages; g++)
	{
		if(IsPlayerInRangeOfPoint(playerid, 3.0, GarageInfo[g][G_ENTER_X], GarageInfo[g][G_ENTER_Y], GarageInfo[g][G_ENTER_Z]))
		{
			if(GetMoney(playerid) < GarageInfo[g][g_PRICE])
			return SendClientMessage(playerid, COLOR_RED, "На Вашем счету недостаточно средств для покупки данного гаража");
			if(GetPlayerGarage(playerid) != -1)
			return SendClientMessage(playerid, COLOR_RED, "У Вас уже имеется гараж");
			if(GarageInfo[g][g_OWNED] != 0)
			return SendClientMessage(playerid, COLOR_RED, "Вы не можете приобрести уже купленный гараж");
			SetPVarInt(playerid, "garage_id", g);
			new garage_text[256], class_text[20];

			switch(GarageInfo[g][g_TYPE])
			{
			case 1: class_text = "Низкий";
			case 2: class_text = "Средний";
			case 3: class_text = "Высокий";
			}

			format(garage_text, sizeof garage_text, "\
			{FFFFFF}Номер гаража: \t\t\t№%d\n\
			Класс гаража: \t\t\t%s\n\
			Стоимость: \t\t\t{43C928}%d рублей\n\n\
			{FFFFFF}Для того, чтобы купить гараж, нажмите 'Купить'\n\
			Для того, чтобы отменить покупку, нажмите 'Отмена'",
			g+1, class_text, GarageInfo[g][g_PRICE]);

			ShowPlayerDialog
			(
			playerid,
			D_BUYGARAGE,
			DIALOG_STYLE_MSGBOX,
			"{31A0CC}Покупка гаража",
			garage_text,
			"Купить", "Отмена"
			)
			;
			return true;
		}
	}
	return true;
}

 

Share this post


Link to post
Share on other sites

@Лвл па, покажите тело функции GetPlayerGarage.

Share this post


Link to post
Share on other sites

Как его найти?

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • youngblaste
      By youngblaste
      Привет. Не нужно писать что команда заезженная - просто выйди с темы.
      И так, постараюсь объяснить как всё работает в этой команде
      Погнали, хлопци!:
      CMD:makeadmin(playerid, params[]){ /* Здесь начинается наша команда */ if(p_info[playerid][pAdmin] < 7) /* Идёт проверка на админку, если наш уровень администратора ниже 7 то ничего не произойдёт (можно сменить на свой уровень) */ return true; /* возвращаем 1 - или же не на ельфийском, то просто ничего не пройзойдёт и команда не продолжит работу */ new name[MAX_PLAYER_NAME], player[MAX_PLAYER_NAME], targetid, admlvl, string[250]; /* Создаем переменные для команды (targetid - кому выдавать будем админку, admlvl - это какой лвл админки будем выдавать), string - ну это стринг :D */ if(sscanf(params, "ud", targetid, admlvl)) /* Делаем проверку на правильное написание команды */ return SendClientMessage(playerid, -1, "{84cd5c}[Подсказка] {ffffff} Используйте команду: /makeadmin [id игрока] [lvl админ-прав]"); /* Если мы ввели не верно команду, то нам возвращает сообщение в чат с подсказкой как ввести команду */ GetPlayerName(playerid, name, MAX_PLAYER_NAME); /* Тут мы получаем наш ник */ GetPlayerName(targetid, player, MAX_PLAYER_NAME); /* А тут мы получаем ник игрока которому выдаем админку */ if(!IsPlayerConnected(targetid)) /* Делаем проверку на то находится ли игрок на сервере, вообще у меня в команде здесь есть проверка на Авторизован ли игрок и она вместе с проверкой на есть ли такой игрок на сервере, но увы, я убрал потому что скорее всего не у всех есть такая фича, это не очень важно но если ты хоть немного шаришь то и сам добавишь проверку */ return SendClientMessage(playerid, -1, "{c23838}[Ошибка] {ffffff} Игрок ещё не вступил в игру"); /* Возвращаем сообщение о том что игрок ещё не вступил в игру - ну вообще должно быть "Игрока с таким ID нету на сервере", но если ты решишь добавить проверку на авторизацию то это будет немного лучше */ if(admlvl < 0 || admlvl > 6) /* Делаем проверку на какой лвл мы хотим поставить игрока, то есть мы не можем выдать лвл адм ниже 0 или выше 6, меняйте на своё если так нужно))) */ return SendClientMessage(playerid, -1, "{c23838}[Ошибка] {ffffff} Увы, нельзя выдавать меньше 0 или выше 6 уровня администратора"); /* Возвращаем сообщение о том что мы не можем выдавать меньше 0 или выше 6 лвл адм */ p_info[targetid][pAdmin] = admlvl; /* И так... p_info у вас может быть разное: PlayerInfo, pInfo, PI, PlayerInformation, p_Info, P_I и т.п., pAdmin так же может быть другим, хотя обычно такое, например: Admin, PlayerAdmin, Player_Admin, Adminka и т.п. */ format(string, sizeof(string), "{b33d3d}{A} Администратор %s[%d] назначил администратором игрока %s[%d]", name, playerid, player, targetid); /* И так, тут мы форматируем string и после отпрам в админ чат))) */ AdmChat(-1, string); /* Ниже вы увидите сток с AdmChat, крч просто отправляем в адм чат */ format(string, sizeof(string), "{ffffff}Администратор %s[%d] назначил Вас администратором %d-го уровня.", name, playerid, admlvl); /* Форматируем опять стринг и потом игроку отправим */ SendClientMessage(targetid, -1, string); /* Устал описовать команду, ну да ладно... Теперь отправляем игроку string */ return true; /* Возвращаем 1, чтобы небыло еррора))) */ } /* Здесь заканчивается наша команда */ /* vk.com/youngblaste - люbлю сkpuптuнг */ А теперь сток AdmChat, добавьте возле своих стоков ну или под командой:
      stock AdmChat(color, const text[]) /* тут не буду много объяснять */ { foreach(new i: Player) if(p_info[i][pAdmin] > 0) SendClientMessage(i, color, text); /* Обычно используют для админ чата... Ну и как всегда... p_info у вас может быть разное: PlayerInfo, pInfo, PI, PlayerInformation, p_Info, P_I и т.п., pAdmin так же может быть другим, хотя обычно такое, например: Admin, PlayerAdmin, Player_Admin, Adminka и т.п. */ } Если Вы заметили какую-то ошибку, пожалуйста отпишите. Надеюсь Вам понравился этот мини-урок, ну а точнее команда /makeadmin.
      Удачи, юные скриптеры 

    • warrion4ik
      By warrion4ik
      При телепорте по метке она тепает под текстуры и приходится перетелепортироваться, как это можно исправить?
      Видео: https://youtu.be/FLjer8lfGc0