RU 📌 Pinned

Как сделать?

Dark[Ol(U23)leneri] #34 18.04.2010 22:57 6408 comments 2425186 views

Подскажите, пожалуйста, есть ли функция для получения суммы (содержимого) всех ячеек массива? Что-то не могу найти ничего похожего в справке.

Aleks Versus Moderator 30.01.2023 05:49 (3 years ago)

ss4,
таких функций в самом плеере нет, но ты всегда можешь написать собственную функцию: https://wiki.qsp.org/help:organizing

Также можешь воспользоваться уже написанной функцией из моей библиотечки easy.math:

Aleks Versus,
Спасибо! Очень помогло.

по какой то неведомой причине, финальное отображение кнопки не появляется после проверки там где нужно, а тупо оказывается под таблицей мож я тупой, или синтаксис поменялся?

КОД

Spoiler
*nl'<table border="0" cellpadding="0" cellspacing="0"/>'
  *p'<tr>'
    *p'<td><img src="pic/Other/GSmenu/1.png" /></td>'
    *p'<td><img src="pic/Other/GSmenu/2.png" /></td>'
    *p'<td><img src="pic/Other/GSmenu/3.png" /></td>'
  *p'</tr>'
  if 0 = 0:
  *p'<tr>'
    *p'<td><img src="pic/Other/GSmenu/4.png" /></td>'
    *p "<a href='EXEC: a = 1 & gosub ""Gmenu"" '>"+"<img src='pic/Other/GSmenu/5.png' ></a>"
    *p'<td><img src="pic/Other/GSmenu/6.png" /></td>'
  *p'</tr>'
  end
  *p'<tr>'
    *p'<td><img src="pic/Other/GSmenu/7.png" /></td>'
    *p'<td><img src="pic/Other/GSmenu/8.png" /></td>'
    *p'<td><img src="pic/Other/GSmenu/9.png" /></td>'
  *p'</tr>'
  *p'<tr>'
    *p'<td><img src="pic/Other/GSmenu/10.png" /></td>'
    *p'<td><img src="pic/Other/GSmenu/11.png" /></td>'
    *p'<td><img src="pic/Other/GSmenu/12.png" /></td>'
  *p'</tr>'
  *p'<tr>'
    *p'<td><img src="pic/Other/GSmenu/13.png" /></td>'
    *p'<td><img src="pic/Other/GSmenu/14.png" /></td>'
    *p'<td><img src="pic/Other/GSmenu/15.png" /></td>'
  *p'</tr>'
  *p'<tr>'
    *p'<td><img src="pic/Other/GSmenu/16.png" /></td>'
    *p'<td><img src="pic/Other/GSmenu/17.png" /></td>'
    *p'<td><img src="pic/Other/GSmenu/18.png" /></td>'
  *p'</tr>'
  *p'<tr>'
    *p'<td><img src="pic/Other/GSmenu/19.gif" /></td>'
    *p'<td><img src="pic/Other/GSmenu/20.gif" /></td>'
    *p'<td><img src="pic/Other/GSmenu/21.gif" /></td>'
  *p'</tr>'
  *p'<tr>'
    *p'<td><img src="pic/Other/GSmenu/22.gif" /></td>'
    *p'<td><img src="pic/Other/GSmenu/23.gif" /></td>'
    *p'<td><img src="pic/Other/GSmenu/24.gif" /></td>'
  *p'</tr>'
*p'</table>'

Результат

Spoiler

Справился сам

