Как сделать?

Re: Как сделать?

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

 Спойлер Show Spoiler Hide 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 написал(а):

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

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

Svartberg
Geek
useravatar
Offline
267 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

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 тебе показал, как форматировать таблицу, чтоб не ломать глаза о стену текста.

dmvikar
useravatar
Offline
104 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

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

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

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

Teemo228
useravatar
Offline
15 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

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

Svartberg
Geek
useravatar
Offline
267 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

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

Teemo228
useravatar
Offline
15 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

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

 Спойлер Show Spoiler Hide Spoiler
 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"",<<PeepolId[a]>>'>"+'&nbsp;</td></tr>'
    a = a+1
   
    if a < NumerCreate: jump "uuuu"
    a = 0
При таком подходе на локации Crate Heroe ты можешь получить ID из args[0]. Либо ты можешь делать так:
 Спойлер Show Spoiler Hide Spoiler
 
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"" & current_peopleID=<<PeepolId[a]>> & gosub ""Crate Heroe""'>"+'&nbsp;</td></tr>'
    a = a+1
   
    if a < NumerCreate: jump "uuuu"
    a = 0
при таком подходе на локации Crate Heroe можно получить ID из переменной current_peopleID.

Aleks Versus
воздвигатель башни
useravatar
Offline
1573 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

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

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

Teemo228
useravatar
Offline
15 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

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

Код:

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

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

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

Mushinia
Император фей
useravatar
Offline
1 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

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

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

Код:

 $ui.DataSelect = 'Menu/Main'

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

Код:


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

В примере выше указано как можно это просто сделать. Чтобы разбить все это дело на локации, можно использовать следующую конструкцию:
 Спойлер Show Spoiler Hide 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

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

Svartberg
Geek
useravatar
Offline
267 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Информация

Статистика форума:
 
Всего тем:
998
Всего опросов:
14
Всего сообщений:
16790837
Всего сообщений сегодня:
4
Пользователи форума:
 
Всего пользователей:
2520
Последним зарегистрировался:
Mushinia