Как сделать?
…
Aaaspavel,
в момент смены одного дня на другой меняешь маркер:
нечётность = 1 - нечётность
если нечётность = 1 - хайд, если нечётность = 0 - джеккил.
Пипец! Случайно сдвинул окно действий, оно вылезло как отдельное окно теперь. Как его вернуть на место?
Разобрался. Кфг-шку снес.
if $selobj='Инвентарь':
end
unsel
Как через код заставить сработать объект? Есть инвентарь и при работе с ним нужно перезагружать инвентарь иначе не очень удобно каждый раз его открывать.
DaGrozz,
В смысле перезагружать? Можешь дать пример, в игровых условиях?
DaGrozz,
напиши отдельную локацию для вывода инвентаря. И всякий раз при необходимости вывести инвентарь, вызывай её.
Aleks Versus:
DaGrozz,
напиши отдельную локацию для вывода инвентаря. И всякий раз при необходимости вывести инвентарь, вызывай её.
Ну да. Инвентарь можно закатать в какую нибудь локу, которую будешь вызывать либо селобектом, либо просто госаб на эту локу. Спасибо. А то что то, чем дальше в лес, тем сильнее туплю.
Ошибка 123
Слишком много переменных с одинаковым хэшем!
Через 3 игровых дня начинает ругаться на эту строку.
!код добавляющий нпс на локацию
dynamic '$loc_<<X[num]>>_<<Y[num]>>_<<Z[num]>>_<<R[num]>>[] = num'
А это ядро движка. Именно создавая массив для каждой локации и впиывая туда ИД нпс, я и могу сделать взаимодействие нпс друг с другом. Что не так? И как обойти эту ошибку? Может через игровые сутки килвар устраивать, да заново создавать массив?
!код удаляющий нпс с локации
st= arrsize('$loc_<<X[num]>>_<<Y[num]>>_<<Z[num]>>_<<R[num]>>')
dynamic'
temp=0
t=-1
:markdolnpc
if $loc_<<X[num]>>_<<Y[num]>>_<<Z[num]>>_<<R[num]>>[temp]!num and temp<=st:temp+=1&jump''markdolnpc''
if $loc_<<X[num]>>_<<Y[num]>>_<<Z[num]>>_<<R[num]>>[temp]=num and temp<=st:t=temp
if t!-1:killvar(''$loc_<<X[num]>>_<<Y[num]>>_<<Z[num]>>_<<R[num]>>''), t
'
Эти два кода работают в связке. При входе на локацию удаляем нпс из старого массива (2й код), и добавляем его (1й код) на новую локацию. И именно обработка этого массива позоляет существенно облегчить код. Нпс не нужно прогонять весь список нпс для того, что бы узнать кто на локации кроме него находится.
DaGrozz,
Я бы, через условие, ограничил бы количество, да и все.
Oliver:
DaGrozz,
Я бы, через условие, ограничил бы количество, да и все.
Количество чего бы ты ограничил??? Этот массив создается на ходу, его даже удалить без цикла через killvar не возможно.
Сейчас я даже сделал полное удаление массива через цикл каждый час, но один черт на третий день вылетает ошибка. Я даже понятия не имею, что его может переполнить. нпс 2500, а предельный индекс массива 2 миллиарда.
DaGrozz,
В массиве ведь что то храниться, верно?
X[num] - это, как я понял переменные координат(дурак может быть, новичЕк, пытается наставить Мастера, да где это слыханно!!
Попробуй их то и ограничить.
Oliver:
DaGrozz,
В массиве ведь что то храниться, верно?
X[num] - это, как я понял переменные координат(дурак может быть, новичЕк, пытается наставить Мастера, да где это слыханно!!
Попробуй их то и ограничить.
Они и так ограниченны. Вся сетка от 1 до 50. И почему то хватает на три дня игры. Карта то не увеличивается, и количество нпс не прибавляется. Но советы у тебя действительно в духе одного героя Булгакова. Взять все, и поделить.
DaGrozz,
Ограничения QSP
Nex:
Количество переменных ограничено 12800, при этом не допускается более 50 переменных с одинаковым хэшем имени.
Количество элементов массива ограничено размерностью “int”, в зависимости от того, как собрана библиотека, 32768 или 2147483648 соответственно.
evp:
DaGrozz,
Ограничения QSPNex:
Количество переменных ограничено 12800, при этом не допускается более 50 переменных с одинаковым хэшем имени.
Количество элементов массива ограничено размерностью “int”, в зависимости от того, как собрана библиотека, 32768 или 2147483648 соответственно.
То есть у меня получается 50 одинаковых переменных. Блин. И как это обойти?
DaGrozz:
То есть у меня получается 50 одинаковых переменных. Блин. И как это обойти?
не 50 одинаковых переменных, а 50 переменных с одинаковым хэшем имени.
Это можно попробовать обойти генерируя постфикс имени переменной случайным образом, но тогда придётся завести массив, где будут храниться сгенерированные постфиксы для удобства поиска.