Как прицепить integer к типу юнита? И потом считать его?

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

Через хеш, структура + поиск по всем структурам медленнее будет.
globals
    key AttachIntParentKey
endglobals

function AttackInt takes integer rawcode, integer i returns nothing
    call SaveInteger(Hash, AttachIntParentKey, rawcode, i)
endfunction

function GetAttachedInt takes integer rawcode returns integer
    return LoadInteger(Hash, AttachIntParentKey, rawcode)
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
7
4 года назад
Отредактирован Haikyo
1
Создать структуру, в которой будет храниться два int'а. Первый инт это ваше число, второй инт это тип юнита.
Имея тип юнита, вы можете перебором структур найти нужную структуру, а потом оттуда достать инт.
Примерный код:
struct UnitType
	int typeid
	int number
	
int func() 
	local id = GetTriggerUnit().GetTypeId()
	i = 0
	while (i < 100)
		if i.typeid == id
			return i.number
За ошибки извиняюсь, jass не мой родной язык.
5
28
4 года назад
Отредактирован PT153
5
Через хеш, структура + поиск по всем структурам медленнее будет.
globals
    key AttachIntParentKey
endglobals

function AttackInt takes integer rawcode, integer i returns nothing
    call SaveInteger(Hash, AttachIntParentKey, rawcode, i)
endfunction

function GetAttachedInt takes integer rawcode returns integer
    return LoadInteger(Hash, AttachIntParentKey, rawcode)
endfunction
Принятый ответ
1
11
4 года назад
1
Медленнее? Для глаза хотя бы заметно это?:) Постоянно удивляет этот байтодрочинг :) Который по факту в самой игре вообще никто не заметит - пример тому Дотка от Фрога :) Играется уже больше десятка лет, код супер-топорный, но не видел еще ни одной жалобы на то, что че то медленно работает, типа - "Ребят, у вас тут код надо исправить, медленно работает, сделайте через ХТ, а то эти 0.02 секунды слишком сильно влияют на мое АПМ в игре".
2
17
4 года назад
Отредактирован Vlod
2
При большом количестве элементов поиск перебором оборвет поток исполнения, или код PT153 настолько сложный?
0
7
4 года назад
0
Vlod, ну можно тогда использовать бинарный поиск, намного быстрее будет
0
11
4 года назад
0
Хз через структуры делал целые БД для всех юнитов на карте и для всех айтемов, по 2.5 часа игры длились - и ничего не обрывалось и не начинало лагать. А тут вдруг начнет... Ну ок
0
7
4 года назад
0
Мне помнится наоборот писали, что структуры быстрее будут, не уверен, что это так
Но в случае, если прикрепить нужно не одну цифру, а большее количество различных данных, хранить их в структуре будет эффективнее
0
20
4 года назад
0
PT153:
Через хеш, структура тут медленнее будет.
globals
    key AttachIntParentKey
endglobals

function AttackInt takes integer rawcode, integer i returns nothing
    call SaveInteger(Hash, AttachIntParentKey, rawcode, i)
endfunction

function GetAttachedInt takes integer rawcode returns integer
    return LoadInteger(Hash, AttachIntParentKey, rawcode)
endfunction
спасибо, про хэшки совсем запамятовал

respect_gg:
Постоянно удивляет этот байтодрочинг :)
в этом вся суть XGM
1
11
4 года назад
1
Haikyo:
Мне помнится наоборот писали, что структуры быстрее будут, не уверен, что это так
Но в случае, если прикрепить нужно не одну цифру, а большее количество различных данных, хранить их в структуре будет эффективнее
В этом и суть, я через структуры привязывал к юнитам (абсолютно к любым, которые были задействованы в карте) в районе 20-25 характеристик, так же у каждого айтема бонусы были сделаны через БД структуры - и как итог никаких лагов, никто не жаловался что че то медленно работает. Все летало и работало как часы. А весь этот байтодрочинг оставьте комьюнити, пусть хоть чем то займутся :)
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.