Как можно реализовать автоматическую продажу вещей к примеру из сумки?
есть следующая идея, передавать все вещи дамику который будет получать вещь, телепортироватся к магазину и приказать ему продавать вещь магазину. Есть может что то проще? Может как то можно узнать продажную цену предмета и сразу дать игроку денег и удалить предмет?

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

гугл в помощь как говорится) xgm.guru/p/wc3/auto
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
6 лет назад
0
Похожие вопросы:

ответ
Steal nerves:
Тестил, тестил. Думал найду ошибку. Короче не знаю в чем дело, видимо и в правду баг. Решил по-другому. Ловить поставку, и ловить продажу. То есть ловить то, что пришло, и то, что ушло.
событием - "юнит закладывает в лавку" (EVENT_PLAYER_UNIT_PAWN_ITEM) ловим продажу итемов.
GetSellingUnit() =продающий торговец (типа всякие предметы закладывает в магазин и получает деньги)
GetBuyingUnit()=GetTriggerUnit() = покупающий торговец (это обычно магазин)

событием - "юнит закладывает из лавки (продает артефакт)" (EVENT_PLAYER_UNIT_SELL_ITEM) ловим покупку итемов
GetSellingUnit()=GetTriggerUnit()=продающий торговец (обычно это магазин)
GetBuyingUnit() = покупающий торговец (наш герой получает артефакты)
Решил, я по-своему. Короче, видимо, итем в магазине исчезает при добавлении. Попробовал запоминать все добавленные итемы, и при добавлении я сначала удалю всё в магазине, а потом заново добавлю. Пришлось, еще порядок (номер слотов) запоминать, а то строятся ключи хэша на строгом порядке. Если возьму и заберу итем посередине, придется заново выстраивать порядок.
Не знаю, пока тестил много времени, пока без косяков. Главное, что работает. Меня это радует. Но пока не буду спешить. Мне бы хотелось затестить норм.

0
7
6 лет назад
Отредактирован bOrissko
0
По мне, так продажа предмета с кармана, это слишком легко. Как вариант, передача предмета на базу и последующая его продажа. Также можно спеллом (настроить кд чтобы не злоупотребляли, также мана). Курьер.
Цену продажи вы стандартными методами не узнаете, можно указать прочность предмета как его цена за продажу или использовать Custom value.
0
17
6 лет назад
Отредактирован N1ghtSiren
0
Сделать БД с ценой каждого предмета и использовать значения оттуда.
каст абилки/подход в зону продажи/?? -> удалить предмет у героя -> взять значение из бд, или же bOrissko:
можно указать прочность предмета как его цена за продажуили использовать Custom value.
вернуть это кол-во голды игроку.
0
2
6 лет назад
0
гугл в помощь как говорится) xgm.guru/p/wc3/auto
Принятый ответ
0
11
6 лет назад
0
PyCCKuu_4eJl:
Сделать БД с ценой каждого предмета и использовать значения оттуда.
каст абилки/подход в зону продажи/?? -> удалить предмет у героя -> взять значение из бд, или же bOrissko:
можно указать прочность предмета как его цена за продажуили использовать Custom value.
вернуть это кол-во голды игроку.
в карте для которой это планировалось сделать, предметов где то 500)
3
16
6 лет назад
3
да есть нормальная возможность узнавать цену предмета и без мх
function ShoppingGarbage takes nothing returns boolean
	if GetItemPlayer(GetFilterItem())==Players[15] then
		call RemoveItem(GetFilterItem())
	endif
	return false
endfunction

function ShoppingClear takes nothing returns nothing
	call EnumItemsInRect(ShoppingSquare,Filter(function ShoppingGarbage),null)
endfunction

function GetItemGoldCostById takes integer id returns integer
	local integer gold=0
	local integer d=0
	if id==0 then
		return 0
	endif
	if not HaveSavedInteger(ItemCosts,'GOLD',id) then
		set gold=GetPlayerState(Players[15],PLAYER_STATE_RESOURCE_GOLD)
		set d=50000
		call SetPlayerState(Players[15],PLAYER_STATE_RESOURCE_GOLD,d)
		call AddItemToStock(ShoppingUnit,id,1,1)
		call IssueImmediateOrderById(ShoppingUnit,id)
		set d = d - GetPlayerState(Players[15],PLAYER_STATE_RESOURCE_GOLD)
		call SetPlayerState(Players[15],PLAYER_STATE_RESOURCE_GOLD,gold)
		call SaveInteger(ItemCosts,'GOLD',id,d)
		call ShoppingClear()
	else
		set d=LoadInteger(ItemCosts,'GOLD',id)
	endif
//call echo(GetObjectName(id)+" cost = "+I2S(d))
	return d
endfunction
ShoppingUnit стоит в ShoppingSquare и имеет абилку на продажу динамическую предметов, принадлежит 15му игроку, дальше дело техники. Ну и хт для ускорения работы
Чтобы оставить комментарий, пожалуйста, войдите на сайт.