RU 📌 Pinned

Как сделать?

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

Teemo228:

Не подскажите как сделать что бы ДИНАМИЧЕСКАЯ таблица а именно КНОПКА

Сформулируй точнее, что тебе нужно и что у тебя не получается.

Teemo228,
К слову, лучше таблицу как-то так строгать:

*P '<table>'
  *P '<tr>'
     *P '<td>Ячейка</td>'
  *P '</tr>'
*P '</table>'

Имхо, так и читабельнее и код проще вставлять.

NumerCreate = 10
*p '<center><table align="center" border="1" cellpadding="1" cellspacing="1" style="width: 0px"><tr><td>&nbsp; id &nbsp;</td><td>&nbsp; Имя Фамилия &nbsp;</td><td>&nbsp; Пол &nbsp;</td><td>Ред</td></tr>'
a = 0 
:uuuu
	if a < NumerCreate: '<tr><td>&nbsp;'+'<<PeepolId[a]>>'+'&nbsp;</td><td>&nbsp;'+'<<$PeepolName[a]>>'+'&nbsp;</td><td>'+'<<$PeepolPol[a]>>'+'</td><td>&nbsp;'+"<a href='EXEC: $MenuButtonActive = ""Menu"" & gosub ""Crate Heroe"" '>"+'&nbsp;</td></tr>' 
	a = a+1
	
	if a < NumerCreate: jump "uuuu"
	a = 0

возможно так доступнее в понимании!
https://drive.google.com/file/d/14x5op8uU71CJAhc0jzxsKFapzOAHC4DD/view?usp=sharing
Моэет так понятнее

на кнопках не должно быть нуля, кнопка должна соответствовать Id
есть ли способ сделать это так динамически как и таблицу
!===============================================================
ДЛЯ тех кто в танке…:
1) Появляется заголовок таблицы
2-10) за каждый проход кода, заголовок игнорируется
после чего генерируется новая строчка таблицы
!================================================================
если и так не ясно, то скину все задействованые файлы, хоть в этом и нет смысла…

Oliver:

Teemo228,
К слову, лучше таблицу как-то так строгать:

*P '<table>'
  *P '<tr>'
     *P '<td>Ячейка</td>'
  *P '</tr>'
*P '</table>'

Имхо, так и читабельнее и код проще вставлять.

слышишь звон да не знаешь где он? Это тут при чем? Ты хоть прочти что спрашуют…
не в обиду!
Где в тоем ответе кнопка?

dmvikar:

Да мы готовы написать любой код, если это нам по силам.

Вот в этом я абсолютно не сомневаюсь. :) Асы, что сказать. Очень ценю, что подсказываете, но действительно пытаюсь понять, поэтому вот вопрос возник.

if hour>=6 and hour<23:
автобус_работает=1
else
автобус_работает=0
end
end

Вот с этим кодом у меня работает, так, как я хочу, то есть придя на остановку после 23 часов, пропадает действие ждать автобус.

А вот, если использовать так:

if hour>=6 and hour<=23:
автобус_работает=1
else
автобус_работает=0
end
end

То действие ждать автобус пропадает только после полуночи, что меня не устраивает. Где правильно? Если что, то использую время исчисления по Юлианскому календарю, который тут на форуме приводили.

Нубай, дык везде правильно)).
Если ставишь условие <=, то 23:59 соответствует этому условию.

Teemo228,
гонора поменьше, пожалуйста. Тебе готовы помочь, но будь более тактичнее.
Если тебе нужно генерировать динамические таблицы, то заноси данные в переменные.
К примеру так:

