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

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

Ответ
 
ScorpioT1000
Работаем
offline
Опыт: отключен
Так это все ясно, тока непонятно:
Цитата:
Character - An ASCII character between '' represents its correspondant number from 0 to 255, example: 'A'==65 , '<'==60 . Note that certains bytes inside the script file will cause major errors

Можно попонятнее?

4 чара - это я понял 4 знака числа чар
А как чар переводить и ваще что это такое..
Старый 24.01.2008, 20:26
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
чарактер - тоже число, принимает значения от 0 до 255, (либо от -127 до 127, если чар знаковый. В варе беззнаковые, а значит - от 0 до 255) каждому значению соответствует какой то символ в кодировке ASCII
Например, значению decimal integer = 100 соответствует unsigned character 'd'

FellGuard добавил:
причем, когда мы записываем десятичные числа, мы используем напимер в десятичной системе счисления запись
local integer i = 100
хотя с тем же успехом можем записать
local integer i = 'd'

FellGuard добавил:
Цитата:
Note that certains bytes inside the script file will cause major errors
судя по всему автор JASS Api против использования простых (неравкодных) чаракеторв в коде, они-де могут причинить ошибки. Ну наверное так, я никогда чаракерами не пользуюсь, можно и в десятичной писать. Другое дело ,когда речь идет о равкодах.
Старый 24.01.2008, 20:58
ScorpioT1000
Работаем
offline
Опыт: отключен
Ну а какой принцип? Как их переводить-то?
Есть проги/статьи?
Старый 24.01.2008, 21:03
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
переводить? есть ascII таблица символов, щас наклепаю прожку чтобы выводила.
вообще, статьи есть. Character - один из базовых (скалярных) типов даных в Си
Старый 24.01.2008, 21:43
adic3x

offline
Опыт: 108,439
Активность:
Цитата:
любой 16-риный текстовый редактор

ну ты отжог вобщем)

выкладывается первый и последний раз

DEAD URL
(с)тыренно из документации веу

'A000'==0x41303030 как пример

ADOLF добавил:
char - тип, занимающий один байт (восемь битов) а соответсвенно может принимать 2^8 (256) значений

integer в варе знаковый т.е. 31 бит + 1 бит на знак т.е. он в его числовом значение может принимать от -2^31 до 2^31

равкод - это интегер.

что бы перевести (представить) равкод в другой сисме (к примеру хекс) просто ставим место каждого чара значения из выложенной мною таблицы (никакие проги ^^)

мне лично удобней указывать равкоды в хексе

ADOLF добавил:
а, да, самое главное, скачайте NewGenWE - там можно при создание нового обьекта в ОЕ вводить равкод ручками (а не получать то кг/ам, которое генерит ве) вобщем неоценимо удобно
Старый 25.01.2008, 13:06
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Цитата:
росто ставим место каждого чара значения из выложенной мною таблицы (никакие проги ^^)
мухаха wasting of time

FellGuard добавил:
раз уж ты тут начал писать про байтовое представление типов в памяти написал бы еще про unsigned...
Цитата:
может принимать 2^8 (256) значений
один бит не учитывается, идет как знак смены операции в signed-char-ах
Старый 25.01.2008, 13:20
Kreker

offline
Опыт: 3,614
Активность:
Кстати, при вводе в команду равкод, например: 0x41303030, то не надо же ставить не ", не ' ?
Старый 25.01.2008, 13:26
adic3x

offline
Опыт: 108,439
Активность:
0 число - восмиричная
число - десятичная
0х число - шестандцатиричная
'число' - двухсотпятидесятишестиричная
Старый 25.01.2008, 13:30
Kreker

offline
Опыт: 3,614
Активность:
А можно как-нибудь изменить ID предмета или как-нибудь на него повлиять? (вобщем: от чего зависит, какой будет у предмета ID?).

Kreker добавил:
ADOLF то есть в этой команде всё правильно написано?
Код:
call UnitAddItemToSlotById(udg_u,0x49303059,5)
Старый 25.01.2008, 13:35
adic3x

offline
Опыт: 108,439
Активность:
да вроде (я не знаю что в остальном коде) - юниту у будет добавлен итем 'I00Y' в последний слот
Старый 25.01.2008, 13:40
Kreker

