Вопросы

Спойлер

{
			if(!response) return 1;
			new Float:x, Float:y, Float:z, Float:angle;
			GetPlayerPos(playerid, x, y, z);
			GetPlayerFacingAngle(playerid, angle);
			x += floatsin(-angle, degrees);
			y += floatcos(-angle, degrees);
			new atm1;
			SendClientMessage(playerid, COLOR_LIGHTRED, "Чтобы выйти, нажмите: ESC и чтобы сохранить, нажмите курсором: СОХРАНИТЬ");
			atm1 = CreateObject(2942, x, y, z-0.35, 0.0, 0.0, 0.0);
			SetPVarInt(playerid, "LoadATM", atm1+1);
			EditObject(playerid, atm1);
		}

 

 

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


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

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

  • 0

@archiboy6 C этим кодом все нормально (Если вырезал систему может где-то не дописал нужных строк (может сам case)) 

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

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


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

@archiboy6 Скорее всего тогда где-то сам case не прописан 

 

По идее что-то по типу такого должно быть прописано чтобы case работал

Спойлер

	case D_ADD+2:
		{
			if(PlayerLogged{playerid} == false) return 1;
			if(GetPVarInt(playerid, "LoadATM") > 0) return SendClientMessage(playerid, COLOR_GRAY, "Вы уже устанавливаете банкомат!");
			ShowPlayerDialog(playerid, D_ATM, 0, "Добавить банкомат", "Вы хотите начать установку?", "Да", "Нет");
			return 1;
		}

 

 

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

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


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

@Nicinen 

Спойлер

case D_ADDNED+5:
		{
			if(PlayerLogged[playerid] == false) return 1;
			if(!IsPlayerDeveloperAdmin(playerid)) return 1;
			if(TOTALATM >= MAX_ATM-2) return SendClientMessage(playerid, COLOR_GREY, "Вы не можете больше устанавливать банкоматы!");
			if(GetPVarInt(playerid, "LoadATM") > 0) return SendClientMessage(playerid, COLOR_GREY, "Вы уже устанавливаете банкомат!");
			ShowPlayerDialog(playerid, D_ATM+9, 0, "Добавить банкомат", "Вы хотите начать установку банкомата?", "Да", "Нет");
			return 1;
		}



Потом выдает:

	case D_ATM+9:
		{
			if(!response) return 1;
			new Float:x, Float:y, Float:z, Float:angle;
			GetPlayerPos(playerid, x, y, z);
			GetPlayerFacingAngle(playerid, angle);
			x += floatsin(-angle, degrees);
			y += floatcos(-angle, degrees);
			new atm1;
			SendClientMessage(playerid, COLOR_LIGHTRED, "Чтобы выйти, нажмите: ESC и чтобы сохранить, нажмите курсором: СОХРАНИТЬ");
			atm1 = CreateObject(2942, x, y, z-0.35, 0.0, 0.0, 0.0);
			SetPVarInt(playerid, "LoadATM", atm1+1);
			EditObject(playerid, atm1);
		}


и никаких действий после этого

 

 

@Nicinen 

	if(GetPVarInt(playerid, "LoadATM") > 0)
	{
		if(!playerobject)
		{
			if(!IsValidObject(objectid)) return 1;
			MoveObject(objectid, fX, fY, fZ, 10.0, fRotX, fRotY, fRotZ);
		}
		if(response == EDIT_RESPONSE_FINAL)
		{
			TOTALATM++;
			ATMInfo[TOTALATM][aX] = fX;
			ATMInfo[TOTALATM][aY] = fY;
			ATMInfo[TOTALATM][aZ] = fZ;
			ATMInfo[TOTALATM][arX] = fRotX;
			ATMInfo[TOTALATM][arY] = fRotY;
			ATMInfo[TOTALATM][arZ] = fRotZ;
			SendClientMessage(playerid,COLOR_YELLOW,"ИНФО: Вы установили банкомат");
			DestroyObject(GetPVarInt(playerid, "LoadATM")-1);
			ATM[TOTALATM] = CreateObject(2942, fX, fY, fZ, fRotX, fRotY, fRotZ);
			LABELATM[TOTALATM] = CreateDynamic3DTextLabel("Банкомат\n{FFFFFF}Нажмите: {FFCC00}ALT", 0xFFFFFFAA, ATMInfo[TOTALATM][aX],ATMInfo[TOTALATM][aY],ATMInfo[TOTALATM][aZ]+1.1,10.0);
			DeletePVar(playerid, "LoadATM");
			CancelEdit(playerid);

			STRING_GLOBAL[0] = EOS;
			format(STRING_GLOBAL,sizeof(STRING_GLOBAL),"INSERT INTO "T_ATM" (ID, aX, aY, aZ, arX, arY, arZ) VALUES (%i,'%f','%f','%f','%f', '%f', '%f')",
			TOTALATM,ATMInfo[TOTALATM][aX],ATMInfo[TOTALATM][aY],ATMInfo[TOTALATM][aZ], ATMInfo[TOTALATM][arX], ATMInfo[TOTALATM][arY], ATMInfo[TOTALATM][arZ]);
			mysql_tquery(dbHandle, STRING_GLOBAL, "", "");
		}
		if(response == EDIT_RESPONSE_CANCEL)
		{
			DeletePVar(playerid, "LoadATM");
			SendClientMessage(playerid, COLOR_RED, "Установка банкомата отменена");
			DestroyObject(GetPVarInt(playerid, "LoadATM")-1);
			CancelEdit(playerid);
		}
		return 1;
	}

 

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


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

@archiboy6, давайте по порядку. Покажите команду для установки банкомата.

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


Ссылка на сообщение
  • 0
EditObject -> EditDynamicObject Замени

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


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

@odosenok 

case D_ADDNED+5:
		{
			if(PlayerLogged[playerid] == false) return 1;
			if(!IsPlayerDeveloperAdmin(playerid)) return 1;
			if(TOTALATM >= MAX_ATM-2) return SendClientMessage(playerid, COLOR_GREY, "Вы не можете больше устанавливать банкоматы!");
			if(GetPVarInt(playerid, "LoadATM") > 0) return SendClientMessage(playerid, COLOR_GREY, "Вы уже устанавливаете банкомат!");
			ShowPlayerDialog(playerid, D_ATM+9, 0, "Добавить банкомат", "Вы хотите начать установку банкомата?", "Да", "Нет");
			return 1;
		}

 

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


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

@archiboy6, ну, а дальше-то где? Диалог D_ATM+9...

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


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

Меня тоже интересует эта же проблема с банкоматом мод тот-же

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


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

@vac vac, ну, я вон выше сказал, что мне нужно. Скинул бы ты, раз хочешь разрешить проблему тоже.

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


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

@Talex Такая-же проблема.

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


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

@Nekit_Krut18 читайте тему внимательней, @Talex написал что нужно скинуть. 

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


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

@DEST 

Цитата

Код D_ATM+9, Я заменил EditObject на EditDynamicObject, теперь появилось редактирование положения. Нажимаю на СОХРАНИТЬ. Пропадает редактирование положения, банкомат остаётся но не функционирует и не появляется тект3д, и на кнопку не робит, и после перезахода на серв объект удаляется. Крч я так понял не доходит до уста текста и установки кнопки и сохранения в бд.


	case D_ATM+9:
		{
			if(!response) return 1;
			new Float:x, Float:y, Float:z, Float:angle;
			GetPlayerPos(playerid, x, y, z);
			GetPlayerFacingAngle(playerid, angle);
			x += floatsin(-angle, degrees);
			y += floatcos(-angle, degrees);
			new atm1;
			SendClientMessage(playerid, COLOR_LIGHTRED, "×òîáû âûéòè, íàæìèòå: ESC è ÷òîáû ñîõðàíèòü, íàæìèòå êóðñîðîì: ÑÎÕÐÀÍÈÒÜ");
			atm1 = CreateDynamicObject(2942, x, y, z-0.35, 0.0, 0.0, 0.0);
			SetPVarInt(playerid, "LoadATM", atm1+1);
			EditDynamicObject(playerid, atm1);
		}

 

 

@DEST EDIT_RESPONCE_FINAL И EDIT_RESPONCE_CANCEL  как-то связаны.

Цитата

Есть ещё такой интересный паблик привязанный к вот другой цитате.


public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
{
	
	if(GetPVarInt(playerid, "slot_object_id") != -1)
	{
		new i = GetPVarInt(playerid, "slot_object_id");

		if(response == EDIT_RESPONSE_FINAL)
		{
			Roadblocks[i][sCreated] = 1;
			Roadblocks[i][sX] = x;
			Roadblocks[i][sY] = y;
			Roadblocks[i][sZ] = z;
			
			DestroyDynamicObject(Roadblocks[i][sObject]);
			Roadblocks[i][sObject] = CreateDynamicObject(GetPVarInt(playerid, "obj_id"), x, y, z, rx, ry, rz);

			SendClientMessage(playerid, COLOR_GREEN, "Объект установлен");
			
			global_string = "";
			
			format(global_string, 200, "CreateDynamicObject(%d, %f, %f, %f, %f, %f, %f)", GetPVarInt(playerid, "obj_id"), x, y, z, rx, ry, rz);
			SendLog("CreateObjects", global_string);
			
			
			SetPVarInt(playerid, "slot_object_id", -1);

		}
		if(response == EDIT_RESPONSE_CANCEL)
		{
			Roadblocks[i][sCreated] = 0;
			Roadblocks[i][sX] = 0.0;
			Roadblocks[i][sY] = 0.0;
			Roadblocks[i][sZ] = 0.0;

			SendClientMessage(playerid, COLOR_RED, "Вы отменили установку объекта");

			DestroyDynamicObject(Roadblocks[i][sObject]);

			SetPVarInt(playerid, "slot_object_id", -1);
		}
	}
	
	return true;
}  

 

