АвторСообщение
noname
постоянный участник




Сообщение: 2
Зарегистрирован: 17.03.08
ссылка на сообщение  Отправлено: 19.03.08 14:05. Заголовок: живой игровой мир


это особое направление для УРК-работ:

пусть все NPC живут своей жизнью, а не ждут ГГ. я подготовил пример, где они могут ходить по всем доступным локациям или не ходить (всего 4-ре персонажа, номер персонажа, которым будет управлять игрок задан в переменной 'игрок')

Спасибо: 0 
Профиль
Ответов - 136 , стр: 1 2 3 4 5 6 7 All [только новые]


noname
постоянный участник




Сообщение: 53
Зарегистрирован: 17.03.08
ссылка на сообщение  Отправлено: 24.03.08 22:32. Заголовок: новый концепт не при..


новый концепт не придумался:
хотел уместить обработку ввода игрока в одну
маленькую локацию, а потом отослать
полученную команду на исполнение как для
обычного актёра.
НО
вышел облом из-за того, что сообщения выводятся по-разному
(т.е. они выводятся именно для игрока)
как бы вывод убрать в отдельную процедуру?
думай голова, шапку куплю...
P.S.
вот сделал вещи- неписи их могут брать и выкладывать. если сила=N значит непись может нести N вещей, если их больше- не сможет сдвинуться с места. если ловкость=6 значит непись никогда не пропустит ход (ждать- не пропуск хода, а действие. если непись пропускает ход то, в отличие от ожидания, о его действиях в локации на этом ходу никаких комментариев не выводится).если ловкость=1 значит непись ходит с вер-тью 1/6 и пропускает ход с вер-тью 5/6.
P.P.S.
игрок пока не может ничего делать с вещами. он может
ждать
идти на север
, а так же в других направлениях.



Спасибо: 0 
Профиль
noname
постоянный участник




Сообщение: 54
Зарегистрирован: 17.03.08
ссылка на сообщение  Отправлено: 24.03.08 22:36. Заголовок: ; ex2alpha.qst ; при..


