agentex
offline
Опыт:
34,834Активность: |
Трабл с равкодами
Задача:
просканировать все нестандартные абилы и предметы в карте, и если имена какойто пары абила-предмет совпадают, занести равкоды абилы и предмета в соотв. переменные. Устройство функции: 1) во внешнем цикле создается предмет с равкодом id и заносится в переменную it. 2) идет проверка на классификацию предмета it, если он из усиливающих \ только для камп., то срабатывает внутренний цикл. 3) (тут то и трабл) начиная с равкода 'A000' происходит перебор всех (но на самом деле получается не всех) нестандартных абилок, если имя предмета it равно имени абилы с равкодом abid происходит занесение равкодов абилы и итема в переменные udg_ABLS_humanitems[] udg_ABLS_humanspells[] либо udg_ABLS_hordeitems[] udg_ABLS_hordespells[]. Код:
Проблема: Внешний цикл работает нормально, все предметы в карте определяются. А вот при переборе ракодов абил происходит какойто глюк и внутр. цикл срабатывает только до какойто абилы, предположительно после нее происходит зацикливание, следовательно какието равкоды цикл обходит стороной либо пропускает... Вопрос: как избавится от ручного перехода: Код:
и вообще какие действия нужно производить с равкодами (уж точно не прибавление 1) чтобы со 100% вероятностью пройтись по равкодам ВСЕХ ОБЬЕКТОВ? вобщем прошу - исправьте как надо эту функцию) P.S. все имена предметов совпадают с именами соотв. абил, проверено 3 раза. P.S.2. равкоды абил находятся в пределе 'A03Z' (хм если конешно это предел для моего случая в этой си) agentex добавил: ау где жассеры то? Отредактировано agentex, 21.08.2008 в 14:24. |
21.08.2008, 14:26 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
попробуй это... я неуверен ибо писал просто так =) т.е. не тестил.
Код:
Toadcop добавил: еее вот в таких случиях как раз удобно юзать hex =) когда числа являютьса степению 2ойки. |
21.08.2008, 14:45 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
ладно спс буду разбираться т.е. в raw под вторым циклом будет находится следующий равкод? |
21.08.2008, 15:06 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
Цитата:
|
|
21.08.2008, 15:10 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
exitwhen i>10 // optional // set charz[10]='A' aka last will be 'A0AZ'
а это означает что после 'A0AZ' будет ити равкод 'A0B0' ? я просто не очень понимаю как распределяются разряды в равах agentex добавил: а это rawblank='A'*0x1000000+'0'*0x10000 для меня вообще загадка =) agentex добавил: слух еще вопрос был в exitwhen "or" катит? ну т.е. exitwhen i>5 or GetItemName(it) == GetObjectName(raw) будет корректно работать? agentex добавил: УРАА! заработало!!! Респектище тебе! всегото нужно было в одном месте добавить i=0 и адаптировать твою ф-ию для моего тригера Отредактировано agentex, 21.08.2008 в 15:43. |
21.08.2008, 16:06 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
Цитата:
agentex ну и зашибись =) |
|
21.08.2008, 18:39 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
http://xgm.guru/articles.php?section=wc3&name=about_int )))
сабж, равкоды идут вообще по нетрадиционным числам т.е. скажем равкод с чаром 00h (ака конец строки) невозможен собстно Тс и предложил цикл по чарам... можно поинтересоваться целью такой работы? ведб все равдоды la'defined, и мб это можно решить иначе |
21.08.2008, 18:59 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
Цитата:
нет я имею ввиду впринципе какой будет после нее ити равкод, ну например если через РО добавить еще абилу ADOLF не у меня просто мапа с системой покупки заклинаний (и последующей прокачкой через +), а для нее нужно присвоить этим переменным udg_ABLS_humanitems[] udg_ABLS_humanspells[] udg_ABLS_hordeitems[] udg_ABLS_hordespells[]. уникальные itemId и AbilityId соответственно. Собсна до этого приходилось вручную задавать каждую пару абила\предмет, а это довольно геморно, особенно если у тя 100+ скилов |
|
21.08.2008, 20:02 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
дык я бы либо создавал все равкоды как я писал встатье (ссыль выше, тебе же их всеравно создавать, зри пример про артефакт и юнита) либо конвертнул бы в слк и там руками легко править (много легче чем в ОЕ) |
21.08.2008, 20:12 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
да, смотрел я твою статью но почти ниче там непонял (либо лень было вьезжать) хм а разве после конверта в слк и импорта в мапу работа в обычном РО будет возможна? (ну вернее при загрузке то данные будут браться из слк, т.е. каждый раз после внесения изменений придется конвертить + импортить что некатит) |
21.08.2008, 20:31 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Цитата:
нет Цитата:
вносить изменения сразу в слк и импортить, что очень даже катит (импорт вполне окупается по времени благодаря отсутсвием лагов в екселе и кучей их же в ОЕ) Цитата:
нокоент=/ |
|||
22.08.2008, 00:24 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|