Цитата

public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
{
	if(GetPVarInt(playerid, "edit_server_object"))
	{
		if(!playerobject)
		{
			if(!IsValidObject(objectid)) return 1;
			MoveDynamicObject(objectid, fX, fY, fZ, 10.0, fRotX, fRotY, fRotZ);
		}
		if(response == EDIT_RESPONSE_FINAL)
		{
			CancelEdit(playerid);
		}
		if(response == EDIT_RESPONSE_CANCEL)
		{
			CancelEdit(playerid);
		}
		return 1;
	}
	if(GetPVarInt(playerid, "LoadATM") > 0)
	{
		if(!playerobject)
		{
			if(!IsValidObject(objectid)) return 1;
			MoveDynamicObject(objectid, fX, fY, fZ, 10.0, fRotX, fRotY, fRotZ);
		}
		if(response == EDIT_RESPONSE_FINAL)
		{
			TOTALATM++;
			ATMInfo[TOTALATM][aX] = fX;
			ATMInfo[TOTALATM][aY] = fY;
			ATMInfo[TOTALATM][aZ] = fZ;
			ATMInfo[TOTALATM][arX] = fRotX;
			ATMInfo[TOTALATM][arY] = fRotY;
			ATMInfo[TOTALATM][arZ] = fRotZ;
			SendClientMessage(playerid,COLOR_YELLOW,"ИНФО: Вы установили банкомат");
			DestroyObject(GetPVarInt(playerid, "LoadATM")-1);
			ATM[TOTALATM] = CreateDynamicObject(2942, fX, fY, fZ, fRotX, fRotY, fRotZ);
			LABELATM[TOTALATM] = CreateDynamic3DTextLabel("Банкомат\n{FFFFFF}Нажмите: {FFCC00}ALT", 0xFFFFFFAA, ATMInfo[TOTALATM][aX],ATMInfo[TOTALATM][aY],ATMInfo[TOTALATM][aZ]+1.1,10.0);
			DeletePVar(playerid, "LoadATM");
			CancelEdit(playerid);
			new str[512];
			format(str,sizeof(str),"INSERT INTO "T_ATM" (ID, aX, aY, aZ, arX, arY, arZ) VALUES (%i,'%f','%f','%f','%f', '%f', '%f')",
			TOTALATM,ATMInfo[TOTALATM][aX],ATMInfo[TOTALATM][aY],ATMInfo[TOTALATM][aZ], ATMInfo[TOTALATM][arX], ATMInfo[TOTALATM][arY], ATMInfo[TOTALATM][arZ]);
			mysql_tquery(dbHandle, str, "", "");
		}
		if(response == EDIT_RESPONSE_CANCEL)
		{
			DeletePVar(playerid, "LoadATM");
			SendClientMessage(playerid, COLOR_RED, "Установка банкомата отменена");
			DestroyObject(GetPVarInt(playerid, "LoadATM")-1);
			CancelEdit(playerid);
		}
		return 1;
	}

 

 

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


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

Так ещё добавил (в консоль вывод:), и ничего из этого не пишет когда нажимаю сохранить-выйти. Хотя responce правильно сделан.

Цитата

if(GetPVarInt(playerid, "LoadATM") > 0)
			printf("TOP ustanovka3");
			{
			//if(!playerobject)
			{
			if(!IsValidObject(objectid)) return 1;
			printf("TOP ustanovka2");
if(response == EDIT_RESPONSE_FINAL)
			{
			printf("TOP ustanovka3");
if(response == EDIT_RESPONSE_CANCEL)
		{
		    printf("Zavershena ustanovka");

 

 

Да, кст у меня же было EditObject. Я его сменил на EditDynamicObject(как советовали в этой теме.). Да, после изменений у меня появилось система редактирования. Но не робит СОХРАНИТЬ и ВЫЙТИ. И функцию которая была от atm1(OnPlayerEditObject), перенёс в (OnPlayerEditDynamicObject).

И всё-равно - нет.

Цитата

SendClientMessage(playerid, COLOR_LIGHTRED, "×òîáû âûéòè, íàæìèòå: ESC è ÷òîáû ñîõðàíèòü, íàæìèòå êóðñîðîì: ÑÎÕÐÀÍÈÒÜ");
			atm1 = CreateDynamicObject(2942, x, y, z-0.35, 0.0, 0.0, 0.0);
			SetPVarInt(playerid, "LoadATM", atm1+1);
			EditDynamicObject(playerid, atm1);

 

 

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


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

UP. Сори за оффтоп. Товарищи помогите прошло 1,7 месяца.

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


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

UP

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


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   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} };