Юзаю мемхак, карта фаталит при попытке сохранить игру. Как запретить игроку сохраняться? Утилитка DisableSaveGameSaveButton от Лича не помогает.
function DisableSaveGameSaveButton takes nothing returns nothing
		local integer pSaveGameSaveButton = GetFrameItemAddress("SaveGameFileEditBox",0)
		if pSaveGameSaveButton > 0 then
			set Memory[pSaveGameSaveButton/4 + 0x1D4/4] = 0
			set Memory[pSaveGameSaveButton/4 + 0x108/4] = 0
			set Memory[pSaveGameSaveButton/4 + 0x1E8/4] = 0
		endif
		set pSaveGameSaveButton = GetFrameItemAddress("FileListFrame",0)
		if pSaveGameSaveButton > 0 then
			set Memory[pSaveGameSaveButton/4 + 0x10C/4] = 0x3B03123E
		endif
	endfunction

Принятый ответ

Утилка Анрайза помогла, спасибо ему.
globals
		timer SaveBlockTimer = CreateTimer( )
		dialog PreventSave___Dialog = DialogCreate()
	endglobals
		
	function PreventSave___Exit takes nothing returns nothing
		call DialogDisplay(GetLocalPlayer(), PreventSave___Dialog, false)
	endfunction

	function PreventSave___StopSave takes nothing returns boolean
		local boolean GameAllowSave = false

		if GameAllowSave == false then
			call DisplayTextToPlayer(GetLocalPlayer(), 0, 0, "Save Game is Disabled")
			call DialogDisplay(GetLocalPlayer(), PreventSave___Dialog, true)
		endif

		call TimerStart( SaveBlockTimer, 0.00, false, function PreventSave___Exit)

		return false
	endfunction

	function AntiSaveSystemInit takes nothing returns nothing
		local trigger AntiSaveLocalTrigger = CreateTrigger()
		call TriggerRegisterGameEvent( AntiSaveLocalTrigger, EVENT_GAME_SAVE )
		call TriggerAddCondition( AntiSaveLocalTrigger, Filter(function PreventSave___StopSave ) )
		set AntiSaveLocalTrigger = null
	endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
3 года назад
0
Похожие вопросы:

ответ
"Далеко твоя рпг не уйдёт" моя рпг тебя переживет.
Ты тоже когда родился не умел так нагло хамить незнакомым людям, научился же как то. Люди с более серьезным отношением к миру чем "изменить систему один не могу но буду плакать об этом" могут изучить все что захотят и даже в одиночку будут стоить больше чем тысяча "всегда сдающихся" людей,
и тот человек (Да удалось, даже был лаунчер для этой игры. Forgotten Land) это подтвердил, хотя я уверен что он быстро опустил руки.
p.s чел прекращай настраивать других людей на поражение, если ты что-то можешь дать - дай, если хочешь чтобы другие не добились успеха чтобы ты оказался прав и не чувствовал себя ущербным то просто отойди в сторону.
Я на все твои выпады отвечу лишь одной фразой:
"Dota была обычной картой для warcraft 3 и она поначалу тоже была пустой ".
Ответы получены, пару шарящих людей нашел, (дай бог каждому такого человека который рассказал мне о многом что тут считают до сих пор невозможным)
Спасибо за поддержку! и особенно одному пользователю. Ведь именно благодаря таким людям как life2smiler, люди не делают хорошие проэкты а другие люди соответственно вынуждены играть в некачественные карты и в течении нескольких лет не находить решения наболевших проблем
(если нет хотя бы 1 го человека кому удалось сделать что-то необычное то все остальные продолжат считать это невозможным) А сегодня стало ясно что могут не знать о чем либо не только потому что никто не делал этого, а потому что человек на самом деле сделал но никому говорить не стал :)
ответ
~8gabriel8:
Что-то по утру пробило сделать возвращение предмета в слот инвентаря)
Чтобы проигрывался звук неудачи, и появлялась надпись на экране, что не удалось выложить предмет, попытался сделать его невыпадающим в событии юнит теряет предмет. Но ничего не получилось, герой всё равно его выкладывает. Удалять предмет и создавать на его месте такой же не получилось, да и вряд ли бы мог быть нужный результат, так как сообщения на экран выводятся в результате непосредственных действий игрока, а не их триггерной имитации.

1
15
3 года назад
1
Утилка Анрайза помогла, спасибо ему.
globals
		timer SaveBlockTimer = CreateTimer( )
		dialog PreventSave___Dialog = DialogCreate()
	endglobals
		
	function PreventSave___Exit takes nothing returns nothing
		call DialogDisplay(GetLocalPlayer(), PreventSave___Dialog, false)
	endfunction

	function PreventSave___StopSave takes nothing returns boolean
		local boolean GameAllowSave = false

		if GameAllowSave == false then
			call DisplayTextToPlayer(GetLocalPlayer(), 0, 0, "Save Game is Disabled")
			call DialogDisplay(GetLocalPlayer(), PreventSave___Dialog, true)
		endif

		call TimerStart( SaveBlockTimer, 0.00, false, function PreventSave___Exit)

		return false
	endfunction

	function AntiSaveSystemInit takes nothing returns nothing
		local trigger AntiSaveLocalTrigger = CreateTrigger()
		call TriggerRegisterGameEvent( AntiSaveLocalTrigger, EVENT_GAME_SAVE )
		call TriggerAddCondition( AntiSaveLocalTrigger, Filter(function PreventSave___StopSave ) )
		set AntiSaveLocalTrigger = null
	endfunction
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.