Spoiler
$ui.ItemList += '<tr><td valign=top width=25><img width=1 height=26 src=''data/point.png''><a class="plain" href="EXEC: play $data.SoundSFX[''Button''],sys.SFXVolume & ui.PlayerInvSlotSelect = <<A>> & $ui.PlayerInvSlotSelectType = ''''"><<$ui.SessionInvPlayerSlot[''<<A>>:SLOTSTATUS'']>></a></td><td valign=top><img width=1 height=26 src=''data/point.png''><a class="plain" href="EXEC: play $data.SoundSFX[''Button''],sys.SFXVolume & ui.PlayerInvSlotSelect = <<A>> & $ui.PlayerInvSlotSelectType = ''''"><font size=2 color=#<<$ui.SessionInvPlayerSlot[''<<A>>:COLOR'']>>><<$ui.SessionInvPlayerSlot[''<<A>>:NAME'']>></font></a></td><td valign=top align=center><img width=1 height=26 src=''data/point.png''><a class="plain" href="EXEC: play $data.SoundSFX[''Button''],sys.SFXVolume & ui.PlayerInvSlotSelect = <<A>> & $ui.PlayerInvSlotSelectType = ''''"><font size=2 color=#797979><<$ui.SessionInvPlayerSlot[''<<A>>:TYPE'']>></font></a></td><td valign=top align=center><img width=1 height=26 src=''data/point.png''><a class="plain" href="EXEC: play $data.SoundSFX[''Button''],sys.SFXVolume & ui.PlayerInvSlotSelect = <<A>> & $ui.PlayerInvSlotSelectType = ''''"><font size=2><<$ui.SessionInvPlayerSlot[''<<A>>:VALUE'']>></font></a></td></tr>'

Когда ты просто отрисовываешь данные, на прямую, все переменные типа <<$PeepolName[a]>> будут сохранять последнее значение цикла. Чтобы избежать этого, записывай данные в переменную, так запомниться та часть переменной, которая была в момент итерации.
Тогда большая часть твоих проблем решится.

P.S. Да и… Пиши понятнее, а то белиберда полная.

Teemo228:

Не подскажите как сделать что бы ДИНАМИЧЕСКАЯ таблица а именно КНОПКА

Что ты хотел этим сказать, совершенно не понятно.

Teemo228,

*p"<td><a href='exec:gosub""Crate Heroe"",<<передаваемое значение>>'>Название кнопки</a></td>"

Вот пример из моего кода

*p"<td><a href='exec:gt""loc_transfer_id"",<<а>>'><<$nickname[а]>></a></td>"

Этот код выводит таблицу с именами НПС. Кнопка является именем. При клике по имени открываются характеристики конкретного НПС. id фиксируется через <<а>>, как сказал Svartberg, и передается в локацию обработки, а там извлекается через args.

И я полностью согласен со Svartberg, будешь общаться в таком ключе, вряд-ли кто-то захочет тебе помочь в дальнейшем.
Oliver тебе показал, как форматировать таблицу, чтоб не ломать глаза о стену текста.

Прощу меня простить за мою Импульсивность и агрессию. Просто был на нервах!
Я наконец понял как правильно сформулировать….

нужно через цикл создать 5+ ссилок с разным Айди
с формированием таблицы вообще проблем нет!

Так что ладно, спс за попытку буду костыль делать! Это проще и быстрее! да и сильно не ударит по функциональности!

Teemo228,
Я тебе уже написал, что нужно делать.
Во время цикла сохраняй данные в переменные и все будет работать. Дал пример, хоть он и массивный, но работает.
Посмотри как сделано у других.
Если относительно хорошо разбираешся в коде, открой исходник The Dark Citadel.(ссылку найдешь в посте про игру).
В локации inventory. math найдешь то, что тебе нужно.

я КСП на базовом зню! и С UI.SSS в коде первый раз столкнулся, хотя окрывал некоторые исходники. это тип C++? или я чего то не догоняю, не знаком с реализацией в QSP
СПС открыл мне новые функции QSP о которых я не знал, буду углубляться в изучении…
Пошел шерстить Документацию.

Aleks Versus Moderator 22.02.2021 16:15 (5 years ago)

Teemo228,
Я не буду помещать твой код в блок кода, чтобы выделить, что тебе нужно добавить. Об этом уже сказал dmvikar. Выделю место, где ты уже используешь формирование вставку ID, и где тебе нужно вставить то же самое:

Spoiler

