![]() |
Вопросы по синтаксису языка BlitzBasic
[blitz]
If GM\name = "фриц" U\mesh = CopyEntity GM\Mesh; еслиимямодели - "фриц" то копируем мешвюнита. [/blitz] Запускаю, ругается: Цитата:
Помогите, может, туплю не по-детски, но всё равно просьба ногами не бить, я только учусь :) Кстати вот код типов, всё с комментариями: [blitz] TypeGameModel; Тип, вкоторомхранитсяигроваямодель + еёназвание. Field Mesh; Самамоделька, собственно Fieldname$ ; Имямодели EndType Type unit ; Очень ёмкое понятие. Пока что и в основном это враги, ; но также могут быть и здания, и всё другое что атакует и что можно убить. Field HP = 100 ; Единицы здоровья. Куды ж без этого? Field Mesh ; моделька юнита. Field status$ = "идёт к цели" ; статус бота. По нему программа определит, как анимировать модель и какие действа выполнять Field anim_status$ = "нифига не делает" ; статус анимации бота, указывает, как в данный момент анимирована модель. Field speed# = 0 ; скорость бега бота (он не стартует с места сразу, а немного "разгоняется", по сему нужна эта переменная) Field target.target ; цель, к которой бежит бот, котоая описана в отдельном типе (хз, а может ещё и не описана - всё времени нету прогу писать) Field Kind$ = "фриц" ; тип монстра (бота), в данном случае - "фриц" End Type ; вроде для юнитов на данном этапе всё. [/blitz] |
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
А ты определял GM и U как указатели к типам? (Кстати, разве можно присавивать значения прямо в описание филдов?!). Выложи весь код (Не сопру!)
|
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то руга
Цитата:
[blitz] Function Create_Unit() ; Создаёт юнита в игре. В функцию нужно передать цель бота. (или не надо...) U.unit = New unit ; Создаём новый элемент типа "юнит" U\HP = 100 ; Устанавливает здоровье юнита на сотню! For GM.GameModel = Each GameModel ; перебираем все загруженные модели If GM\name = "фриц" U\mesh = CopyEntity GM\Mesh ; если имя модели - "фриц" то копируем меш в юнита. Next ; U\target = target ; ставим боту цель, которая была передана в функцию ПОКА НЕ СТАВИМ End Function ; Кажись, всё. [/blitz] Но если нужно, могу дать и весь исходник с ресурсами. |
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
Цитата:
:-D |
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
tormoz, дело в том, что я при копировании кода из Блитза в сообщение использовал ИЕ7 т.к. он сохраняет разноцветный синтаксис. Однако, он почему-то "зохавал" некоторые пробелы (знаю, звучит нереально, но всё же), мне их пришлось вставлять заново, кое где пропустил, как в этом случае. В коде у меня все пробелы на месте, даже в сообщении видно, что слово New выделено синеньким, а Unit - белым.
Впредь буду Оперу юзать - она пробелы никогда не теряет.. Ну что, кто нибудь знает решение проблемы? |
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
Belamore
я цвет и шрифт подправил :) а то уж слишком сильно давило на глаза подправь тогда и пробелы |
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
Аргументы к функциям, которые возвращают какие-либо значения нужно писать в скобках!
U\mesh = CopyEntity(GM\Mesh) |
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
Frank, спасибо, помогло!
Теперь другой вопрос. Пытаюсь проверить существование в филде бота цели: [blitz]If bot\target <> Null[/blitz] Пишет: Цитата:
[blitz]Type target ; Тип цели, к которой следует направлять ботов. Field target_unit.unit ; целевой юнит, на который будет производиться атака либо другие манипуляции вроде заклинаний и т.п. ; либо если отсутствует целевой юнит будет создаваться меркер для атаки на него, если, например, надо атаковать просто землю ; я ещё не решил до конца, может, создам юнита-пустышку чтоб атаковать его без геморроя с маркерами. Field action ; действие, которое будем применять к целевому юниту, будь то атака, либо заклинание. End Type[/blitz] Объясните, в чём дело? Извините, если вопрос тупой, но всё же мне нужна ваша помощь. |
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
Так-с, с пердыдущим вопросом я разобрался...
Теперь новый: [blitz] Function CreateUnit() ; Создаёт юнита в игре. В функцию нужно передать цель бота. (или не надо...) U.unit = New unit ; Создаём новый элемент типа "юнит" U\HP = 100 ; Устанавливает здоровье юнита на сотню! For GM.GameModel = Each GameModel ; перебираем все загруженные модели If GM\name = "фриц" U\mesh = CopyEntity (GM\Mesh) ; если имя модели - "фриц" то копируем меш в юнита. Next Return U [/blitz] На строчке Return U Выдаёт тот самый Цитата:
|
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
ыыы... возвращай что-то конкретное
Return U\mesh |
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
Raiter, мне нужно именно возвратить целый элемент типа.
|
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
Зачем?
|
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
Raiter, чтобы потом к нему (элементу) можно было обратиться
|
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
Может хенндлами лехче было бы? )))
Сам недавно начал про них узнавать. Конечно может я не прав, ну если я прав то форумчане-ветераны тебе точно всё обьяснят. |
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
breadman, нельзя ли не так лаконично? Можно поподробнее про хендлы?
|
Часовой пояс GMT +4, время: 21:46. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot