XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
J
expert
offline
Опыт: 48,447
Активность:
попробуй эту строчку
call UnitAddItemById(u,GetStoredInteger(udg_cache,"i",I2S(i)))
замнить этой
call UnitAddItem(u,I2It(GetStoredInteger(udg_cache,"i",I2S(i))))
Старый 15.03.2008, 22:29
sleepw

offline
Опыт: 8,449
Активность:
неа не катит..

sleepw добавил:
я ж запоминаю вроде айди..

sleepw добавил:
наканецто понял де я тыкнул не то=\

Код:
local unit u=udg_testunit
local integer i=0
loop
exitwhen i>=5
set i=i+1
call DisplayTextToForce(GetForceOfPlayer(GetOwningPlayer(u)),I2S(i))
call StoreInteger(udg_cache,"i",I2S(i),GetItemTypeId(UnitItemInSlot(u,i)))
endloop
///////////////////
local unit u=udg_testunit
local integer i=0
loop
exitwhen i>=5
set i=i+1
call DisplayTextToForce(GetPlayersAll(),I2S(i))
call UnitAddItemById(u,GetStoredInteger(udg_cache,"i",I2S(i)))
endloop

так пашет:)
Старый 15.03.2008, 23:11
J
expert
offline
Опыт: 48,447
Активность:
имей ввиду что если ты создаеш так предмет и так его передаеш, то его хендл меняется, и все сылки на него сбрасываются, потомучто это посути новый предмет тогоже типа, это может вызвать некоторые проблемы... т.е. следи за этим...
Старый 15.03.2008, 23:19
sleepw

offline
Опыт: 8,449
Активность:
тю а как может айди премдета поменяцо?омг
Старый 15.03.2008, 23:22
J
expert
offline
Опыт: 48,447
Активность:
sleepw не айди, а хендл, потомучто функцией
call UnitAddItemById(u,GetStoredInteger(udg_cache,"i",I2S(i)))
ты создаеш новый предмет
Старый 15.03.2008, 23:24
sleepw

offline
Опыт: 8,449
Активность:
ну и как оно можно потечь?
я запоминаю айди и айди даю..
Старый 15.03.2008, 23:28
J
expert
offline
Опыт: 48,447
Активность:
ты запоминаеш не хендл, а ТИП предмета... и даеш новосозданый предмет юниту с типом что ты запомнил...
Если тебе нужно чтобы предметы не менялись, а оставались теже, то надо так:
Код:
local unit u=udg_testunit
local integer i=0
loop
exitwhen i>=5
set i=i+1
call DisplayTextToForce(GetForceOfPlayer(GetOwningPlayer(u)),I2S(i))
call StoreInteger(udg_cache,"i",I2S(i),H2I(UnitItemInSlot(u,i)))
endloop
///////////////////
local unit u=udg_testunit
local integer i=0
loop
exitwhen i>=5
set i=i+1
call DisplayTextToForce(GetPlayersAll(),I2S(i))
call UnitAddItem(u,I2It(GetStoredInteger(udg_cache,"i",I2S(i))))
endloop
Старый 15.03.2008, 23:31
sleepw

offline
Опыт: 8,449
Активность:
хм,ок тогда скажи мне разницу между функциями:
GetItemType
&
GetItemTypeId ?
Старый 15.03.2008, 23:38
J
expert
offline
Опыт: 48,447
Активность:
черт, я попутал Get и Set, те посты проигнорируй

GetItemType озвращает Тип предмета в переменую типа itemtype, однако itemtype это integer, но представлена в таком виде для удобства...
GetItemTypeId возвращает тип предмета как integer

Jon добавил:
а если сказать точнее то itemtype это гуишный вариант типа предмета, в джазе же его всегда засовывают в интегер
Старый 16.03.2008, 00:18
sleepw

offline
Опыт: 8,449
Активность:
эх..
пля немогу понять в чём дело..
вот смотри..
с левого типа записываю итемы.
Код:
function Trig_____________________________________003_Actions takes nothing returns nothing
local unit u=udg_testunit
local integer i=-1
loop
exitwhen i>=5
set i=i+1
call DisplayTextToForce(GetForceOfPlayer(GetOwningPlayer(u)),I2S(i))
call StoreInteger(udg_cache,"i",I2S(i),GetItemTypeId(UnitItemInSlot(u,i)))
endloop
endfunction


потом кастом даю итемы вызванному..
Код:
function ItemReturn takes nothing returns nothing
local integer p=GetPlayerId(GetOwningPlayer(GetTriggerUnit()))
local unit beast=I2U(GetStoredInteger(udg_cache,I2S(p),"EnragedBeast"))
local integer i=-1
loop
exitwhen i>=5
set i=i+1
call DisplayTextToForce(GetPlayersAll(),I2S(i)+"cast")
call UnitAddItemById(beast,GetStoredInteger(udg_cache,"i",I2S(i)))
endloop
set beast=null
endfunction


и зараза ничё не даёт=\=\
хотя еси то же самое дать тому же юниту с кого записал,то всё ок.. шозанах?
Старый 16.03.2008, 00:21
J
expert
offline
Опыт: 48,447
Активность:
ладно... уговорил... скажи в точности что тебе нужно и я сделаю пример
Старый 16.03.2008, 00:24
sleepw

offline
Опыт: 8,449
Активность:
юнит умирает,пишем все предметы 0-5
кастуем: даём записанное.

ну ёпт тут имхо пример ненадо.. я его дольше под спелл буду править,всё работает но вот чёто именно в спелле нехочед.

sleepw добавил:
всё понял.. зараза как плохо быть невнимательным.. в начале спелла хендл а потом юзнул гет плеер айди.. ну не дебил ли я?=\
Старый 16.03.2008, 00:28
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
юнит умирает,пишем все предметы 0-5
кастуем: даём записанное.

очень исчерповающе

Jon добавил:
все сделал? ну слава богу...
Старый 16.03.2008, 00:30
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 16:48.