Вопросы

Добавил систему бизнесов, но когда я нажимаю "Купить" ничего не происходит, мод проверял на такой-же диалог, не нашел ничего похожего!

Поделиться сообщением


Ссылка на сообщение

25 ответов на этот вопрос

  • 0

@Timur_Top 

1 час назад, Timur_Top сказал:

мод проверял на такой-же диалог, не нашел ничего похожего!

Диалога в моде нет? 

Поделиться сообщением


Ссылка на сообщение
  • 0

@Timur_Top так значит функционал нужно писать для системы, чтобы диалог работал. Поищите еще раз, должен быть скорей всего. 

Поделиться сообщением


Ссылка на сообщение
  • 0

@DEST Он у меня FS, возможно из-за этого? Просто я пробывал его в мод закинуть, ошибки, ну и я решил обратно в FS

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@DEST с сервер лога?

Спойлер

[15:40:29]   Loading filterscript 'BusSystem.amx'...
[15:40:29] *** Streamer Plugin: Include file version (0x26105) does not match plugin version (0x291) (script might need to be recompiled with the correct include file).
[15:40:29]  
[15:40:29]  9 бизнесов загружено.
[15:40:29] *** Streamer Plugin: CreateDynamicPickup: Expecting 11 parameter(s), but found 9.
[15:40:29] *** Streamer Plugin: CreateDynamicMapIcon: Expecting 12 parameter(s), but found 9.
[15:40:29] *** Streamer Plugin: CreateDynamic3DTextLabel: Expecting 15 parameter(s), but found 13.
[15:40:29] *** Streamer Plugin: CreateDynamicPickup: Expecting 11 parameter(s), but found 9.
[15:40:29] *** Streamer Plugin: CreateDynamicMapIcon: Expecting 12 parameter(s), but found 9.
[15:40:29] *** Streamer Plugin: CreateDynamic3DTextLabel: Expecting 15 parameter(s), but found 13.
[15:40:29] *** Streamer Plugin: CreateDynamicPickup: Expecting 11 parameter(s), but found 9.
[15:40:29] *** Streamer Plugin: CreateDynamicMapIcon: Expecting 12 parameter(s), but found 9.
[15:40:29] *** Streamer Plugin: CreateDynamic3DTextLabel: Expecting 15 parameter(s), but found 13.
[15:40:29] *** Streamer Plugin: CreateDynamicPickup: Expecting 11 parameter(s), but found 9.
[15:40:29] *** Streamer Plugin: CreateDynamicMapIcon: Expecting 12 parameter(s), but found 9.
[15:40:29] *** Streamer Plugin: CreateDynamic3DTextLabel: Expecting 15 parameter(s), but found 13.
[15:40:29] *** Streamer Plugin: CreateDynamicPickup: Expecting 11 parameter(s), but found 9.
[15:40:29] *** Streamer Plugin: CreateDynamicMapIcon: Expecting 12 parameter(s), but found 9.
[15:40:29] *** Streamer Plugin: CreateDynamic3DTextLabel: Expecting 15 parameter(s), but found 13.
[15:40:29] *** Streamer Plugin: CreateDynamicPickup: Expecting 11 parameter(s), but found 9.
[15:40:29] *** Streamer Plugin: CreateDynamicMapIcon: Expecting 12 parameter(s), but found 9.
[15:40:29] *** Streamer Plugin: CreateDynamic3DTextLabel: Expecting 15 parameter(s), but found 13.
[15:40:29] *** Streamer Plugin: CreateDynamicPickup: Expecting 11 parameter(s), but found 9.
[15:40:29] *** Streamer Plugin: CreateDynamicMapIcon: Expecting 12 parameter(s), but found 9.
[15:40:29] *** Streamer Plugin: CreateDynamic3DTextLabel: Expecting 15 parameter(s), but found 13.
[15:40:29] *** Streamer Plugin: CreateDynamicPickup: Expecting 11 parameter(s), but found 9.
[15:40:29] *** Streamer Plugin: CreateDynamicMapIcon: Expecting 12 parameter(s), but found 9.
[15:40:29] *** Streamer Plugin: CreateDynamic3DTextLabel: Expecting 15 parameter(s), but found 13.
[15:40:29] *** Streamer Plugin: CreateDynamicPickup: Expecting 11 parameter(s), but found 9.
[15:40:29] *** Streamer Plugin: CreateDynamicMapIcon: Expecting 12 parameter(s), but found 9.
[15:40:29] *** Streamer Plugin: CreateDynamic3DTextLabel: Expecting 15 parameter(s), but found 13.
[15:40:29]  
[15:40:29] --------------------------------------
[15:40:29]      BusSystem успешно загружена! 
[15:40:29] --------------------------------------