Spoiler
*p' <table align="center" border="0" cellpadding="0" cellspacing="0">'
*p'   <tr>'
*p'     <td><img alt="" src="pic/Other/GSmenu/1.png" style="width: 250px;"></td>'
*p'     <td><img alt="" src="pic/Other/GSmenu/2.png" style="width: 167px;"></td>'
*p'     <td><img alt="" src="pic/Other/GSmenu/3.png" style="width: 265px;"></td>'
*p'   </tr>'
*p' <tr border="0" cellpadding="0" cellspacing="0">'
*p' <td style="height: 29px"><img alt="" src="pic/Other/GSmenu/4.png" style="width: 250px; height: 29px;"></td>'
*p' <td><a href="EXEC: temp = 5 & gosub ""Gmenu"" "><img alt="" src="pic/Other/GSmenu/5.png" style="height: 29px; width: 167px;"></a></td>'
*p' <td style="height: 29px"><img alt="" src="pic/Other/GSmenu/6.png" style="width: 265px; height: 29px;"></td>'
*p' </tr>'
*p'   <tr>'
*p'     <td><img alt="" src="pic/Other/GSmenu/7.png" style="width: 250px;"></td>'
*p'     <td><a href="EXEC: temp = 8 & gosub ""Gmenu"" "><img alt="" src="pic/Other/GSmenu/8.png" style="width: 167px;"></a></td>'
*p'     <td><img alt="" src="pic/Other/GSmenu/9.png" style="width: 265px;"></td>'
*p'   </tr>'
*p'   <tr>'
*p'     <td><img alt="" src="pic/Other/GSmenu/10.png" style="width: 250px;"></td>'
*p'     <td><a href="EXEC: temp = 11 & gosub ""Gmenu"" "><img alt="" src="pic/Other/GSmenu/11.png" style="width: 167px;"></a></td>'
*p'     <td><img alt="" src="pic/Other/GSmenu/12.png" style="width: 265px;"></td>'
*p'   </tr>'
*p'   <tr>'
*p'     <td><img alt="" src="pic/Other/GSmenu/13.png" style="width: 250px;"></td>'
*p'     <td><a href="EXEC: temp = 14 & gosub ""Gmenu"" "><img alt="" src="pic/Other/GSmenu/14.png" style="width: 167px;"></a></td>'
*p'     <td><img alt="" src="pic/Other/GSmenu/15.png" style="width: 265px;"></td>'
*p'   </tr>'
*p'   <tr>'
*p'     <td><img alt="" src="pic/Other/GSmenu/16.png" style="width: 250px;"></td>'
*p'     <td><a href="EXEC: temp = 17 & gosub ""Gmenu"" "><img alt="" src="pic/Other/GSmenu/17.png" style="width: 167px;"></a></td>'
*p'     <td><img alt="" src="pic/Other/GSmenu/18.png" style="width: 265px;"></td>'
*p'   </tr>'
*p'   <tr>'
*p'     <td><img alt="" src="pic/Other/GSmenu/19.gif" style="width: 250px;"></td>'
*p'     <td><a href="EXEC: temp = 20 & gosub ""Gmenu"" "><img alt="" src="pic/Other/GSmenu/20.gif" style="width: 167px;"></a></td>'
*p'     <td><img alt="" src="pic/Other/GSmenu/21.gif" style="width: 265px;"></td>'
*p'   </tr>'
*p'   <tr>'
*p'     <td><img alt="" src="pic/Other/GSmenu/22.gif" style="width: 250px;"></td>'
*p'     <td><a href="EXEC: temp = 23 & gosub ""Gmenu"" "><img alt="" src="pic/Other/GSmenu/23.gif" style="width: 167px;"></a></td>'
*p'     <td><img alt="" src="pic/Other/GSmenu/24.gif" style="width: 265px;"></td>'
*p'   </tr>'
*p' </table>'

тперь в белые полосы, типо стыков свеху и снизу у 2 6 7 ряд. пока хз как решить

Aleks Versus Moderator 15.03.2023 09:02 (2 years ago)

Преформатирование не внутри строки делай, а в коде QSP. Не:

*p'   <tr>'
*p'     <td><img alt="" src="pic/Other/GSmenu/22.gif" style="width: 250px;"></td>'
*p'     <td><a href="EXEC: temp = 23 & gosub ""Gmenu"" "><img alt="" src="pic/Other/GSmenu/23.gif" style="width: 167px;"></a></td>'
*p'     <td><img alt="" src="pic/Other/GSmenu/24.gif" style="width: 265px;"></td>'
*p'   </tr>'

а

*p'<tr>'
     *p'<td><img alt="" src="pic/Other/GSmenu/22.gif" style="width: 250px;"></td>'
     *p'<td><a href="EXEC: temp = 23 & gosub ""Gmenu"" "><img alt="" src="pic/Other/GSmenu/23.gif" style="width: 167px;"></a></td>'
     *p'<td><img alt="" src="pic/Other/GSmenu/24.gif" style="width: 265px;"></td>'
   *p'</tr>'

Насчёт белых полос не понял, приложи скриншот.