offline
Опыт: 3,614
Активность:
Спасибо. А насчет этого что-нибудь известно?
Цитата:
А можно как-нибудь изменить ID предмета или как-нибудь на него повлиять? (вобщем: от чего зависит, какой будет у предмета ID?).
Старый 25.01.2008, 13:53
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Kreker, его идентификатор-равкод однозначен при создании типа предмета в РО.
Иными словами, ты создал предмет в Редавторе Объектов, вар ему автоматически присовил ид. Все, теперь оно постоянно, разве что ты можешь сам вручную потом его изменить уже не в ВЕ - есть несколько способов.
Большинство способов осуществляется с помощью утилит Нетрата :) таких как WC3 Object Merge

Суть смены равкодов следующая - потрошится файл war3Map.w3o (насколько я помню), в котором хранятся все данные о нестандартных объектах (в т.ч. их идентификаторы-равкоды), распотрошенный файл либо преобразуется, либо данные из него переносятся в slk-таблицу, хранящую все стандартные данные об объектах данного типа (напимер, предметы); исходный war3Map.w3o удаляется, а в карту добавляется тот самый slk с добавленными туда данными из war3Map.w3o.
В процессе преобразования файлов некоторые параметры можно менять, в частности, программы Нетрата способны красиво пачками и единично заменять генерированные равкоды типа I000 на какие-то другие, какие ты выберешь сам.

Отредактировано FellGuard, 25.01.2008 в 14:36.
Старый 25.01.2008, 14:30
Kreker

offline
Опыт: 3,614
Активность:
FellGuard спасибо, но мне не обязательно изменять его, мне нужно хотя бы создать предмет с равкодом который мне нужен (просто я думал, что равкод зависит от чего-то (названия, например)), я подумал, что такое возможно, потому что WE дает равкоды предметам как-то не по порядку)
Старый 25.01.2008, 14:47
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Именно по возрастанию он их и генерирует. Впринципе, утилита не сложная, работает с w3o (тоесть перегоняет все равкоды типа '%000' в '%$$$', не экспортируя в slk а запихвая обратно в w3о, ричем если в триггерах или гдето еще есть обращение к этому равкоду, она заменит и его). Досаточно простая и неопасная много раз тестилась, так что овладевай :)
хотя как излагал Адольф, если равкод вычисляется арифметически то конечно проще использвать стандартную РО-шную нумерацию
Старый 25.01.2008, 14:56
Kreker

offline
Опыт: 3,614
Активность:
FellGuard спасибо, WC3 Object Merge помог

Kreker добавил:
Теперь осталось разобраться с системой Warden 'a (почему-то по его ситеме не хотят добавляться нестандартные предметы ), и скорее всего мой слотовый инвентарь будет оптимизирован)

Kreker добавил:
Я ошибся, система Warden'a работает, только жалко, что итемы регестрировать надо
Старый 25.01.2008, 18:16
adic3x

offline
Опыт: 108,439
Активность:
Цитата:
Kreker, его идентификатор-равкод однозначен при создании типа предмета в РО.
Иными словами, ты создал предмет в Редавторе Объектов, вар ему автоматически присовил ид. Все, теперь оно постоянно, разве что ты можешь сам вручную потом его изменить уже не в ВЕ - есть несколько способов.
Большинство способов осуществляется с помощью утилит Нетрата :) таких как WC3 Object Merge

гхкхм, я же писал что для этой цели используется НьюГен ве - там при создании итема предлагается ввести равкод самому
Старый 25.01.2008, 22:08
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
блин, ну почему я не пользуюсь НьюГеном -.- вар старый, надо обновлять..
сорри -.-
Старый 26.01.2008, 08:37
Kreker

offline
Опыт: 3,614
Активность:
ADOLF а я не пользуюсь NewGen'ом, потому что на варке NoCD стоит...
Старый 26.01.2008, 11:50
adic3x

offline
Опыт: 108,439
Активность:
Цитата:
блин, ну почему я не пользуюсь НьюГеном -.- вар старый, надо обновлять..

у самого старый ^^ на .17 и .18 идет впринципе стабильно...
Kreker, ну купи норм вар)
Старый 26.01.2008, 13:23
Ответ

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

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

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

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



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