Как сделать?
…
Доброго времени суток! Возможно я не по теме, но помогите пожалуйста!!! Во время создания игры через Qgen, был перезагружен пк. Теперь файл игры не открывается, пишет ошибку 105. Как восстановить файл? Игра разрабатывалась несколько лет!!!
HronoStranger,
спасибо большое за помощь, у меня появился новый вопрос. Тех, с кем игрок подружился, он может добавить в группу. Но мне необходимо, чтобы когда игрок распускает группу, добавленные нпс из нее удалялись.
Добавляются в группу они так:
friendactor[id]=1
и нпс в команде может быть несколько. Но добавляются они в локации управления отношениями с конкретным нпс, а распускается группа - совсем в другой локации. Я так понял, что мне нужно перебором массивов найти те записи массива friendactor[id] у которых значение=1.
Это, как я понял, это можно сделать так:
ARRPOS('friendactor',1)
а вот как мне дальше массово поменять значение 1 на 0?
Спасибо!
7Юрий3:
Доброго времени суток! Возможно я не по теме, но помогите пожалуйста!!! Во время создания игры через Qgen, был перезагружен пк. Теперь файл игры не открывается, пишет ошибку 105. Как восстановить файл? Игра разрабатывалась несколько лет!!!
Блокнотом можешь открыть?
jazzy77,
:mark
a=ARRPOS('friendactor',1)
if a!-1:
friendactor[a]=0
jump'mark'
end
Этот код перелопатит весь массив friendactor и все значения 1 поменяет на 0.
jazzy77,
ARRPOS не совсем подойдет. Возможна ошибка, при которой будет возвращаться только первый индекс.
Постараюсь расписать попроще.
Перебор:
x = 0
:Lusia
If friendactor[x] = 1: friendactor[x] = 0
If x <= arrsize('friendactor') + 1: x += 1 & jump 'Lusia'
Это можно записать в отдельной локации. В локации-управлении группой делаем ссылку или ‘Act’ (распишу как однострочное действие) с данным кодом:
Act 'Распустить группу': gs '[имя локации с перебором]' & gt $curloc
*$curloc в кавычки брать не нужно. Код будет работать и в ссылке, но тогда имя локации-перебор нужно брать в две единичные (или две двойные) кавычки.
А теперь спойлер:
Spoiler
Перебор не нужен, если все значения массива необходимо обнулить. Просто в действие пишем ‘killvar “friendactor”’. (одинарные кавычки убираем) И следом обновляем локацию.
Но спойлер не просто так) Я не знаю архитектуру. Советую попробовать оба способа. Если “киллвар” не вызовет ошибок или артефактов (а скорее, не вызовет), то можно оставить его. В противном случае - перебор.
HronoStranger,
dmvikar,
спасибо, действительно, сработал killvar :) Я как-то этой функции побаивался - по серости предполагал, что она удаляет массив, а не обнуляет его :) теперь буду умнее.
jazzy77,
Вообще-то, именно удаляет. Просто в qsp все несуществующие значения числовых переменных равны нолю.
Notepad++ открывает.
dmvikar:
Блокнотом можешь открыть?
Да notepad ++ открывает
7Юрий3,notepad открывает читаемый или кодированный?
Если кодированный, то вот ссылка для расшифровки: https://codepen.io/srg-kostyrko/full/QWqdwxv
Скопируй раскодированное в txt и скачай конвертер - http://qsp.su/attachments/txt2gam011.zip
Открой куген, игра, импорт, импорт TXT2GAM, выбери текстовый файл, потом файл конвертера, тот что скачаешь.
dmvikar, кодированный. Перехожу по первой ссылке. Там выберите файл. Какой файл нужен: сам qsp или текстовый, полученный из qsp ?
7Юрий3,
qsp
dmvikar,
Странно! Ни чего не происходит. Выбираю файл qsp и всё ни какой реакции.
7Юрий3,
Скинь файл в личку мне или зайди в дискорд.
dmvikar,
Хорошо, скинь тег диса.