Спасибо!
Там проблема оказалась в ГИМПЕ, Он криво по направляющим нарезал, в некоторых картинках на 1 пиксель ошибся, пришлось в ручную резать проблемные части.
кастельнотельно кода, то проблему ссилками тоже решил. Просто там кавычки не так использовал.
вот результат (Пока не успел отступі переделать)

Spoiler
*p' <center><table align="center" border="10" cellpadding="0" cellspacing="0" style="width: 50%; height: 50%;">'
*p'<tr>'
*p'     <td><img alt="" src="pic/Other/GSmenu/1.png" ></td>'
*p'     <td><img alt="" src="pic/Other/GSmenu/2.png" ></td>'
*p'     <td><img alt="" src="pic/Other/GSmenu/3.png" ></td>'
*p'   </tr>'
*p'    <tr >'
*p'     <td style="height: 30px"><img alt="" src="pic/Other/GSmenu/4.png" ></td>'
*P"     <td><a href='EXEC:  temp = 5 & gosub ""Gmenu"" '>"+'<img alt="" src="pic/Other/GSmenu/5.png" >'+"</a></td>"
*p'     <td><a href="#" style="border:none;"><img alt="" src="pic/Other/GSmenu/6.png" ></a></td>'
*p'   </tr>'
*p'   <tr>'
*p'     <td><img alt="" src="pic/Other/GSmenu/7.png" ></td>'
*P"     <td><a href='EXEC:  temp = 8 & gosub ""Gmenu"" '>"+'<img alt="" src="pic/Other/GSmenu/8.png" >'+"</a></td>"
*p'     <td><img alt="" src="pic/Other/GSmenu/9.png" ></td>'
*p'   </tr>'
*p'   <tr>'
*p'     <td><img alt="" src="pic/Other/GSmenu/10.png" ></td>'
*P"     <td><a href='EXEC:  temp = 11 & gosub ""Gmenu"" '>"+'<img alt="" src="pic/Other/GSmenu/11.png" >'+"</a></td>"
*p'     <td><img alt="" src="pic/Other/GSmenu/12.png" ></td>'
*p'   </tr>'
*p'   <tr>'
*p'     <td><img alt="" src="pic/Other/GSmenu/13.png" ></td>'
*P"     <td><a href='EXEC:  temp = 14 & gosub ""Gmenu"" '>"+'<img alt="" src="pic/Other/GSmenu/14.png" >'+"</a></td>"
*p'     <td><img alt="" src="pic/Other/GSmenu/15.png" ></td>'
*p'   </tr>'
*p'   <tr>'
*p'     <td><img alt="" src="pic/Other/GSmenu/16.png" ></td>'
*P"     <td><a href='EXEC:  temp = 17 & gosub ""Gmenu"" '>"+'<img alt="" src="pic/Other/GSmenu/17.png" >'+"</a></td>"
*p'     <td><img alt="" src="pic/Other/GSmenu/18.png" ></td>'
*p'   </tr>'
*p'   <tr>'
*p'     <td><img alt="" src="pic/Other/GSmenu/19.gif" ></td>'
*P"     <td><a href='EXEC:  temp = 20 & gosub ""Gmenu"" '>"+'<img alt="" src="pic/Other/GSmenu/20.gif" >'+"</a></td>"
*p'     <td><img alt="" src="pic/Other/GSmenu/21.gif" ></td>'
*p'   </tr>'
*p'   <tr>'
*p'     <td><img alt="" src="pic/Other/GSmenu/22.gif" ></td>'
*p'     <td><img alt="" src="pic/Other/GSmenu/23.gif" ></td>'
*p'     <td><img alt="" src="pic/Other/GSmenu/24.gif" ></td>'
*p'   </tr>'
*p' </table></center>'

P.S - мы с тобой на ютубе про billder для txt2game говорили) хотелось бы узнать что думаешь, я уже выложил тему в средствах разработки. он уневерсальный,и лог батник добавил, что бы отображало какие файлы импортировало.

И вот рукапопый я снова тут!
все работает идеально, но адаптация размера… не работает.

Spoiler
# Gmenu
*clr


*p' <center><table align="center" border="0" cellpadding="0" cellspacing="0" style="height: 100%;" >'
  *p'<tr>'
    *p'<td><img alt="" src="pic/Other/GSmenu/1.png" style="height: 100%;"></td>'
    *p'<td><img alt="" src="pic/Other/GSmenu/2.png" style="height: 100%;"></td>'
    *p'<td><img alt="" src="pic/Other/GSmenu/3.png" style="height: 100%;"></td>'
  *p'</tr>'
  *p'<tr >'
    *p'<td style="height: 30px"><img alt="" src="pic/Other/GSmenu/4.png" style="height: 100%;"></td>'
    if temp = 5:
      *p'<td><img alt="" src="pic/Other/GSmenu/5a.png" style="height: 100%;"></td>'
    else
      *P"<td><a href='EXEC:  temp = 5 & gosub ""Gmenu"" '>"+'<img alt="" src="pic/Other/GSmenu/5.png" style="height: 100%;">'+"</a></td>"
    end
    *p'<td><img alt="" src="pic/Other/GSmenu/6.png" style="height: 100%;"></td>'
  *p'</tr>'
  *p'<tr>'
    *p'<td><img alt="" src="pic/Other/GSmenu/7.png" style="height: 100%;"></td>'
    if temp = 8:
      *p'<td><img alt="" src="pic/Other/GSmenu/8a.png" style="height: 100%;"></td>'
    else
      *P"<td><a href='EXEC:  temp = 8 & gosub ""Gmenu"" '>"+'<img alt="" src="pic/Other/GSmenu/8.png" style="height: 100%;">'+"</a></td>"
    end
    *p'<td><img alt="" src="pic/Other/GSmenu/9.png" style="height: 100%;"></td>'
  *p'</tr>'
  *p'<tr>'
    *p'<td><img alt="" src="pic/Other/GSmenu/10.png" style="height: 100%;"></td>'
    if temp = 11:
      *p'<td><img alt="" src="pic/Other/GSmenu/11a.png"style="height: 100%;" ></td>'
    else
      *P"<td><a href='EXEC:  temp = 11 & gosub ""Gmenu"" '>"+'<img alt="" src="pic/Other/GSmenu/11.png" style="height: 100%;">'+"</a></td>"
    end
    *p'<td><img alt="" src="pic/Other/GSmenu/12.png" style="height: 100%;"></td>'
  *p'</tr>'
  *p'<tr>'
    *p'<td><img alt="" src="pic/Other/GSmenu/13.png" style="height: 100%;"></td>'
    if temp = 14:
      *p'<td><img alt="" src="pic/Other/GSmenu/14a.png" style="height: 100%;"></td>'
    else
      *P"<td><a href='EXEC:  temp = 14 & gosub ""Gmenu"" '>"+'<img alt="" src="pic/Other/GSmenu/14.png" style="height: 100%;">'+"</a></td>"
    end
    *p'<td><img alt="" src="pic/Other/GSmenu/15.png" style="height: 100%;"></td>'
  *p'</tr>'
  *p'<tr>'
    *p'<td><img alt="" src="pic/Other/GSmenu/16.png" style="height: 100%;"></td>'
    if temp = 17:
      *p'<td><img alt="" src="pic/Other/GSmenu/17a.png" style="height: 100%;"></td>'
    else
      *P"<td><a href='EXEC:  temp = 17 & gosub ""Gmenu"" '>"+'<img alt="" src="pic/Other/GSmenu/17.png" style="height: 100%;">'+"</a></td>"
    end
    *p'<td><img alt="" src="pic/Other/GSmenu/18.png" style="height: 100%;"></td>'
  *p'</tr>'
  *p'<tr>'
    *p'<td><img alt="" src="pic/Other/GSmenu/19.gif" style="height: 100%;"></td>'
    if temp = 20:
      *p'<td><img alt="" src="pic/Other/GSmenu/20a.gif" style="height: 100%;"></td>'
    else
      *P"<td><a href='EXEC:  temp = 20 & gosub ""Gmenu"" '>"+'<img alt="" src="pic/Other/GSmenu/20.gif" style="height: 100%;">'+"</a></td>"
    end
    *p'<td><img alt="" src="pic/Other/GSmenu/21.gif" style="height: 100%;"></td>'
  *p'</tr>'
  *p'<tr>'
    *p'<td><img alt="" src="pic/Other/GSmenu/22.gif" style="height: 100%;"></td>'
    *p'<td><img alt="" src="pic/Other/GSmenu/23.gif" style="height: 100%;"></td>'
    *p'<td><img alt="" src="pic/Other/GSmenu/24.gif" style="height: 100%;"></td>'
  *p'</tr>'