[15:40:29]   Loaded 10 filterscripts.

[15:40:29]  
[15:40:29] ++++++++++++++++++++++++++++++++++++++
[15:40:29]  
[15:40:29] Server Start: 15:40 06/05/2018
[15:40:29]  
[15:40:29] ++++++++++++++++++++++++++++++++++++++
[15:40:29]  
[15:40:29]  
[15:40:29] --------------------------------------------
[15:40:29]        GangSystem успешно загружена !        
[15:40:29] --------------------------------------------
 

 

 

Ошибку Стримера исправил, в логах после нажатия "Купить" ничего не происходит.

Заметка от Cawfee , создано

Объединил сообщения.

Поделиться сообщением


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру

@Timur_Top, ну, у меня по данному поводу есть два варианта:

  1. Внутри самого мода перекрыта возможность вызова диалогов из FilterScripts. Чтобы это проверить, покажите чистую функцию OnDialogResponse из своего мода ("чистая функция" - функция без команд внутри).
  2. Какая-либо проверка внутри кода диалога мешает ему выполнять предназначенную роль. Для проверки этого найдите в моде такой код:
  3. 	if(dialogid == 8001)
        {
    		if(dialogid != dlgcont[playerid])
    		{
    			dlgcont[playerid] = -600;//не существующий ИД диалога
    			return 1;
    		}
    		dlgcont[playerid] = -600;//не существующий ИД диалога
            if(response)
    		{
    			new string[256];
    #if (FS11INS == 0)
    			if(GetPlayerMoney(playerid) < buscost[playIDbus[playerid]])//если у игрока недостаточно денег, то:
    			{
    				ShowPlayerDialog(playerid, 8000, 0, "Информация.", "{ADFF2F}У Вас недостаточно денег для покупки этого бизнеса !", "OK", "");
    				dlgcont[playerid] = 8000;
    				return 1;
    			}
    #endif
    #if (FS11INS == 1)
    			if(GetPVarInt(playerid, "PlMon") < buscost[playIDbus[playerid]])//если у игрока недостаточно денег, то:
    			{
    				ShowPlayerDialog(playerid, 8000, 0, "Информация.", "{ADFF2F}У Вас недостаточно денег для покупки этого бизнеса !", "OK", "");
    				dlgcont[playerid] = 8000;
    				return 1;
    			}
    #endif
    			new para1 = 0;
    			for(new i; i < BUS_MAX; i++)//подсчёт числа уже купленных бизнесов
    			{
    				if(buscount[i] == 1 && strcmp(RealName[playerid], busplayname[i], false) == 0) { para1++; }
    			}
    			if(para1 >= BUS_PLAY)
    			{
    				format(string, sizeof(string), "{ADFF2F вас уже есть %d бизнеса !   Что бы купить этот бизнес -\
    				\nпродайте хотя бы один из своих существующих бизнесов !", para1);
    				ShowPlayerDialog(playerid, 8000, 0, "Информация.", string, "OK", "");
    				dlgcont[playerid] = 8000;
    				return 1;
    			}
    			if(strcmp(busplayname[playIDbus[playerid]], "*** INV_PL_ID", false) != 0 && busday[playIDbus[playerid]] != 0)
    			{//если в момент покупки, покупаемый бизнес успел купить другой игрок, то:
    				SendClientMessage(playerid, 0xFF0000FF, " Этот бизнес уже принадлежит другому игроку !");
    				format(string, sizeof(string), "{ADFF2F}Название бизнеса: %s\nВладелец бизнеса: %s\nСтоимость бизнеса: %d $", busname[playIDbus[playerid]],
    				busplayname[playIDbus[playerid]], buscost[playIDbus[playerid]]);
    				ShowPlayerDialog(playerid, 8000, 0, "Информация.", string, "OK", "");
    				dlgcont[playerid] = 8000;
    				return 1;
    			}
    			strdel(busplayname[playIDbus[playerid]], 0, MAX_PLAYER_NAME);//изменение имени владельца бизнеса
    			strcat(busplayname[playIDbus[playerid]], RealName[playerid]);
    			busday[playIDbus[playerid]] = 99;//временная блокировка возможности перекупки бизнеса
    			new para2;
    #if (FS11INS == 0)
    			para2 = GetPlayerMoney(playerid);
    			GivePlayerMoney(playerid, - buscost[playIDbus[playerid]]);//списывание денег со счёта игрока
    #endif
    #if (FS11INS == 1)
    			para2 = GetPVarInt(playerid, "PlMon");
    			SetPVarInt(playerid, "PlMon", GetPVarInt(playerid, "PlMon") - buscost[playIDbus[playerid]]);//списывание денег со счёта игрока
    #endif
    			gettime(timecor[0], timecor[1]);
    			getdate(timecor[2], timecor[3], timecor[4]);
    			TimCor();//коррекция времени
    			DatCor();//коррекция даты
    			new per22;//вычисление даты окончания срока без права перекупки
    			per22 = BUS_DAY + timecor[4];
    			if(per22 > 28 && timecor[7] == 0 && timecor[3] == 2)
    			{
    				per22 = per22 - 28;
    			}
    			if(per22 > 29 && timecor[7] == 1 && timecor[3] == 2)
    			{
    				per22 = per22 - 29;
    			}
    			if(per22 > 30 && (timecor[3] == 4 || timecor[3] == 6 || timecor[3] == 9 || timecor[3] == 11))
    			{
    				per22 = per22 - 30;
    			}
    			if(per22 > 31 && (timecor[3] == 1 || timecor[3] == 3 || timecor[3] == 5 || timecor[3] == 7 || timecor[3] == 8 || timecor[3] == 10 || timecor[3] == 12))
    			{
    				per22 = per22 - 31;
    			}
    			busidplay[playIDbus[playerid]] = playerid;//даём бизнесу ИД он-лайн игрока - владельца бизнеса
    			busmoney[playIDbus[playerid]] = 0;//обнуляем счётчик минут бизнеса
    			busday[playIDbus[playerid]] = per22;//изменение даты окончания срока без права перекупки
    			new file, f[256];//записываем изменения в файл
    			format(f, 256, "bussystem/%i.ini", playIDbus[playerid]);
    			file = ini_openFile(f);
    			if(file >= 0)
    			{
    		    	ini_setString(file, "PlayName", busplayname[playIDbus[playerid]]);
    		    	ini_setInteger(file, "Day", busday[playIDbus[playerid]]);
    				ini_closeFile(file);
    			}
    			DestroyDynamicMapIcon(MapIconID[playIDbus[playerid]]);//удаляем мап-иконку бизнеса
    			printf("[BusSystem] Игрок %s [%d] купил бизнес %s [ID: %d] за %d $ .", RealName[playerid], playerid, busname[playIDbus[playerid]], playIDbus[playerid], buscost[playIDbus[playerid]]);
    			format(string, sizeof(string), " Игрок %s [%d] купил бизнес %s .", RealName[playerid], playerid, busname[playIDbus[playerid]]);
    			SendClientMessageToAll(0x00FFFFFF, string);
    			printf("[moneysys] Предыдущая сумма игрока %s [%d] : %d $", RealName[playerid], playerid, para2);
    		}
    		playIDbus[playerid] = -600;//не существующий ИД бизнеса для игрока
    		return 1;
    	} 
  4. Затем замените этот участок следующим:
  5.  	if(dialogid == 8001)
        {
    		printf("[DEBUG FS] Test1");
    		if(dialogid != dlgcont[playerid])
    		{
    			dlgcont[playerid] = -600;//не существующий ИД диалога
    			return 1;
    		}
    		printf("[DEBUG FS] Test2");
    		dlgcont[playerid] = -600;//не существующий ИД диалога
            if(response)
    		{
    			printf("[DEBUG FS] Test3");
    			new string[256];
    			#if (FS11INS == 0)
    			if(GetPlayerMoney(playerid) < buscost[playIDbus[playerid]])//если у игрока недостаточно денег, то:
    			{
    				ShowPlayerDialog(playerid, 8000, 0, "Информация.", "{ADFF2F}У Вас недостаточно денег для покупки этого бизнеса !", "OK", "");
    				dlgcont[playerid] = 8000;
    				return 1;
    			}
    			printf("[DEBUG FS] Test4.1");
    			#endif
    			printf("[DEBUG FS] Test5");
    			#if (FS11INS == 1)
    			if(GetPVarInt(playerid, "PlMon") < buscost[playIDbus[playerid]])//если у игрока недостаточно денег, то:
    			{
    				ShowPlayerDialog(playerid, 8000, 0, "Информация.", "{ADFF2F}У Вас недостаточно денег для покупки этого бизнеса !", "OK", "");
    				dlgcont[playerid] = 8000;
    				return 1;
    			}
    			printf("[DEBUG FS] Test6.1");
    			#endif
    			new para1 = 0;
    			for(new i; i < BUS_MAX; i++)//подсчёт числа уже купленных бизнесов
    			{
    				if(buscount[i] == 1 && strcmp(RealName[playerid], busplayname[i], false) == 0) { para1++; }
    			}
    			printf("[DEBUG FS] Test7");
    			if(para1 >= BUS_PLAY)
    			{
    				format(string, sizeof(string), "{ADFF2F вас уже есть %d бизнеса !   Что бы купить этот бизнес -\
    				\nпродайте хотя бы один из своих существующих бизнесов !", para1);
    				ShowPlayerDialog(playerid, 8000, 0, "Информация.", string, "OK", "");
    				dlgcont[playerid] = 8000;
    				return 1;
    			}
    			printf("[DEBUG FS] Test8");
    			if(strcmp(busplayname[playIDbus[playerid]], "*** INV_PL_ID", false) != 0 && busday[playIDbus[playerid]] != 0)
    			{//если в момент покупки, покупаемый бизнес успел купить другой игрок, то:
    				SendClientMessage(playerid, 0xFF0000FF, " Этот бизнес уже принадлежит другому игроку !");
    				format(string, sizeof(string), "{ADFF2F}Название бизнеса: %s\nВладелец бизнеса: %s\nСтоимость бизнеса: %d $", busname[playIDbus[playerid]],
    				busplayname[playIDbus[playerid]], buscost[playIDbus[playerid]]);
    				ShowPlayerDialog(playerid, 8000, 0, "Информация.", string, "OK", "");
    				dlgcont[playerid] = 8000;
    				return 1;
    			}
    			printf("[DEBUG FS] Test9");
    			strdel(busplayname[playIDbus[playerid]], 0, MAX_PLAYER_NAME);//изменение имени владельца бизнеса
    			strcat(busplayname[playIDbus[playerid]], RealName[playerid]);
    			busday[playIDbus[playerid]] = 99;//временная блокировка возможности перекупки бизнеса
    			new para2;
    			#if (FS11INS == 0)
    			para2 = GetPlayerMoney(playerid);
    			GivePlayerMoney(playerid, - buscost[playIDbus[playerid]]);//списывание денег со счёта игрока
    			#endif
    			#if (FS11INS == 1)
    			para2 = GetPVarInt(playerid, "PlMon");
    			SetPVarInt(playerid, "PlMon", GetPVarInt(playerid, "PlMon") - buscost[playIDbus[playerid]]);//списывание денег со счёта игрока
    			#endif
    			gettime(timecor[0], timecor[1]);
    			getdate(timecor[2], timecor[3], timecor[4]);
    			TimCor();//коррекция времени
    			DatCor();//коррекция даты
    			new per22;//вычисление даты окончания срока без права перекупки
    			per22 = BUS_DAY + timecor[4];
    			if(per22 > 28 && timecor[7] == 0 && timecor[3] == 2)
    			{
    				per22 = per22 - 28;
    			}
    			if(per22 > 29 && timecor[7] == 1 && timecor[3] == 2)
    			{
    				per22 = per22 - 29;
    			}
    			if(per22 > 30 && (timecor[3] == 4 || timecor[3] == 6 || timecor[3] == 9 || timecor[3] == 11))
    			{
    				per22 = per22 - 30;
    			}
    			if(per22 > 31 && (timecor[3] == 1 || timecor[3] == 3 || timecor[3] == 5 || timecor[3] == 7 || timecor[3] == 8 || timecor[3] == 10 || timecor[3] == 12))
    			{
    				per22 = per22 - 31;
    			}
    			printf("[DEBUG FS] Test10");
    			busidplay[playIDbus[playerid]] = playerid;//даём бизнесу ИД он-лайн игрока - владельца бизнеса
    			busmoney[playIDbus[playerid]] = 0;//обнуляем счётчик минут бизнеса
    			busday[playIDbus[playerid]] = per22;//изменение даты окончания срока без права перекупки
    			new file, f[256];//записываем изменения в файл
    			format(f, 256, "bussystem/%i.ini", playIDbus[playerid]);
    			file = ini_openFile(f);
    			if(file >= 0)
    			{
    		    	ini_setString(file, "PlayName", busplayname[playIDbus[playerid]]);
    		    	ini_setInteger(file, "Day", busday[playIDbus[playerid]]);
    				ini_closeFile(file);
    			}
    			printf("[DEBUG FS] Test11");
    			DestroyDynamicMapIcon(MapIconID[playIDbus[playerid]]);//удаляем мап-иконку бизнеса
    			printf("[BusSystem] Игрок %s [%d] купил бизнес %s [ID: %d] за %d $ .", RealName[playerid], playerid, busname[playIDbus[playerid]], playIDbus[playerid], buscost[playIDbus[playerid]]);
    			format(string, sizeof(string), " Игрок %s [%d] купил бизнес %s .", RealName[playerid], playerid, busname[playIDbus[playerid]]);
    			SendClientMessageToAll(0x00FFFFFF, string);
    			printf("[moneysys] Предыдущая сумма игрока %s [%d] : %d $", RealName[playerid], playerid, para2);
    			printf("[DEBUG FS] Test12");
    		}
    		playIDbus[playerid] = -600;//не существующий ИД бизнеса для игрока
    		printf("[DEBUG FS] Test13");
    		return 1;
    	}
  6. Не забудьте скомпилировать этот FS. После этого приобретайте бизнес, как это начинали делать ранее, пока не нажмете на кнопку "Купить". После нажатия показывайте здесь логи сервера.

Поделиться сообщением


Ссылка на сообщение
  • 0

@odosenok 

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	dialogcon[playerid]++;//прибавляем 1 к контрольной переменной диалогов
	new string[256], strdln[5000];
  	}
	return 0;
}

p.s. Ретурн был 1, поменял на 0, ничего не сменилось

Поделиться сообщением


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру

@Timur_Top, да, здесь должен быть 0, потому что он позволяет передавать в дальнейшем управление в FS (если диалог не был найден в моде). Еще как вариант, вот у тебя там dialogcon[playerid]++, это должно быть проверка своеобразная на перехват диалогов. Попробуйте ее временно убрать из работы.

Поделиться сообщением


Ссылка на сообщение
  • 0

@odosenok Да всё работает, проверил на моде Blank Script, ну который чистый, все покупается

Спойлер

62aH-85KY_4.jpg

 

Отредактировано пользователем Timur_Top

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Дебилойд
      От Дебилойд
      Здравствуйте!
      Мы ищем талантливого 3D-моделлера в команду нашего CRMP-проекта!
      Что нужно будет делать:
      Моделировать и адаптировать автомобили.
      Создавать и настраивать скины (модели персонажей).
      Большим плюсом будет:
      Умение создавать качественные и оптимизированные интерьеры.
      Если вы хотите стать частью нашей команды и развивать проект вместе с нами, пишите в ЛС. Ждем ваши портфолио!
    • LORDIKUS
      От LORDIKUS
      Уважаемые участники форума - всех приветствую, кто перешел в беседу моей темы обсуждения. В настоящее время у меня зарождается огромное желание и мысль создать собственный CR:MP проект, но столкнулся с единственной проблемой - с отсутствием команды людей, у которых будет искреннее желание ежедневно вкладывать свой труд на разработку проекта. Особого опыта в скриптинге, маппинге, дизайне или в моделировании у меня не имеется, поэтому такой критерий как опыт в определенной сфере для желающих вступить в команду я не рассматриваю. Так как проект не открыт и находится на начальной стадии создания, мое сотрудничество выстраивается на некоммерческой основе (без выплаты за проделанную работу и труд), однако я не собираюсь отрицать высокую ценность вложенного командой труд — труд, особенно на первой стадии разработки я рассматриваю превыше всего. После открытия проекта в зависимости от коммерции и чистой прибыли каждый участник будет получать настоящую выплату, однако это также может убить еще значительное время. Мне нужна команда, которая проявит искренний интерес в создании общего между командой CR:MP проекта, пожертвует свое время, а также вложит собственный труд благодаря заработанным навыкам. Если вас заинтересовала данная тема обсуждения, пожалуйста, свяжитесь со мной по любым возможным и удобным для вас контактам связи ниже. Спасибо всем, кто зашел в мою беседу!

      🔗 Спец. Связь:
      — DISCORD: https://discord.com/users/1452715348196589691 (перейти по ссылке и добавить в друзья) ИЛИ _shin833_ (ввести никнейм и отправить запрос дружбы)
      — VK: https://vk.com/shin833
      — TG: https://t.me/s_hin833
    • Korochansky
      От Korochansky
      Настало время объявить о скором выпуске первого релиза среды разработки под названием Spawn.

      В настоящее время программа находится на заключительных этапах доработки кода и локализации интерфейса.
      Таким образом, в течение следующей недели будет выпущена быстрая и современная среда разработки, обладающая следующими возможностями (о которых я расскажу сейчас, а о других — позже):
       
      Полнофункциональный локальный Git: 
      Индексирование, фиксации, индикаторы состояния и мягкий/жесткий сброс до любой точки сохранения одним щелчком мыши. Разрабатывайте свой игровой сервер, не боясь его сломать.
      Новички могут рассматривать это как историю кодовой базы вашего сервера (что и есть на самом деле).
       
      Чистый UTF-8 (без BOM): 
      Полный отказ от устаревшей кодировки Windows-1251 (CP1251) для абсолютной стабильности и идеальной совместимости с Git.
      Реализация поддержки CP1251 привела бы к нестабильному поведению программы и ухудшила бы пользовательский опыт.
       
      История изменений строк: Редактор выделяет измененные строки в реальном времени в полях рядом с номерами строк. Это позволяет мгновенно видеть границы изменений, внесенных с момента открытия файла.
       
      Сопоставление и выделение фигурных скобок: мгновенное выделение открывающих и закрывающих фигурных скобок для быстрой навигации по структуре кода и защиты от ошибок компиляции.
       
      Интеграция с SAMPCTL: готовая к использованию автоматизация процессов. Сборка, запуск сервера и менеджер зависимостей (управление библиотеками и плагинами) работают напрямую из интерфейса редактора.
       
      И многое другое...
       
      И самое главное: проект будет с открытым исходным кодом под лицензией GPLv3!
      Следите за новостями о выпуске в репозитории: https://github.com/daniilkorochansky/spawn
    • KodBi
      От KodBi
      шапка
      по одиночке работают
      нужны оба