Вопросы

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

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


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

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

  • 0

@Timur_Top 

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

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

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

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


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

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

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


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

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

 

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


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

@Timur_Top в FS диалог есть? 

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


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

@Timur_Top проверьте, может быть ID диалогов совпадает, т.е. есть такой ID и в моде и в FS

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


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

@DEST Нету, проверил только что, ничего похожего.

 

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


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

@Timur_Top логи

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


Ссылка на сообщение
  • 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

@Timur_Top значит все равно версии инклудов разные, FS кстати тоже нужно компилить с новым инклудом

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


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

@DEST Да я их тоже откомпилировал, после нажатия "Купить" ничего не происходит

 

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


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

@Timur_Top значит проблема в систему, кидай код или фс

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


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

@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 То есть, мне скинуть OnDialogResponse? И да, у меня не один FS не работает, где употребляется диалоги..

 

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


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

@Timur_Top да, чистый OnDialogResponse из мода (без диалогов).

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


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

@odosenok 

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

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

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


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

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

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


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

@Timur_Top, в смысле закомментировать эту мини-систему.

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


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

@odosenok Скомпилировал, ничего, всё так же, в консоли ошибок нет 

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


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

@Timur_Top на другом моде проверяли этот FS? Лучше на чистом.

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


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

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

Спойлер

62aH-85KY_4.jpg

 

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

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


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

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

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

    • Mister Odin
      От Mister Odin
       
      new
       g_teleport_list[39][E_TELEPORT_LIST] = {  {"Спавн пгт.Батырево", 1802.3612, 2508.4824, 15.8887},  {"Спавн г.Арзамас", -113.5887, 977.7222, 12.0346},     {"Спавн г.Южный", 2744.2770, -2446.7246, 21.8988},     {"Центральный банк", 1852.020385,2040.791381,15.892713},  {"Рублёвка", -837.7783, 888.6161, 12.7232},  {"Казино", 1332.4252, 2358.7014, 17.6641},  {"Битва за контейнеры", 614.5167, 1722.3566, 12.0709},  {"Автосалон низкого класса", 2493.9616, -722.9544, 12.3315},  {"Автосалон среднего класса", 1407.7449, 455.4801, 13.1630},  {"Автосалон высокого класса", -14.0637, 2614.5664, 10.9892},   {"Мотосалон Harley Davidson", 785.720153, 750.465087, 12.000024},  {"Автошкола", 1909.174438,2227.679687,15.708162},  {"Военкомат", 1916.778564,2302.411376,15.574637},  {"Правительство области", -139.140975,593.789611,12.145712},  {"Отдел полиции №1 (ГИБДД)", 1906.805786,-2234.382812,11.257631},  {"Отдел полиции №2 (УМВД)", 2581.309326,-2416.139892,21.960090},  {"Отдел ФСБ", 1823.904663,2095.636718,15.848405},  {"Городская больница г.Арзамас", -285.797210,581.851562,12.120290},   {"СМИ", -317.708038,821.221679,13.051450},  {"Воинская часть", 1703.197265,1678.025878,15.279437},  {"Арзамасская ОПГ", 438.705322,1046.505126,12.002637},  {"Батыревская ОПГ", 1941.203857,2161.006591,15.705187},  {"Лыткаринская ОПГ", -2346.002441,75.257041,21.002962},  {"Шахта", 2381.5727, 1726.4451, -2.1506},  {"Завод", -1062.6697, 2204.1894, 38.0964},  {"Инкосация", 1864.1374, 2011.7136, 15.8546},  {"Транспортная Компания", 2362.1115, 1972.5627, 15.5530},  {"База механиков", 1840.918090,-118.025146,15.695312},  {"Курьерская служба доставки", 2764.509765,-2396.882568,21.890625},  {"Аренда автобуса(Южный)", 2771.041992,-2454.780761,21.845964},  {"Аренда автобуса(Арзамас)", -127.487670,943.652648,12.142824},   {"Аренда автобуса(Батырево)", 1798.986328,2529.591552,15.664262},  {"Гоночная трасса", -1568.7784, 1611.8305, 36.3971},  {"Дом на горе", -789.5397, -456.7479, 741.1422},  {"СТО и тюнинг-ателье", 1856.1375, -122.3266, 15.6888},  {"Аренда транспорта пгт.Батырево", 1763.641723,2255.673339,15.865348},  {"Аренда транспорта г.Арзамас", -36.923530,1360.673583,12.002090},  {"Аренда транспорта г.Южный", 1966.599975,-2603.943603,10.820312},  {"Тайный интерьер в Лыткарино", -2424.5818, 2846.3291, 40.7908} };