Question

Спойлер

{
			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);
		}

 

 

Share this post


Link to post

16 answers to this question

  • 0

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

Edited by Nicinen

Share this post


Link to post
  • 0

@Nicinen не вырезал

Share this post


Link to post
  • 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;
		}

 

 

Edited by Nicinen

Share this post


Link to post
  • 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;
	}

 

Share this post


Link to post
  • 0

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

Share this post


Link to post
  • 0
EditObject -> EditDynamicObject Замени

Share this post


Link to post
  • 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;
		}

 

Share this post


Link to post
  • 0

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

Share this post


Link to post
  • 0

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

Share this post


Link to post
  • 0

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

Share this post


Link to post
  • 0

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

Share this post


Link to post
  • 0

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

Share this post


Link to post
  • 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;
	}

 

 

Share this post


Link to post
  • 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);

 

 

Share this post


Link to post
  • 0

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

Share this post


Link to post
  • 0

UP

Share this post


Link to post
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • hokageud
      By hokageud
      Доработка HonestRp
      Просмотр файла Сливаю свою доработку honestrpg, делал примерно с февраля.
      Имеются участки блевотного кода, новичкам не советую брать данный мод.

      Автор доработки: akatsuji

      Мод сливается из-за усталости, нет больше сил дорабатывать мод.

      При пересливе указывать автора: akatsuji
      Мод сливается исключительно и специально для pawno-rus.ru 

       Что было сделано:

       
      Добавил hokageud Добавлено 27.11.2022 Категория Моды Автор vk.com/akatsuji  
    • MartinJoys
      By MartinJoys
      Помогите перевести мод с mxINI на Mysql я не знаю как это сделать я не проффисионал в Pawno 
      Писать в VK https://vk.com/m.joys Скину мод