RU 📌 Pinned

Как сделать?

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

2. Ты сам так хотел :) Проще, чем ты написал, просто нельзя.

evp:

  1. Ты сам так хотел :) Проще, чем ты написал, просто нельзя.

1. Не очень хорошо, но можно попытаться выкрутиться cellpadding.
2. Вставить между тегами <td>
в нужных местах, что быстрее чем с картинкой.

Как в классике вставить картинку в любую часть основного экрана? Попытался поискать сам, нашел вот это, но что-то реакции нет.
*p ‘<table><tr><a href = “EXEC: gs ‘‘Компьютер’’,2”><td width=580px><img src=“content\pic\иконки\мифы и легенды.png”></a></td></tr></table>’

*p '<table><tr><td width="580px"><a href = "EXEC: gs ''Компьютер'',2"><img src="content/pic/иконки/мифы и легенды.png"></a></td></tr></table>'

У вас, хоть и некорректно с точки зрения HTML, но тоже работает. Ищите ошибку в другом месте.

Aleks Versus Moderator 08.10.2015 11:22 (10 years ago)

Драккан,
usehtml=1 в самой первой локации написано?

Ребят, помогите!
Написал, вроде как, игру в текстовом документе, но не понимаю, как ее преобразовать в файл qsp-формата, txt2gam при запуске моргает черным окошком на секунду и…. ничего. Подскажите, что делать. Спасибо.

Aleks Versus Moderator 08.10.2015 16:16 (10 years ago)

Baronutz73,
советую тебе для пробы взять готовую игру, конвертировать её в текстовый файл, и конвертировать обратно в файл .qsp с помощью txt2gam.
В принципе всё достаточно просто. Во-первых, чтоб не путаться, кинь текстовый файл игры в папку, где лежит txt2gam.exe. Назови этот файл как-нибудь односложно, латинскими буквами, цифрами, без пробелов. Например, 1.txt. Затем запусти командную строку, войди через неё в каталог, где лежит txt2gam.exe.
Далее пиши в командной строке что-то типа

txt2gam.exe 1.txt 1.qsp

и нажимай enter. Игра должна конвертироваться.

Народ, подскажите, какой функцией превратить маленькую букву в большую. Например, мне надо слово солдат превратить в Солдат, заменить первую с на С
Заранее спасибо!

Aleks Versus:

Драккан,
usehtml=1 в самой первой локации написано?

Да, написано. Я попробовал всё, что нашел на форуме. И единственный способ который работает, это ставит пробелы и увеличение колличества строк после ’ , но это через чур объемно получается.

Aleks Versus Moderator 09.10.2015 06:23 (10 years ago)

Jolly Roger,
нет такой функции. Только UCASE и LCASE.
Драккан,
если ты пробовал всё, что нашёл на форуме, значит ты не пробовал самого простого. Создай новую игру с одной локацией и напиши картинку в ней. Т.е. локацию с приблизительно таким кодом:

usehtml=1
*p '<table><tr><td width="580px"><a href = "EXEC: gs ''Компьютер'',2"><img src="content/pic/иконки/мифы и легенды.png"></a></td></tr></table>'

(Табличку я взял из сообщения evp). Если заработает, то сие будет означать, что проблема не в таблице, а в чём-то другом. В чём конкретно, боюсь тебе никто не скажет, пока не увидим код.

Есть ли возможность из клиента (aka плеера) задать значение произвольной переменной? Например, у меня в игре есть переменные variableA, variableB, variableC и т.д. (много переменных), каждая из которых может принимать много разных значений. Я хочу протестировать какой-то кусочек игры, не меняя каждый раз код через qgen.
Я понимаю, что для одной конкретной переменной можно написать код, выдающий окно input или что-то в этом роде - именно для этой переменной. А в общем случае? Чтобы в одном и том же окне (именно в плеере, не в редакторе кода) можно было написать “variableA=24”, погонять немного, проверить, потом, в том же окне в плеере, написать “variableB=55” - ну, и так далее. При этом не лазать каждый раз в редактор кода, а менять значения переменных именно из плеера.

Надеюсь, я достаточно ясно сформулировал вопрос :).

Драккан:

Как в классике вставить картинку в любую часть основного экрана?

Вот это, что значит? Вставить картинку хоть-куда нибудь? Или в конкретное место на экране (сверху, снизу, по центру, справа, отступив 100 px от левого края)?
Вот тут раздел справки с простыми способами вставляния картинок.
С помощью таблицы с прозрачными границами (как в твоём примере) можно отрегулировать положение картинок на экране относительно друг дружки. С помощью прозрачных картинок заданного размера и таблицы - поставить нужную картинку в нужное место на экране… Щас попробую, кстати… Попробовал, можно! Только экраны у всех разные…

P.S. Хотелось попробовать прикрепить файл к сообщению…
example.7z

Aleks Versus Moderator 09.10.2015 09:46 (10 years ago)

Valvs,
я пользуюсь возможностями строки ввода для отладки игр. Для этого я пишу микроотладчик. Делается это так.
В самой первой локации задаёшь локацию-обработчик строки ввода:

$usercom = 'ucom'

, где ucom - это название локации, которую ты собираешься использовать как обработчик строки ввода.
Далее на локации ucom пишешь строку:

dynamic $user_text

, где $user_text - это текст, вводимый в строку ввода. Таким образом, всякий текст, введённый в строку ввода, будет выполняться как код. т.е, если ты введёшь в строку ввода

VariableA=24

, переменной присвоится значение. Если введёшь просто

VariableA

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

Spoiler
! микро-отладчик
! "команды
	p0 - переход на страницу 0. Вместо 0 можно указать номер любой другой страницы
	log - вывод логов
	имя_переменной/a - вывод содержимого массива с указанным именем (ключ записывается с латинской a)
!"
if strcomp($user_text,'p\d+')=-1:
	$GAME_VALUE['interface']='[game]'
	goto 'page.'+$strfind($user_text,'\d+')
elseif $user_text='log':
	*pl $func('#array.prnt#','$log_error')
elseif $user_text='way':
	*pl $func('#array.prnt#','$survived_location')
elseif instr($user_text,'/a')=len($user_text)-1:
	*pl $func('#array.prnt#',$trim($mid($user_text,1,len($user_text)-2)))
elseif strcomp($user_text,'o\d+')=-1:
	args[9]=$strfind($user_text,'\d+')
	$replace($replace("
	$id_array[<<args[9]>>]='<<$id_array[args[9]]>>'
	$object_array[<<args[9]>>]='<<$object_array[args[9]]>>'
	$position_array[<<args[9]>>]='<<$position_array[args[9]]>>'
	kolvo_array[<<args[9]>>]=<<kolvo_array[args[9]]>>
	charge_array[<<args[9]>>]=<<charge_array[args[9]]>>
	$run_array[<<args[9]>>]='<<$run_array[args[9]]>>'",'<','&lt;'),'>','&gt;')
else
	dynamic $user_text
end

Так же можешь воспользоваться уже готовым решением.

Aleks Versus:

Valvs,
я пользуюсь возможностями строки ввода для отладки игр…

Спасибо за подробный ответ! Попробую оба решения - и микроотладчик, и отладчик werewolf’a. Когда высплюсь :)

Jolly Roger,

$UCtext = 'солдат'
$UCtext = $UCASE($MID($UCtext,1,1)) + $MID($UCtext,2)

Функции нет, но ее можно сделать самому:

$text = $FUNC(UCaseFirstLet, 'солдат')

!локация UCaseFirstLet
$result = $UCASE($MID($ARGS[0],1,1)) + $MID($ARGS[0],2)

Log in or Register to post comments.