; ex2alpha.qst
; пример№2 игрок пока не может выполнять действий с вещами
; (неписи могут взять... и выложить... )
; его команды остались теми же, что и в предыдущем примере
;------------------------------------------------
:инициализация_локация
; начало инициализации
invkill
perkill
; поля
instr поле11вид = на яркой солнечной поляне[св]
поле11_се = 12; куда переход, если 0- перехода нет
поле11_за = 0
поле11_юг = 0
поле11_во = 21
поле11актёров = 0
поле11вещей = 0
instr поле21вид = у красивого, освежающего водопада[сзв]
поле21_се = 22
поле21_за = 11
поле21_юг = 0
поле21_во = 31
поле21актёров = 0
поле21вещей = 0
instr поле31вид = на холме, покрытом множеством цветов[сз]
поле31_се = 32
поле31_за = 21
поле31_юг = 0
поле31_во = 0
поле31актёров = 0
поле31вещей = 0
instr поле12вид = в лесу, наполненном весёлым щебетом[сюв]
поле12_се = 13
поле12_за = 0
поле12_юг = 11
поле12_во = 22
поле12актёров = 0
поле12вещей = 0
instr поле22вид = в удивительно прозрачном мелком ручейке[сзюв]
поле22_се = 23
поле22_за = 12
поле22_юг = 21
поле22_во = 32
поле22актёров = 0
поле22вещей = 0
instr поле32вид = в лесу, устланном ароматными листьями[сзю]
поле32_се = 33
поле32_за = 22
поле32_юг = 31
поле32_во = 0
поле32актёров = 0
поле32вещей = 0
instr поле13вид = в уютном домике лесного эльфа[ю]
поле13_се = 0
поле13_за = 0
поле13_юг = 12
поле13_во = 0
поле13актёров = 0
поле13вещей = 0
instr поле23вид = под отвесной величественной скалой[ю]
поле23_се = 0
поле23_за = 0
поле23_юг = 22
поле23_во = 0
поле23актёров = 0
поле23вещей = 0
instr поле33вид = в богато украшенной гномьей пещере[ю]
поле33_се = 0
поле33_за = 0
поле33_юг = 32
поле33_во = 0
поле33актёров = 0
поле33вещей = 0
макс_полей = 33;максимумы по горизонтали и по вертикали
;просматриваем прямоугольник от 11 до 33. он может и не весь быть заполнен локациями
;пришла в голову идея составлять таблицу переходов отдельным редактором, как в Adrift.
; актёры
instr актёр1имя = Честный Галантный Рыцарь
актёр1место = 12; номер поля
актёр1сила = 5
актёр1ловкость = 6
;актёр1вещь1=2 ; так устроен местный инвентарь
актёр1вещей = 0
поле12_актёров = поле12_актёров+1 ; актёр добавлен
instr актёр2имя = Умиротворённый Обаятельный Мудрец
актёр2место = 21
актёр2сила = 2
актёр2ловкость = 1
актёр2вещей = 0
поле21_актёров = поле21_актёров+1
instr актёр3имя = Нежная Добрая Принцесса
актёр3место = 32
актёр3сила = 1
актёр3ловкость = 2
актёр3вещей = 0
поле32_актёров = поле32_актёров+1
instr актёр4имя = Бесшабашный Развязный Дракон
актёр4место = 22
актёр4сила = 6
актёр4ловкость = 5
актёр4вещей = 0
поле22_актёров = поле22_актёров+1
instr актёр5имя = Ловкий Лесной Эльф
актёр5место = 13
актёр5сила = 3
актёр5ловкость = 4
актёр5вещей = 0
поле13_актёров = поле13_актёров+1
instr актёр6имя = Выносливый Пещерный Гном
актёр6место = 33
актёр6сила = 4
актёр6ловкость = 3
актёр6вещей = 0
поле33_актёров = поле33_актёров+1
макс_актёров = 6; обязательно должен быть хотя бы один актёр
; вещи
instr вещь1вп = свежее зелёное яблоко
вещь1место = 11 ; если в чьём-то инвентаре, то место=0
поле11_вещей = поле11_вещей+1 ; вещь добавлена
instr вещь2вп = пожелтевший кленовый лист
вещь2место = 11
поле11_вещей = поле11_вещей+1
instr вещь3вп = апетитный белый гриб
вещь3место = 11
поле11_вещей = поле11_вещей+1
instr вещь4вп = лёгкое белое перо
вещь4место = 31
поле31_вещей = поле31_вещей+1
instr вещь5вп = душистый полевой цветок
вещь5место = 31
поле31_вещей = поле31_вещей+1
instr вещь6вп = небольшую искривлённую веточку
вещь6место = 31
поле31_вещей = поле31_вещей+1
instr вещь7вп = плоский камешек с отверстием
вещь7место = 23
поле23_вещей = поле23_вещей+1
instr вещь8вп = крупную каплю росы
вещь8место = 23
поле23_вещей = поле23_вещей+1
instr вещь9вп = древний волшебный свиток
вещь9место = 23
поле23_вещей = поле23_вещей+1
макс_вещей = 9
; игрок
выбор = rnd#макс_актёров$
:инициализация_метка_1
goto предварительный_выбор_игрока_локация
; завершение инициализации
end

;------------------------------------------------
:предварительный_выбор_игрока_локация
выбор = выбор+rnd#макс_актёров-1$ ; выбираем любого персонажа, кроме того же самого
if выбор>макс_актёров then выбор=выбор-макс_актёров
pln Имя : #%актёр#выбор$имя$
pln Сила = #актёр#выбор$Сила$
pln Ловкость = #актёр#выбор$Ловкость$
btn окончательный_выбор_игрока_локация, играть этим персонажем
btn инициализация_метка_1, выбрать другого персонажа
btn выбор_персонажа_с_клавиатуры_локация, ввести имя персонажа
end

;------------------------------------------------
:окончательный_выбор_игрока_локация
игрок = выбор
pln #%игрок$
goto главная_локация
end

