Здравствуйте, гость ( Вход | Регистрация )
| igor_pol |
Aug 24 2005, 21:00
Сообщение
#1
|
|
боцман ![]() ![]() ![]() ![]() Группа: форумчанин Сообщений: 140 Регистрация: 3-December 04 Пользователь №: 169 |
Первое что я хотел написать "АДМИНЫ!!!!" НЕ ЗВЕРЕЙТЕ ЗА "НЕНУЖНУЮ ТЕМУ"
************************************************** на вопрос зачем создал эту тему отвечу так "Я например НЕ ПРОСТО ЮЗВЕРЬ А КОЕ ЧТО И САМ НАПИСАТЬ МОГУ. И хотел бы чтобы на форуме была тема для тех кто сам хочет что-то добавить в игру. На сайте аддона Алекс вікинул ссылку на описание скриптов ПКМ на английском. Я хотел бы узнать где можно нарыть больше инфы по этом скриптам. И кстати на каком языке они пишуться. Если кто-то знает ----- пишите. И вообще всем програмерам на форуме нужна своя тема. так что ГОСПОДА ПРОГРАМЕРЫ ВАЛИТЕ СЮДА !!!! Может из этого что небудь интересное выйдет!!!!!!(Если тему не УТРУТ) Жду сообщений (может у когот есть идеи на эту тему ) Сообщение отредактировал Догева - Apr 24 2006, 13:36 |
![]() ![]() |
| navy |
Jun 2 2010, 06:42
Сообщение
#421
|
|
Hagane no Renkinjutsushi ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Seaward.Ru Team Сообщений: 5,973 Регистрация: 15-March 05 Из: Волгоград Пользователь №: 578 |
Цитата 2 navvy как раз надо чтобы в мирное время суток ночью их не было а в военое время были всегда. Ну значит ищи где они вообще выставляются, смотри какие там проверки стоят, и ставь свои... если bDisableMapEnter там еще не выставлен, значит пиши свои, как и говорил Варшип... проверкой враждебных кораблей в радиусе атаки. |
| Black Angel |
Jun 6 2010, 23:46
Сообщение
#422
|
|
боцман ![]() ![]() ![]() ![]() Группа: форумчанин Сообщений: 256 Регистрация: 19-August 06 Из: Нижний Новгород Пользователь №: 3,985 |
Подскажите как включить все файрплайсы на коробле?
и еще вопрос - почему когда я пишу: Код string kLocator = LAi_FindFreeRandomLocator("goto"); ChangeCharacterAddressGroup(sld, "Shore57", "goto", kLocator); игра падает в этом месте? В ерор логе нет ничего.Почему так? З.Ы. Скрипты кгпк патча 1.2.4 |
| navy |
Jun 7 2010, 06:53
Сообщение
#423
|
|
Hagane no Renkinjutsushi ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Seaward.Ru Team Сообщений: 5,973 Регистрация: 15-March 05 Из: Волгоград Пользователь №: 578 |
Цитата игра падает в этом месте? а ты уверен, что находишься в локации Shore57? |
| Black Angel |
Jun 7 2010, 10:23
Сообщение
#424
|
|
боцман ![]() ![]() ![]() ![]() Группа: форумчанин Сообщений: 256 Регистрация: 19-August 06 Из: Нижний Новгород Пользователь №: 3,985 |
а ты уверен, что находишься в локации Shore57? абсолютно.Сначало гружу гг потом перегружаю локацию,потом пишу те строки и игра падает.И в чем косяк не знаю. вот код в котором это используется: Код for (i=1; i<6; i++) { sTemp = "pirate_" + i; sld = GetCharacter(NPC_GenerateCharacter(sTemp, sTemp, "man", "man", 15, PIRATE, 1, true)); LAi_SetWarriorType(sld); LAi_SetStayType(sld); LAi_warrior_DialogEnable(sld, true); LAi_SetLoginTime(sld, 0.0, 24.0); LAi_SetHP(sld, 250.0, 250.0); sld.BreakTmplAndFightGroup = true; string kLocator = LAi_FindFreeRandomLocator("goto"); ChangeCharacterAddressGroup(sld, "Shore57", "goto", kLocator ); LAi_group_MoveCharacter(sld, "EnemyFight"); } а вот если записать вот так: Код ChangeCharacterAddressGroup(sld, "Shore57", "goto", "goto"+i); то все работает нормально,только создаваемые боты все время находятся местами в двоем в одной локаторе. |
| navy |
Jun 7 2010, 11:59
Сообщение
#425
|
|
Hagane no Renkinjutsushi ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Seaward.Ru Team Сообщений: 5,973 Регистрация: 15-March 05 Из: Волгоград Пользователь №: 578 |
Смотри код ГПК, там где абордаж, там раскидываются враги по локаторам.
|
| dolphin_sv |
Jun 7 2010, 20:19
Сообщение
#426
|
|
матрос ![]() ![]() ![]() Группа: форумчанин Сообщений: 88 Регистрация: 23-May 05 Из: Донецк Пользователь №: 771 |
ПОпробуй так:
PlaceCharacter(sld, "goto", "random_must_be"); |
| Black Angel |
Jun 8 2010, 21:34
Сообщение
#427
|
|
боцман ![]() ![]() ![]() ![]() Группа: форумчанин Сообщений: 256 Регистрация: 19-August 06 Из: Нижний Новгород Пользователь №: 3,985 |
2 dolphin_sv
Спасибо огромное!Работает отлично!Сам бы никогда до такого не додумался Подскажите пожалуйста где ошибка? Код void after_abordage() { SetEventHandler(SHIP_ACTIVATE_FIRE_PLACE, "Ship_ActivateFirePlace", 0); ref rShipObject; int iNumFirePlaces = 10; SendMessage(pchar, "le", MSG_SHIP_GET_NUM_FIRE_PLACES, &iNumFirePlaces); for (i=0; i<=iNumFirePlaces; i++) { PostEvent(SHIP_ACTIVATE_FIRE_PLACE, rand(300), "ialsfl", pchar, pchar, i, "ship_onfire", 3, -1); PostEvent(SHIP_FIRE_DAMAGE, rand(300), "lllf", pchar, pchar, i, 3); } } |
| Black Angel |
Jun 13 2010, 23:40
Сообщение
#428
|
|
боцман ![]() ![]() ![]() ![]() Группа: форумчанин Сообщений: 256 Регистрация: 19-August 06 Из: Нижний Новгород Пользователь №: 3,985 |
Почему когда пишу так:
Код ref rCharacter = &Characters[iAbordageCharacter]; aref rShipObject = GetRealShip( sti(rCharacter.ship.type) ); Ship_SetExplosion(rCharacter, rShipObject); в Ship_SetExplosion на строчку PostEvent(SHIP_ACTIVATE_FIRE_PLACE, rand(300), "ialsfl", rShipObject, rCharacter, 1, "ship_onfire", 330, -1); не подается тот самый корабль(ничего не происходит).А когда обращаюсь из BattleInterface.с всё работает нормально. В чем причина? Когда пишу вместо rCharacter pchar то вот такая картина: ![]() а когда стоит rCharacter то вот такая картина: ![]() |
| navy |
Jun 15 2010, 06:54
Сообщение
#429
|
|
Hagane no Renkinjutsushi ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Seaward.Ru Team Сообщений: 5,973 Регистрация: 15-March 05 Из: Волгоград Пользователь №: 578 |
по твоим кускам кода не понятно ничего... принцип тот же, смотри как уже сделано, и делай так же
|
| ALexusB |
Jun 15 2010, 09:47
Сообщение
#430
|
|
Разработчик ВМЛ-КВЛ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Admin Сообщений: 16,676 Регистрация: 2-November 04 Пользователь №: 3 |
код вида
string kLocator = LAi_FindFreeRandomLocator("goto"); можно просто не найти локатор, потому и сделан был флаг "мас_би" в PlaceCharacter(sld, "goto", "random_must_be"); Визуально НПС гуляют, но имеют приписку к локатору, а их конечное число и все заняты. В случае гото можно пихать на один локатор толпы, потом разбредутся. Главное что б локатор был вне поля зрения (сзади ГГ). Так сделан абордаж на суше - место респавна. В вот в таверне сидячие места будут с наложениями уже, потому там нужно убедится, что место есть в принципе (опять же в коде есть примеры с рассадкой ПГГ и пьяни с офами). |
| Black Angel |
Jun 15 2010, 11:07
Сообщение
#431
|
|
боцман ![]() ![]() ![]() ![]() Группа: форумчанин Сообщений: 256 Регистрация: 19-August 06 Из: Нижний Новгород Пользователь №: 3,985 |
2 ALexusB
Спасибо за разъяснения по твоим кускам кода не понятно ничего... принцип тот же, смотри как уже сделано, и делай так же Еслибы в коде имелись рабочие примеры...там они закоменченые и не жизнеспособные-падает игрушка при их использовании. Вот весь воид: Код void Ship_SetExplosion(ref rCharacter, ref rShipObject) { SendMessage(rShipObject, "le", MSG_SHIP_GET_NUM_FIRE_PLACES, &iNumFirePlaces); PostEvent(SHIP_ACTIVATE_FIRE_PLACE, rand(300), "ialsfl", rShipObject, rCharacter, 1, "ship_onfire", 330, -1); PostEvent(SHIP_BRANDER_DETONATE, 800, "l", sti(rCharacter.index)); PlaySound("Sea Battles\Vzriv_fort_001.wav"); Ship_SetTaskNone(SECONDARY_TASK, sti(rCharacter.index)); } И при подаче на 2 строчку из AIAbordage.c из воида void Return2SeaAfterAbordage() со строчек кода Код ref rCharacter = &Characters[iAbordageCharacter]; aref rShipObject; Ship_SetExplosion(rCharacter, rShipObject); не находит rShipObject.При попытке присвоить что либо вразумительное либо падает игра либо опять таки ничего не происходит. А когда заменяю на Ship_SetExplosion(pchar, rShipObject); то происходит то что мне нужно.В чем ошибка? Еще вопрос,как насильно уронить мачту? |
| navy |
Jun 15 2010, 11:57
Сообщение
#432
|
|
Hagane no Renkinjutsushi ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Seaward.Ru Team Сообщений: 5,973 Регистрация: 15-March 05 Из: Волгоград Пользователь №: 578 |
1. у тебя rShipObject не инициализирован, следовательно вылет
2. если поискать по коду месседж SHIP_ACTIVATE_FIRE_PLACE, то можно найти куски рабочие, и ты можешь сравнить и поискать рабочий вариант |
| Black Angel |
Jun 15 2010, 15:44
Сообщение
#433
|
|
боцман ![]() ![]() ![]() ![]() Группа: форумчанин Сообщений: 256 Регистрация: 19-August 06 Из: Нижний Новгород Пользователь №: 3,985 |
1. у тебя rShipObject не инициализирован, следовательно вылет 2. если поискать по коду месседж SHIP_ACTIVATE_FIRE_PLACE, то можно найти куски рабочие, и ты можешь сравнить и поискать рабочий вариант 1.а как его инициализировать?Простите за тупой вопрос,но я раньше с этим не сталивался... 2.искал.Написано тож самое. |
| dolphin_sv |
Jun 15 2010, 19:52
Сообщение
#434
|
|
матрос ![]() ![]() ![]() Группа: форумчанин Сообщений: 88 Регистрация: 23-May 05 Из: Донецк Пользователь №: 771 |
Инициализация переменной = указание значения по умлочанию (начального значения)
Напр.: int i=0; Инициализация переменной i; int i; описание переменной i; Короче, у тебя при передаче rShipObject = nil, т.е. ничему, отсюда вылет. |
| Black Angel |
Jun 15 2010, 23:13
Сообщение
#435
|
|
боцман ![]() ![]() ![]() ![]() Группа: форумчанин Сообщений: 256 Регистрация: 19-August 06 Из: Нижний Новгород Пользователь №: 3,985 |
Инициализация переменной = указание значения по умлочанию (начального значения) Напр.: int i=0; Инициализация переменной i; int i; описание переменной i; Короче, у тебя при передаче rShipObject = nil, т.е. ничему, отсюда вылет. ааа...ну в общето привык что это называется присвоением И она не вылетае,а ничего не происходит. Даже если и пишу ref rShipObject = GetRealShip( sti(rCharacter.ship.type) ); все равно ничего не происходит. |
| dolphin_sv |
Jun 15 2010, 23:23
Сообщение
#436
|
|
матрос ![]() ![]() ![]() Группа: форумчанин Сообщений: 88 Регистрация: 23-May 05 Из: Донецк Пользователь №: 771 |
Присваивание - это операция, инициализация - это действие
т.е. в данном случае знак "=" это операция присваивания, а cовокупность объявления типа, имени переменной и операции присваивания - это инициализация. |
| Black Angel |
Jun 15 2010, 23:28
Сообщение
#437
|
|
боцман ![]() ![]() ![]() ![]() Группа: форумчанин Сообщений: 256 Регистрация: 19-August 06 Из: Нижний Новгород Пользователь №: 3,985 |
Присваивание - это операция, инициализация - это действие т.е. в данном случае знак "=" это операция присваивания, а cовокупность объявления типа переменной и операции присваивания - это инициализация. Спасибо,теперь понял эту неуловимую разницу А по коду ничего никто не знает? Особенно про мачту меня очень интересуе,т.к. в коде ни примера ни объяснения как этим пользоваться... |
| navy |
Jun 16 2010, 06:53
Сообщение
#438
|
|
Hagane no Renkinjutsushi ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Seaward.Ru Team Сообщений: 5,973 Регистрация: 15-March 05 Из: Волгоград Пользователь №: 578 |
попробуй поставить так
PostEvent(SHIP_ACTIVATE_FIRE_PLACE, rand(10), "ialsfl", rCharacter, rCharacter, 1, "ship_onfire", 330, -1); |
| Black Angel |
Jun 16 2010, 12:16
Сообщение
#439
|
|
боцман ![]() ![]() ![]() ![]() Группа: форумчанин Сообщений: 256 Регистрация: 19-August 06 Из: Нижний Новгород Пользователь №: 3,985 |
попробуй поставить так PostEvent(SHIP_ACTIVATE_FIRE_PLACE, rand(10), "ialsfl", rCharacter, rCharacter, 1, "ship_onfire", 330, -1); на выходе вылет без ошибок.Просто вылет и все. Применяя на ГГ все нормально работает,а как применяю на НПС падает.Причем сразу после закрытия окошечка абордаж падает. Для того чтобы было ясно чего я хочу добиться в конечном результате -тонущий взрывающийся и горящий корабль с рандомно падающей мачтой после абордажа.Судно топят подрывом порохового погреба. У меня судно тонет,взрывается,но почему то не горит.Ну и с мачтой я не знаю вообще ничего что да как с ней. Кто подскажет? |
| navy |
Jun 17 2010, 06:48
Сообщение
#440
|
|
Hagane no Renkinjutsushi ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Seaward.Ru Team Сообщений: 5,973 Регистрация: 15-March 05 Из: Волгоград Пользователь №: 578 |
Ну значит ищи рабочие варианты... Смотри готовые вызовы, анализируй. Скорее всего ты вызываешь этот метод не там или не на того чара.
Вылет без ошибок? А систем лог что говорит? |
![]() ![]() |
| Текстовая версия | Сейчас: 30th April 2026 - 04:02 |