NumerCreate = 10
*p ‘<center><table align=“center” border=“1” cellpadding=“1” cellspacing=“1” style=“width: 0px”><tr><td> id </td><td> Имя Фамилия </td><td> Пол </td><td>Ред</td></tr>’
a = 0
:uuuu
if a < NumerCreate: ‘<tr><td> ‘+’<<PeepolId[a]>>’+’ </td><td> ‘+’<<$PeepolName[a]>>’+’ </td><td>’+’<<$PeepolPol[a]>>’+’</td><td> ‘+”<a href=‘EXEC: $MenuButtonActive = ““Menu”” & gosub ““Crate Heroe””,<<PeepolId[a]>>’>”+’ </td></tr>’
a = a+1

if a < NumerCreate: jump “uuuu”
a = 0

При таком подходе на локации Crate Heroe ты можешь получить ID из args[0]. Либо ты можешь делать так:

Spoiler

if a < NumerCreate: ‘<tr><td> ‘+’<<PeepolId[a]>>’+’ </td><td> ‘+’<<$PeepolName[a]>>’+’ </td><td>’+’<<$PeepolPol[a]>>’+’</td><td> ‘+”<a href=‘EXEC: $MenuButtonActive = ““Menu”” & current_peopleID=<<PeepolId[a]>> & gosub ““Crate Heroe””’>”+’ </td></tr>’
a = a+1

if a < NumerCreate: jump “uuuu”
a = 0

при таком подходе на локации Crate Heroe можно получить ID из переменной current_peopleID.

Огромное спасибо всем что меня терпели!) Мозг отказывался понимать, но я понял))
Svartberg - слишком усложнил пояснение) хоть все и правильно написал) Просто его (использование точек сбило меня с толку)
Aleks Versus - теперь понял принцип работы.
по сути за каждый прокат ссылка получает новое значение не теряя значения за предвущий прокат… долго не мог вкурить, еще раз сори, что грубил…

P.S - это можно и в цикл видео “как сделать” - добавить)

Возможно ли присвоить переменной значение, которое бы соответствовало локации, в которой в качестве подлокаций используется массив $ARGS?
Другими словами - есть локация с названием “Школа”. И в ней есть подлокации:

If $ARGS[0]='Класс_1':
...
End
If $ARGS[0]='Класс_2':
...
End

И т.д.
Как мне присвоить переменной (Например, $Location) такое значение, чтобы, используя значение этой переменной, я оказался в подлокации Школа/Класс_1?

Mushinia,
Не очень понял о чем ты, но… Насколько я понял, ты передаешь текстовое значение. Чтобы не мучится с временным массивом и передачами, рекомендую просто завести несколько переменных с хранимыми данными локациями.
Еще как вариант, можно использовать одну переменную, хранящую путь для локации.
Как пример:

Spoiler

Не говорю, что это правильно и так нужно сделать. Но я делаю так:

$ui.DataSelect = 'Menu/Main'

Завожу переменную и записываю туда путь. При помощи INSTR можно просканировать переменную и узнать есть ли в ней нужное слово.

IF INSTR($ui.DataSelect,'Menu') ! 0:
 %какой-то код%
 IF INSTR($ui.DataSelect,'Main') ! 0:
  %какой-то код%
 END
END

В примере выше указано как можно это просто сделать. Чтобы разбить все это дело на локации, можно использовать следующую конструкцию:

Spoiler
!Определение локации для перехода:
$UICut.DataSelect = $UI.DataSelect
IF INSTR($UICut.DataSelect,'/') ! 0:
 UICut.Mark['end'] = INSTR($UICut.DataSelect,'/')-1
 $UICut.DataMid = UCASE(MID($UICut.DataSelect,0,UICut.Mark['end']))
 $UICut.SubDataMid = MID($UICut.DataSelect,UICut.Mark['end']+2)
 GS '<<$UICut.DataMid>>.ui'
ELSE:
 $UICut.DataMid = UCASE($UICut.DataSelect)
 GS '<<$UICut.DataMid>>.ui'
END

Так же рекомендовал бы хранить данные для отрисовке в переменных. И редактировать удобнее и не потеряешся.

Log in or Register to post comments.