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

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

Закрытая тема
 
R2on

offline
Опыт: 111
Активность:
изменение параметра в другой
Здравстуйте! возможно ли какой-либо параметр перевести в строковый стринг? мне надо сделать динамичную команду, что бы она реагировала на количество золота, т.е. например если у меня 300 золота, то я ввожу в чате "q300", то происходило указанное действие. а если золота уже не 300, a 659 то сколько не пиши "q300", команда активироваться не будет. а вот если уже написать "q659", то команда будет активирована.
вот я накатал приблизительный код, но он не работает из-за ряда ошибок, которых я не могу найти в силу своей природной тупости
string OMG1
string OMG2
set OMG2=GetPlayerState(GetTriggerPlayer(),PLAYER_STATE_RESOURCE_GOLD)
set OMG1="q"+OMG2
if SubString(GetEventPlayerChatString(),0,100)==OMG1 then
........
endif
может всё дело в том, что нельзя ресурсу присваивать параметр стринг? огромная просьба, помогите написать код
Старый 30.06.2011, 21:46
Helpmeplz

offline
Опыт: 11,738
Активность:
Код:
native I2S takes integer i returns string
native R2S takes real r returns string
native R2SW takes real r, integer width, integer precision returns string
Старый 30.06.2011, 21:53
R2on

offline
Опыт: 111
Активность:
спасибо, но я не слишком на высоком уровне для jass и такие намеки пока не понимаю. в моём случае код будет выглядеть так?
globals
string OMG1
string OMG2
endglobals
function OMG3 takes nothing returns nothing
native GetPlayerState(GetTriggerPlayer(),PLAYER_STATE_RESOURCE_GOLD) takes nothing returns string
set OMG2=GetPlayerState(GetTriggerPlayer(),PLAYER_STATE_RESOURCE_GOLD)
set OMG1="q"+OMG2
if SubString(GetEventPlayerChatString(),0,100)==OMG1 then
........
endif
endfunction
----------------------------------------------------------------------------------------------------​----------------
или:
globals
string OMG1
string OMG2
endglobals
function OMG3 takes nothing returns nothing
native GetPlayerState(GetTriggerPlayer(),PLAYER_STATE_RESOURCE_GOLD) takes nothing returns OMG2
set OMG1="q"+OMG2
if SubString(GetEventPlayerChatString(),0,100)==OMG1 then
........
endif
endfunction
если вам не трудно, пожалуйста распишите поподробнее
Старый 30.06.2011, 22:10
Helpmeplz

offline
Опыт: 11,738
Активность:
в вашем случае будет не
Код:
set OMG2=GetPlayerState(GetTriggerPlayer(),PLAYER_STATE_RESOURCE_GOLD)

а
Код:
set OMG2=I2S(GetPlayerState(GetTriggerPlayer(),PLAYER_STATE_RESOURCE_GOLD))
Старый 30.06.2011, 22:16
R2on

offline
Опыт: 111
Активность:
Helpmeplz, Спасибо Вам огромное! заработало! только native там вообще не понадобилось
globals
string OMG1
string OMG2
endglobals
function OMG3 takes nothing returns nothing
set OMG2=I2S(GetPlayerState(GetTriggerPlayer(),PLAYER_STATE_RESOURCE_GOLD))
set OMG1="q"+OMG2
if SubString(GetEventPlayerChatString(),0,100)==OMG1 then
........
endif
endfunction
Старый 30.06.2011, 22:27
Helpmeplz

offline
Опыт: 11,738
Активность:
native значит что функция вшита в движок игры.
это слово никак не используется в коде
Старый 30.06.2011, 22:34
Закрытая тема

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

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

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

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



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