Вопросы

Спойлер

{
			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 пользователей онлайн

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

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

    • Узбек
      От Узбек
      Всем добрый вечер ребят! 
      Я начинающий, сегодня я вам сливаю команду 2(шт) на технические работы
      Ловите 
       
    • nazpol9
      От nazpol9
      Привет всем.

      У меня имеется мод для самп сервера и VPS с Ubuntu, на котором я пытаюсь его запустить.

      В чем суть проблемы: при запуске samp03svr, сервер запускается, но на версии 0.3.DL R-1. Когда я пытаюсь запустить этот же мод локально на Windows, сервер работает на версии 0.3.7 и я могу зайти на него без клиента 0.3.DL.

      Для решения этой проблемы я уже пробовал заменять инклуды и исполнительные файлы теми, что есть в архивах на официальном сайте сампа, перекомпилировал мод, и ничего не изменилось.
       
      #include <a_samp> #include <a_mysql> #include <foreach> #include <Pawn.RakNet> #include <streamer> #include <sscanf2> #include <float2> #include <crashdetect> #include <fmt> #include <a_http> #include <Pawn.CMD> #include <Pawn.Regex> #include <requests> #include <callbacks> #include <MD5> #include <mxdate> #include <TOTP> #include <gvar> #include <md-sort> #include <nex-ac> #include <weapon-config> #include <discord-connector> #include <3DTryg> #include <textdraw-streamer>  
      plugins crashdetect.so streamer.so textdraw-streamer.so sscanf.so pawnraknet.so pawncmd.so mysql.so requests.so profiler.so pawnregex.so TOTP.so gvar.so discord-connector.so

      Если у кого-то будут какие-либо догадки, прошу ими поделиться, если понадобится больше информации - я постараюсь её предоставить.