;------------------------------------------------
:выбор_персонажа_с_клавиатуры_локация
instr name=
input name
выбор = 0
счётчик = 0
:выбор_персонажа_с_клавиатуры_метка_1
счётчик = счётчик+1
if name=актёр#счётчик$имя then выбор=счётчик
if счётчик<макс_актёров then goto выбор_персонажа_с_клавиатуры_метка_1
;в следующей строчке "выбор = rnd#макс_актёров$" добавлено, что бы следующий персонаж был выбран из всего списка с равной вероятностью (подумайте сами)
if выбор=0 then pln нет такого персонажа в нашем мире & pln & выбор = rnd#макс_актёров$ & goto предварительный_выбор_игрока_локация else goto окончательный_выбор_игрока_локация
end

;------------------------------------------------
;************************************************
:главная_локация
instr vvod="начало" ; почему-то без этого оставался "конец" от предыдущей игры
proc мотор_локация ; ходят все
if (vvod="конец")or(vvod="end") then end
goto главная_локация
end
;************************************************

;------------------------------------------------
:мотор_локация
;начало движения
чей_ход = 0
:мотор_метка_1 ; выполняем для каждого актёра
чей_ход = чей_ход+1
дел = 0
if (rnd6)>(актёр#чей_ход$ловкость) then goto мотор_метка_2; пропуск хода
;идти по направлению
if актёр#чей_ход$вещей > актёр#чей_ход$сила then goto мотор_метка_5
if поле#актёр#чей_ход$место$_се <> 0 then дел=дел+1 & дело#дел$="идти на" & арг1#дел$="север"
if поле#актёр#чей_ход$место$_за <> 0 then дел=дел+1 & дело#дел$="идти на" & арг1#дел$="запад"
if поле#актёр#чей_ход$место$_юг <> 0 then дел=дел+1 & дело#дел$="идти на" & арг1#дел$="юг"
if поле#актёр#чей_ход$место$_во <> 0 then дел=дел+1 & дело#дел$="идти на" & арг1#дел$="восток"
:мотор_метка_5 ; если актёр перегружен - не может двигаться
; хорошо бы использовать этот список для сверки с вводом игрока, чтоб всё было по-честному:
; что можно игроку, то можно и актёру- полное равенство
;ждать - всегда доступное действие без аргументов (необходимо всегда иметь хотя бы одно доступное действие)
дел=дел+1 & дело#дел$="ждать"
;взять вещь
счётчик = 0
:мотор_метка_3 ; перебираем вещи на поле
счётчик = счётчик + 1
if актёр#чей_ход$место=вещь#счётчик$место then дел=дел+1 & дело#дел$="взять" & арг1#дел$=вещь#счётчик$вп & арг1#дел$n=счётчик
if счётчик<макс_вещей then goto мотор_метка_3
;выложить вещь
счётчик = 0
:мотор_метка_4 ; перебираем вещи в инвентаре
счётчик=счётчик+1
if актёр#чей_ход$вещей>=счётчик then дел=дел+1 & дело#дел$="выложить" & арг1#дел$=вещь#актёр#чей_ход$вещь#счётчик$$вп & арг1#дел$n=счётчик & goto мотор_метка_4
;пускаем список на обработку
if игрок = чей_ход then proc ввод_игрока_локация else proc ход_актёра_локация
:мотор_метка_2 ; если был пропуск хода
if чей_ход < макс_актёров then goto мотор_метка_1
;конец всех действий
end

;------------------------------------------------
:отображение_локация
pln
pln Вы #%поле#актёр#игрок$место$вид$
pln Вы видите:
счётчик = 0
:отображение_метка_1
счётчик = счётчик + 1
if вещь#счётчик$место = актёр#игрок$место then pln . #%вещь#счётчик$вп$
if счётчик<макс_вещей then goto отображение_метка_1
pln Здесь находятся:
счётчик = 0
:отображение_метка_2
счётчик = счётчик + 1
if актёр#счётчик$место = актёр#игрок$место then pln - #%актёр#счётчик$имя$[#актёр#счётчик$вещей$]
if счётчик<макс_актёров then goto отображение_метка_2
end

;------------------------------------------------
:ход_актёра_локация
if дел=0 then end ; бывает из-за пропусков хода
выбор = rnd#дел$
if дело#выбор$="ждать" then proc ждать_актёр_локация
if дело#выбор$="идти на" then proc идти_на_актёр_локация
if дело#выбор$="взять" then proc взять_актёр_локация
if дело#выбор$="выложить" then proc выложить_актёр_локация
end

;------------------------------------------------
:ввод_игрока_локация
vvod="пустой ввод"
proc отображение_локация ; игрок должен видеть текущую ситуацию
pln
pln Введите, что сделать:
input vvod
tokens vvod
if token1="ждать" then proc ждать_игрок_локация
if token1="идти" then proc идти_на_1_игрок_локация
end

;------------------------------------------------
:ждать_актёр_локация
if актёр#чей_ход$место = актёр#игрок$место then pln + #%актёр#чей_ход$имя$[#актёр#чей_ход$вещей$] чего-то ждёт
end

;------------------------------------------------
:ждать_игрок_локация
pln #%актёр#игрок$имя$ чего-то ждёт
end

;------------------------------------------------
:идти_на_актёр_локация
if актёр#чей_ход$место = актёр#игрок$место then pln + #%актёр#чей_ход$имя$[#актёр#чей_ход$вещей$] ушёл на #%арг1#выбор$$
if арг1#выбор$="север" then актёр#чей_ход$место = поле#актёр#чей_ход$место$_се
if арг1#выбор$="запад" then актёр#чей_ход$место = поле#актёр#чей_ход$место$_за
if арг1#выбор$="юг" then актёр#чей_ход$место = поле#актёр#чей_ход$место$_юг
if арг1#выбор$="восток" then актёр#чей_ход$место = поле#актёр#чей_ход$место$_во
if актёр#чей_ход$место = актёр#игрок$место then pln + вошёл #%актёр#чей_ход$имя$[#актёр#чей_ход$вещей$]
end

;------------------------------------------------
:идти_на_1_игрок_локация
if token2="на" then goto идти_на_2_игрок_локация
end

;------------------------------------------------
:идти_на_2_игрок_локация
pln #%актёр#игрок$имя$ ушёл на #%token3$
if (token3="север")and(поле#актёр#игрок$место$_се<>0) then актёр#игрок$место = поле#актёр#игрок$место$_се
if (token3="запад")and(поле#актёр#игрок$место$_за<>0) then актёр#игрок$место = поле#актёр#игрок$место$_за
if (token3="юг")and(поле#актёр#игрок$место$_юг<>0) then актёр#игрок$место = поле#актёр#игрок$место$_юг
if (token3="восток")and(поле#актёр#игрок$место$_во<>0)then актёр#игрок$место = поле#актёр#игрок$место$_во
pln и оказался #%поле#актёр#игрок$место$вид$
end

;------------------------------------------------
:взять_актёр_локация
if актёр#чей_ход$место = актёр#игрок$место then p + #%актёр#чей_ход$имя$[#актёр#чей_ход$вещей$] взял #%арг1#выбор$$
вещь#арг1#выбор$n$место = 0
актёр#чей_ход$вещей = актёр#чей_ход$вещей + 1
актёр#чей_ход$вещь#актёр#чей_ход$вещей$=арг1#выбор$n
proc список_актёра_локация
end

;------------------------------------------------
:выложить_актёр_локация
; внимание! арг1#выбор$n в данном случае хранит номер вещи в инвентаре актёра
if актёр#чей_ход$место = актёр#игрок$место then p + #%актёр#чей_ход$имя$[#актёр#чей_ход$вещей$] выложил #%арг1#выбор$$
; ложим вещь в локацию:
вещь#актёр#чей_ход$вещь#арг1#выбор$n$$место = актёр#чей_ход$место
; убираем вещь из инвентаря:
актёр#чей_ход$вещь#арг1#выбор$n$=актёр#чей_ход$вещь#актёр#чей_ход$вещей$
актёр#чей_ход$вещей = актёр#чей_ход$вещей - 1
proc список_актёра_локация
end

;------------------------------------------------
:список_актёра_локация
if актёр#чей_ход$место <> актёр#игрок$место then goto список_актёра_метка_2
if актёр#чей_ход$вещей = 0 then goto список_актёра_метка_2
p .теперь он несёт:
счётчик=0
:список_актёра_метка_1
счётчик=счётчик+1
p #%вещь#актёр#чей_ход$вещь#счётчик$$вп$.
if счётчик<актёр#чей_ход$вещей then goto список_актёра_метка_1
pln
:список_актёра_метка_2
end

Спасибо: 0 
Профиль
noname
постоянный участник




Сообщение: 55
Зарегистрирован: 17.03.08
ссылка на сообщение  Отправлено: 24.03.08 22:40. Заголовок: оставлена отладочная..


оставлена отладочная информация о
выходах из локаций а так же о кол-ве вещей
у неписей а так же о том, что же у непися в кармашке
(последнее-только когда он изменяет содержимое инвентаря).
ВНИМАНИЕ!
как бы соблазнительно ни выглядели буковки [сзюв]
в списке выходов,
необходимо писать команду целиком:
идти на восток
(к примеру)
P.S.
долго ловил баги.
вроде бы всех выловил.
не удержался до окончательной версии- выложил, что есть

Спасибо: 0 
Профиль
noname
постоянный участник




Сообщение: 56
Зарегистрирован: 17.03.08
ссылка на сообщение  Отправлено: 24.03.08 22:42. Заголовок: жду рекомендаций по ..


жду рекомендаций по оптимизации кода
(как же, станет кто-нить в этом коде разбираться)
доделки остались элементарные,
жаль из-за работы(стажируюсь)
времени остаётся мало.
иначе я б уже давно всё закончил.

Спасибо: 0 
Профиль
noname
постоянный участник




Сообщение: 57
Зарегистрирован: 17.03.08
ссылка на сообщение  Отправлено: 24.03.08 22:50. Заголовок: да, кстати, noname -..


да, кстати, noname - это забывший свой пароль qwerty.
мне всё равно, кем быть,
пусть останусь noname,
но хотелось бы просуммировать(или как там ещё учесть)
рейтинги и кол-во постов.
в-общем, объединить как-то два в одно.
а если когда сделаю полноценный квест- назову его qwerty03

Спасибо: 0 
Профиль
noname
постоянный участник




Сообщение: 71
Зарегистрирован: 17.03.08
ссылка на сообщение  Отправлено: 29.03.08 22:09. Заголовок: живой игровой мир вк..


живой игровой мир
включает в себя два момента:

собственно мир, в котором персонажи равны (с учётом их качеств) персонажу игрока
(точнее игрок играет за любого из персонажей)
&
логика поведения персонажей

логично начать с первого пункта, чтоб было где оттачивать второй...
задача не так уж и сложна, если разделить её на под-задачи
p.s.
неписи вполне могут быть умнее игрока, так как "знают", где чего в соседних локациях лежит
(где-то крутой непись шмотку выбросил, где-то на рынок подешёвке что-то выкинули, или наоборот- дорого покупают)
.
сложных алгоритмов я буду избегать как огня:
разумного поведения персонажей можно добиться введением отношений (друг к другу) и ещё всяких отношений(к клану, ...) а так же смысловыми ограничениями: ну там, полить огород можно только если он уже засеян, а так же введением страхов и желаний (об этом я уже постил в этой теме)
p.p.s.
19-го сделал пример№1
22-го после долгих метаний сделал парсерный пример№1
24-го сделал недоделанную версию примера№2
с учётом того, что я работал над каждым из проектов не более 2-х часов- неплохо
сейчас я продолжаю метаться м/ду платформами
везде что-нить не так...
на qsp аналогичный проект движется с большим скрипом,
но я стараюсь.
ИМХО настоящий текстоквестописец должен знать более одной платформы.

Спасибо: 0 
Профиль
noname
постоянный участник




Сообщение: 72
Зарегистрирован: 17.03.08
ссылка на сообщение  Отправлено: 30.03.08 00:39. Заголовок: да и вот ещё что: па..


да и вот ещё что: пару дней назад акурка(скачал пре1 вместо пре6) стала выдавать сообщение, что файл richtxt32.ocx неверно инсталлирован в системе(либо отсутствует).
и не запускается. в-общем мрак полный.

Спасибо: 0 
Профиль
Nex



Сообщение: 53
Зарегистрирован: 03.07.07
ссылка на сообщение  Отправлено: 30.03.08 09:33. Заголовок: noname я лечил акурк..


noname я лечил акурку так:
сделал батник (.bat файл), в котором написал

akurq.exe
regsvr32 /u /s richtx32.ocx

То есть после каждого вызова акурки "удаляется" из системы richtx32.ocx, а при запуске - устанавливается.
Вот такой костыль к этой кривой программе.

Сам файл richtx32.ocx нужно скачать (например, по этой ссылке), и положить в папку WINDOWS/System32.

Спасибо: 1 
Профиль
noname
постоянный участник




Сообщение: 73
Зарегистрирован: 17.03.08
ссылка на сообщение  Отправлено: 30.03.08 10:19. Заголовок: уррра! заработала! я..


уррра! заработала!
я как-то слишком быстро отказался от использования акурки...пре1
только из-за того, что она непоняла одну сомнительную конструкцию с xbtn, которую понимала пре6.

может, попробую на акурке...
с кейрусом задалбывает ещё одна интересная особенность:
требуется очень высокая скорость нажатия клавиш переключения режима.
я себе чуть кнопки не раздолбал

постараюсь делать версию URQL совместимую и с досуркой и с акуркой,
а unikbd.com когда-нибудь обязательно достану (может под фаром будет работать)

Спасибо: 0 
Профиль
noname
постоянный участник




Сообщение: 74
Зарегистрирован: 17.03.08
ссылка на сообщение  Отправлено: 30.03.08 12:27. Заголовок: что-то Акурка меня н..


что-то Акурка меня не понимает.
из описания в хелпе я пока не понял, что её не устраивает в досурковской версии
дело было явно не в xbtn

какие возможности ловли багов существуют на Акурке(пре1)???

Спасибо: 0 
Профиль
noname
постоянный участник




Сообщение: 76
Зарегистрирован: 17.03.08
ссылка на сообщение  Отправлено: 30.03.08 13:35. Заголовок: после того, как заме..


после того, как заменил все 'ё' на 'е' прога кое-как заработала на Акурке_пре1
буду разбираться дальше.
вопрос дебагинга остаётся открытым

Спасибо: 0 
Профиль
AlSid
постоянный участник


Сообщение: 90
Зарегистрирован: 09.09.05
ссылка на сообщение  Отправлено: 30.03.08 18:36. Заголовок: Думаю, что ув. nonam..


Думаю, что ув. noname заслужил победу сразу в трех номинациях - самое большое количество постов подряд (14!), самый длинный пост и самый бесполезный пост (оба - за пост под названием "; ex2alpha.qst ; при.."). И, кажется, это только начало...

Спасибо: 0 
Профиль
noname
постоянный участник




Сообщение: 80
Зарегистрирован: 17.03.08
ссылка на сообщение  Отправлено: 30.03.08 20:05. Заголовок: AlSid ну у меня же д..


AlSid ну у меня же до этого проекта были тока совсем простые квесты qwerty01 и qwerty02. я осваиваюсь с URQL. лучше бы про дебагинг Акурки постнул чего-нибудь, а то я воюю с интерпретаторами, как с ветряными мельницами. уже в отчании полез rtads авторский комплект качать(почему его нельзя взять отдельно от проигрывателя?) но, чё-то не качается... у меня к томуж комп новый недавно после большого перерыва и флэшгета у меня нет. и вообще много чего полезного нет.

Спасибо: 0 
Профиль
Korwin
постоянный участник


Сообщение: 348
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 30.03.08 23:20. Заголовок: Qwerty, кинь почту в..


Qwerty, кинь почту в личку только пиши вместо собаки "гав" для спам-роботов, отправлю тебе что нужно для tads. Вообще привет :)

Спасибо: 0 
Профиль
GooseMan



Сообщение: 26
Зарегистрирован: 11.12.07
ссылка на сообщение  Отправлено: 01.04.08 11:19. Заголовок: Для Noname Посмотрит..


Для Noname
Посмотрите URQ Arena. там именно набросок ОБЪЕКТНОГО мира. писалось сие под Досурку, посему весьма коряво обойдено отсутствие xBtn.
Однако монстры (ака боты), вещи и локации задуманы и реализованы как объекты. Ессно, в данной реализации игра весьма тупа, но в свое время у мну были думки заставить ботов двигацо самостоятельно, и брать, например, вещи, "просматривать" локации, соседние со своей в поисках Персонажа. Поройтесь в кишках, я там подробное описание оставил.
А вообще, самостоятельный мир на Урке вполне возможно построить, в частности, описать не только свойства объектов, но и так скэть, их методы: всемогущий #$ творит чудеса. Наброски реализации методов я делал в DoA (лежит в аплоде, перманентно не закончена) - правда, опять же, без алгоритма обработки самостоятельных действий НПС, но сие можно реализовать элементарно, прописываем в метод объекту имя метки, ответственной за некое действие, и обрабатываем эту метку процем в коммоне при каждом ходе...

Спасибо: 0 
Профиль
noname
постоянный участник




Сообщение: 81
Зарегистрирован: 17.03.08
ссылка на сообщение  Отправлено: 01.04.08 19:44. Заголовок: GooseMan твою Арену ..


GooseMan твою Арену смотрел и ковырял и она- одна из прог, которые вдохновили меня начать писать Ж.И.М.

стараюсь писать не просто в ООП стиле, но и давать такие имена, чтоб не запутаться, когда прога станет непомерно большой и на куски логические разделять

разве из последней выложенной здесь проги не видно?

#$ мне ооочень нравится, но ненравится работа интерпретаторов
а свой писать- долго, да и наверняка непредвид трудности возникнут
а вообще, в конце-концов напишу свой интерпретёр
p.s.
привинтить интеллект персонажам- не проблема.
могу сделать их хоть умнее гамера,
причём без гандикапа, чисто чесным мухлежом:
они-то знают где что находится, а игрок-нет.
пока проблема в интерпретаторах и неудобствах
p.p.s.
за своё пропадание дико извиняюсь- не виноватый я.
меня жизнь так перевернула, что ваааще.

Спасибо: 0 
Профиль
GooseMan



Сообщение: 33
Зарегистрирован: 11.12.07
ссылка на сообщение  Отправлено: 02.04.08 08:35. Заголовок: noname пишет: дават..


noname пишет:

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


Это дааааааа, это верноооооо :-D/

кстати - непомерная большесть - это главная трудность имитации ООП на УРКЛ. Хотя ЖИМЪ на УРКЛ при должном умении будет живее чем на специализированных ООП-платфоромах, которые обладают хоть и развитой, но жесткой системой объектов, связанных вполне определенными связями. А вот в УРКЛ мы до поры до времени используем псевдо-ООП, а потом РРРАЗ, и задвигаем его в дальний ящик, возвращаясь к вольному линейно-командному алгоритмическому стилю.

Если бы был нормально реализованный механизм инклюда - тогда запросто можно было бы разбивать игру на отдельные файлы - механизм (движок), карты, монстры, аддоны ))) - что упростило бы навигацию в коде впоследствии

Спасибо: 0 
Профиль
noname
постоянный участник




Сообщение: 84
Зарегистрирован: 17.03.08
ссылка на сообщение  Отправлено: 02.04.08 18:53. Заголовок: ну а пока можно разд..


ну а пока можно разделять
;---------------------------------------
комментариями
p.s.
а ещё, по-моему в досурке нет работы с файлами

Спасибо: 0 
Профиль
Korwin
постоянный участник


Сообщение: 350
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 03.04.08 09:28. Заголовок: include..


include

Спасибо: 0 
Профиль
GooseMan



Сообщение: 38
Зарегистрирован: 11.12.07
ссылка на сообщение  Отправлено: 03.04.08 10:17. Заголовок: вот если бы работало..


вот если бы работало такое:

res.qst
-------
:pseudo-function
<code>
end
-------

main.qst
--------
include res.qst

:label
<code>
proc pseudo-finction
<code>
end
-----

пока вроде не работает?

Спасибо: 0 
Профиль
Ответов - 136 , стр: 1 2 3 4 5 6 7 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 0
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет