Если есть, то прошу написать её.

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

native GetUnitGoldCost        takes integer unitid                                            returns integer
native GetUnitWoodCost        takes integer unitid                                            returns integer
0
16
7 лет назад
0
Насколько я знаю, в стандарте такой функции нет. Можно всё очень просто провернуть через базы данных. Можно заморочиться и полезть за помощью в мемори хак, так как, скорее всего, такая функция там есть, раз уж он позволяет проводить махинации с белыми циферками.
0
10
7 лет назад
0
Naadir:
Насколько я знаю, в стандарте такой функции нет. Можно всё очень просто провернуть через базы данных. Можно заморочиться и полезть за помощью в мемори хак, так как, скорее всего, такая функция там есть, раз уж он позволяет проводить махинации с белыми циферками.
В таком случае, думаю, что вариант с бд буду юзать, т.к. мх не применяю. Но хотелось бы сделать все проще, жаль не предусмотрели такую функцию. Спасибо за ответ.
9
16
7 лет назад
9
добавляешь юнита в специальный магазин, с поддержкой поддержки динамической продажи
продаешь игроку №15 посредством IssueImmediateNeutralOrder или че-то там
сравниваешь голд до и после покупки
купленного удаляешь, сохраняешь его цену, чтобы потом не гонять цикл заново
готово
0
16
7 лет назад
0
DracoL1ch:
добавляешь юнита в специальный магазин, с поддержкой поддержки динамической продажи
продаешь игроку №15 посредством IssueImmediateNeutralOrder или че-то там
сравниваешь голд до и после покупки
купленного удаляешь, сохраняешь его цену, чтобы потом не гонять цикл заново
готово
Кстати тоже интересный вариант.
1
27
7 лет назад
Отредактирован MpW
1
ssbbssc, ну и у юнита можно, при покупке даешь голды 15 игроку, запоминаешь сколько в переменную, покупаешь его в магазине. Есть нативка. Драколич вроде другое имел в виду.
нативки с приказами
строительство в точку
заставляет юнита строить определенное здание в точке (у нежити с этим проблемы, точнее с рудником)
native IssueBuildOrder takes unit whichPeon, string unitToBuild, real x, real y returns boolean
native IssueBuildOrderById takes unit whichPeon, integer unitId, real x, real y returns boolean
чтобы возвести сплетенный рудник эльфов или проклятый рудник нежити вроде используют IssueTargetOrderById, наводя на рудник
function IssueBuildOrderByIdLocBJ takes unit whichPeon, integer unitId, location loc returns boolean
if (unitId == 'ugol') then проклятый рудник
return IssueHauntOrderAtLocBJ(whichPeon, loc)
else
return IssueBuildOrderById(whichPeon, unitId, GetLocationX(loc), GetLocationY(loc))
endif
endfunction
стандартные приказы
применяет абилки без цели, нанимает (тренирует) войска, улучшает здания и проводит исследования
native IssueImmediateOrder takes unit whichUnit, string order returns boolean
native IssueImmediateOrderById takes unit whichUnit, integer order returns boolean
применяет приказы в точку
native IssuePointOrder takes unit whichUnit, string order, real x, real y returns boolean
native IssuePointOrderById takes unit whichUnit, integer order, real x, real y returns boolean
native IssuePointOrderLoc takes unit whichUnit, string order, location whichLocation returns boolean
native IssuePointOrderByIdLoc takes unit whichUnit, integer order, location whichLocation returns boolean
применяет приказы в цель (в качестве цели могут быть юниты, предметы, декорации - деревья)
native IssueTargetOrder takes unit whichUnit, string order, widget targetWidget returns boolean
native IssueTargetOrderById takes unit whichUnit, integer order, widget targetWidget returns boolean
по дереву и золоту:
"harvest" - добывать ресурсы
"eattree" - съесть дерево
"grabtree" - вырвать дерево
"sentinel" - сторожевая сова
необычные приказы
ИСПОЛЬЗОВАНИЕ instantTargetWidget на цель targetWidget
native IssueInstantTargetOrder takes unit whichUnit, string order, widget targetWidget, widget instantTargetWidget returns boolean
native IssueInstantTargetOrderById takes unit whichUnit, integer order, widget targetWidget, widget instantTargetWidget returns boolean
Объяснение: на примере IssueInstantTargetOrder, заставляет юнита whichUnit использовать приказ order на targetWidget с помощью instantTargetWidget
Пример: есть приказ на гуи "dropitem" передать targetWidget итем instantTargetWidget или использовать какое-нибудь заклинание предмета на него
order_dropitem = 852001
С таким же успехом можно юзать итем на цель
ИСПОЛЬЗОВАНИЕ instantTargetWidget в точку
native IssueInstantPointOrder takes unit whichUnit, string order, real x, real y, widget instantTargetWidget returns boolean
native IssueInstantPointOrderById takes unit whichUnit, integer order, real x, real y, widget instantTargetWidget returns boolean
Объяснение: на примере IssueInstantPointOrder, заставляет юнита whichUnit использовать приказ order в точку (x,y) или что-то сделать в точке с помощью instantTargetWidget
Пример: к примеру есть приказ на гуи "dropitem" выбросить предмет targetWidget или приказ использовать итем instantTargetWidget в точку
order_dropitem = 852001

http://xgm.guru/p/wc3/warden-buyitem

юнит передает предмет цели target (можно так и продать в магазин, если магазин будет целью)
native UnitDropItemTarget takes unit whichUnit, item whichItem, widget target returns boolean
перемещает предмет в слот (если там был слот занят, то меняет местами). Иногда можно перемещать исчезнутые итемы в слот (например, они невидимы, заставляем их переместить в слот, и становятся видимы).
native UnitDropItemSlot takes unit whichUnit, item whichItem, integer slot returns boolean
юзаем предмет
native UnitUseItem takes unit whichUnit, item whichItem returns boolean
юзаем предмет в цель (в качестве цели могут быть юнит, итем. декорация)
native UnitUseItemTarget takes unit whichUnit, item whichItem, widget target returns boolean
юзаем предмет в точку
native UnitUseItemPoint takes unit whichUnit, item whichItem, real x, real y returns boolean
852002 to 852007 (moveslot): Эти приказы перемещают указанный предмет в соответствующий слот инвентаря героя, отдавшего приказ. Идентификатор 852002 переместит предмет в первый слот, идентификатор 852003 – во второй и т.д. Можно с помощью IssueInstantTargetOrderById перетащить итем самому себе.
852008 to 852013 (useslot): Заставляют героя, отдавшего приказ, использовать предмет, находящийся в соответствующем слоте инвентаря. Идентификатор 852008 использует предмет в первом слоте, идентификатор 852009 – во втором и т.д.
дропают предмет в точку (на землю короче выкидываем)
native UnitDropItemPoint takes unit whichUnit, item whichItem, real x, real y returns boolean
МАНИПУЛЯЦИИ С ПРЕДМЕТОМ (не приказы)
даем итем (не создаем !!!)
native UnitAddItem takes unit whichUnit, item whichItem returns boolean
создаем итем определенного типа
native UnitAddItemById takes unit whichUnit, integer itemId returns item
создаем итем определенного типа в определенный слот
native UnitAddItemToSlotById takes unit whichUnit, integer itemId, integer itemSlot returns boolean
удаляем итем
native UnitRemoveItem takes unit whichUnit, item whichItem returns nothing
удаляем итем с определенного слота
native UnitRemoveItemFromSlot takes unit whichUnit, integer itemSlot returns item
размер инвентаря
native UnitInventorySize takes unit whichUnit returns integer
итем в слоте
native UnitItemInSlot takes unit whichUnit, integer itemSlot returns item
иммитация
как понял ниже три заставляют не только продавать/покупать. но и делать действия от имени игрока
иммитация от имени игрока - нанимать войска, которые есть в наличии у лагеря
native IssueNeutralImmediateOrder takes player forWhichPlayer, unit neutralStructure, string unitToBuild returns boolean
native IssueNeutralImmediateOrderById takes player forWhichPlayer,unit neutralStructure, integer unitId returns boolean
Объяснение: IssueNeutralImmediateOrder это иммитация приказа, заставляет нейтральное здание neutralStructure (чаще всего магазин) от имени игрока forWhichPlayer нанимать войска
иммитация от имени игрока - заставляет купить/продать выбранную цель
native IssueNeutralTargetOrder takes player forWhichPlayer,unit neutralStructure, string unitToBuild, widget target returns boolean
native IssueNeutralTargetOrderById takes player forWhichPlayer,unit neutralStructure, integer unitId, widget target returns boolean
иммитация от имени игрока - заставляет что-то делать с точкой (непонятная нативка). Думаю, эта штука вроде типа помогает разведку делать. Помните, у гоблина можно разведку делатьДумаю, эта штука вроде типа помогает разведку делать. Помните, у гоблина можно разведку делать
native IssueNeutralPointOrder takes player forWhichPlayer,unit neutralStructure, string unitToBuild, real x, real y returns boolean
native IssueNeutralPointOrderById takes player forWhichPlayer,unit neutralStructure, integer unitId, real x, real y returns boolean
если у вас расшарен общий контроль это поможет например синему купить что-то у красного. хотя не всегда работает. Не путайте покупку и тренировку
851971 (smart): Приказ (цель-точка или цель-объект), аналог правой клавиши мыши.
852000 (skillmenu): Приказ (без указания цели), при выполнении которого открывается меню навыков героев. Если же триггерно заставить выполнить этот приказ обычную боевую единицу, то исчезнет ее карта команд, которая возвратится, если выбрать боевую единицу.
851994 (buildmenu): Приказ (без указания цели), открывающий меню строительства воина, способного возводить здания.
851973 (stunned): Этот приказ отдается боевым единицам, подвергшимся оглушающим способностям, таким как ‘AOws’ (Громовая поступь), лишая их возможности двигаться и атаковать.
По сути совет правильный, но приказ (имеется в виду skillmenu) указан неверно: OrderId("attributemodskill") = 852576
выучить навык
native SelectHeroSkill takes unit whichHero, integer abilcode returns nothing
ГРУППЫ - ОТРЯДЫ
заставляет отряд применять приказ
native GroupImmediateOrder takes group whichGroup, string order returns boolean
native GroupImmediateOrderById takes group whichGroup, integer order returns boolean
отряду приказ в цель
native GroupTargetOrder takes group whichGroup, string order, widget targetWidget returns boolean
native GroupTargetOrderById takes group whichGroup, integer order, widget targetWidget returns boolean
заставляет отряд использовать приказ в точку
native GroupPointOrder takes group whichGroup, string order, real x, real y returns boolean
native GroupPointOrderById takes group whichGroup, integer order, real x, real y returns boolean
native GroupPointOrderLoc takes group whichGroup, string order, location whichLocation returns boolean
native GroupPointOrderByIdLoc takes group whichGroup, integer order, location whichLocation returns boolean
4
21
6 лет назад
4
native GetUnitGoldCost        takes integer unitid                                            returns integer
native GetUnitWoodCost        takes integer unitid                                            returns integer
Принятый ответ
2
16
6 лет назад
2
ScopteRectuS, ну ты же уточняй, что это 1.29
0
21
6 лет назад
0
В мх мне напрямую так функции вроде и не дали
Дали, как всегда, детальки конструктора лего, а функцию самостоятельно собирать
Ну будет время - соберу
0
21
6 лет назад
0
avuremybe, Это не 1.29. Это функции из common.ai
2
16
6 лет назад
Отредактирован DracoL1ch
2
эээ
ну пожалуйста clotPh
function GetUnitIDGoldCost takes integer id returns integer
	local integer a=GetUnitDataDefByIdCaching(id)// можно и без кэишнга
	if a>0 then
		return RMem(a+0x20)
	endif
	return -1
endfunction
0
21
6 лет назад
0
DracoL1ch, спасибо
Чтобы оставить комментарий, пожалуйста, войдите на сайт.