*p'</table></center>'


if temp = 0:
else
  PLAY $BUTTON_OK,SE & 
  temp = 0
  wait 5
  gosub "Gmenu"
end

--
Aleks Versus Moderator 22.03.2023 13:37 (2 years ago)

Teemo228,
в QSP работает только абсолютный height. Указание через style не помню вообще работоспособно или нет.

Доброго времени. У меня вопросы не характера как сделать, а можно ли сделать. Но для начала подводка, зная максимальное кол-во данных в массиве на бумаге, как много можно запихать данных в один мосив, чтобы не сильно страдал и не перегружался плеер. С первой частью закончили. Теперь к вопросу. Можно ли сделать рабочий, не через костыли код с подгрузкой данных в массив. Хочу перелопатить 25x15 немного в открытый, так сказать бесшовный мир. Но с теми размерами видимого поля что есть. Я думал на определённых точках сделать погрузку в масив через dynamic, но вскакивает проблема, персонаж скачет с одной точки поля в другую. Так же пытался сделать что-то типо дальности отрисовки, заранее погдотавливая данные карты в масив, но тут опять же возвращаемся к проблеме, с размером карты которую я затеял с собственно с таким кол-во данных, думаю что плеер не справиться, учитывая что для отрисовки я использую колоссальное кол-во html. И в конце уже хочется совета, как это было бы удобно игрокам. 1-е Полностью, на сколько это возможно открытый мир. 2-е Открытый мир, но с немного урезанной бесшовностью, впрочем как есть сейчас. И 3-е я подумывал расширить в 2, 3 раза размеры локаций с добавлением поле зрения. И при таком варианте, я пологаю можно достичь той бесшовности, которую я хочу, но опять же тут упирается в возможности кол-ва данных в масиве и к возможности подгрузки данных (иногда нескольких) в массив.

n3m0,
Это все какие-то абстрактные вопросы. Массив может содержать 2 миллиарда ячеек. Работать с количеством в 100 000 будет нормально. HTML знатно тупит на отрисовке в 5.7.0.
А вот что ты собираешься хранить в массиве, как с ним работать, как рисовать - это уже другие вопросы. Экспериментируй.
Например, таблицу в 5000 ячеек через *р плеер не вытягивает, а через текстовую переменную уже может.

Спасибки. Этой информации мне предостаточно. Согласен что вопросы не корректные
Не могу правильно сформулировать. Спасибо за ответ. Буду пробовать разное.

Aleks Versus Moderator 24.03.2023 07:35 (2 years ago)

n3m0,
вообще, есть различные методы оптимизации, которые можно почерпнуть банально из роликов на ютубе по 3D-графике в играх. Например, что тебе не нужно хранить всю карту в одном массиве, а лишь только видимую часть. А ещё, что при изменении местоположения персонажа, ты можешь уничтожать ту часть карты, которая больше не видима, и добавлять только видимую (при этом тебе даже весь массив не нужно перезаполнять по новой). Непосредственно заполнение, генерацию карты, можно разнести во времени с помощью локации-счётчика. Т.к. присвоение ячейкам массива значений жрёт очень много времени, заполнять скажем по 1000-5000 клеток карты за проход каждые 500 м.с. не создаст видимой задержки для игрока, а вот 10000-100000 ячеек уже будут подвешивать плеер (именно на этапе присвоения значений).

Aleks Versus,
Спасибо за совет по оптимизации. Я когда думал над, так называемом полем зрением персонажа, я руководствовался, уничтожением невидимой частью карты, но одновременно с этим массив с данными карты заполнялся полностью заранее и данные в нем не переписывались. После когда, стал делать перезаписываемый по частям массив, при помощи dynamic, на вырисовываемой карте начали поступать артефакты, но суть не в этом. Хотелось узнать, как эффективнее можно переписывать данные массива без тормозов и ещё, я понимаю что это лучше понять на практике, но как долго по времени, примерно, будет откликаится плеер если данные массива содержат в себе HTML теги выводимые с помощью *p. И последний вопрос интересующий вопрос. Если в одном массиве будет например 2000строк данных, заранее прописанных в нем, то будут ли просадки в скорости чтения данных массива если мне нужно из него несколько сотен данных.

Прошу прощения за большое количество воды

n3m0,
Подумай, как избавится от динамика.

Log in or Register to post comments.