def string const ItemNameSDO = "Sniper Rifle M14 DMR (7.62x51mm)" эта фраза должна вызываться после того как игрок получил информацию о месте нахождения вещи
phrase PlayerKnowItemLocationInSDO
on evet "Sector loading finished "+SudadDeOro.Name call AddSectorItem (SudadDeOro.Name, ItemNameSDO, ItemPlaceSDO ) delete when "Item finded in SDO"
on event 'Player takes '+ItemNameSDO throw "Item finded in SDO" delete when 'Finish Quest'
end phrase
так же тебе нужно будет дописать в файле SudadDeOro.INI.PLACES Place "ItemPlaceSDO" X Z Y Look 0 0 0 Radius 0.1
где X Z Y, это конкретные числовые координаты предмета в секторе, с делителем "." Например X = -59.352709
"Они хотели нас похоронить, но не знали, что мы семена" (мексиканская пословица)
Сообщение отредактировал Vorot - Пятница, 29.04.2011, 01:15
phrase Test()//Checks health at battle start TestHealth.TMPHealth = call GetAttribute(Player.LocalID, skHP) this.SetLookupEvent() end phrase
phrase SetLookupEvent() local CheckHealth = call GetAttribute(Player.LocalID, skHP) if(CheckHealth<TestHealth.TMPHealth) //Do what you want to do when your guy gets hit else on event TIMER1+3 callm this.SetLookupEvent() end if end phrase
INITIAL on event "Battle start" callm TestHealth.Test() ALWAYS END INITIAL end
Важное замечание - в конец on event "Battle start" callm TestHealth.Test() ALWAYS
надо бы добавить DELETE WHEN "Battle end", иначе эвенты накапливаться будут - при каждом старте битвы новый запустится, а потом, при ранении, сработают все разом...
1. Она добавляет только один вариант использования предмета. 2. Она отменяет все предыдущие варианты, характерные для данного предмета. "Они хотели нас похоронить, но не знали, что мы семена" (мексиканская пословица)
Подскажите пожалусто, что не так! Пробовал добавить Рико Риезу для продажи FMTV (Не хочу дружить с герильясами, но хочу броневик) -- вроде все получилось и ошибок никаких не было. В тестовом режиме все работает отлично, а в самой игре никаких изменений не происхлдит кроме добавления миллиона баксов
Подожди минутку, сейчас при помощи телепатии проникну в твои мысли, если ты смотришь на написанный код, то сразу увижу в чем причина...
[прошло 30 минут] Нет! Не получается! Что то сегодня телепатия не срабатывает... Или ты моргал пока я пытался разобраться?
2 BonuZZ Если по делу, то как тебе можно что-то посоветовать не видя кода? Особенно подсказать что не так, не понимая как ты что-то реализовал? Выложи в тему. "Они хотели нас похоронить, но не знали, что мы семена" (мексиканская пословица)
Сообщение отредактировал Vorot - Воскресенье, 19.06.2011, 04:33
Признаюсь сразу (и пусть буду дураком), я ж мало что понимаю. Пытаюсь просто разобраться в том что для меня интересно а по сути тыкаюсь тупо как слепой котенок... даже не понял про какой код идет речь. С утра пришла мысль, что программа работает с файлом Local_1_Credit.a , да? А если я хочу сделать что то свое, то мне вместо этого надо запихать файл RicoRies.a, тогда получу рабочий мод? Тока пожалусто не смейтесь надо мной... ... Убрался миллион баксов, а Рико риез перекочевал в КК (?), но по прежнему не хочет продавать FMTV
Сообщение отредактировал BonuZZ - Воскресенье, 19.06.2011, 11:41
RicoRies.a и так существует в e1p\subject\calicantinos и описывает его. Можешь конечно вносить правки в него, но лучше всего написать отдельный мод. В общем как файл будет называться не имеет значения. "Они хотели нас похоронить, но не знали, что мы семена" (мексиканская пословица)
Фигня выходит. Смог сделать так: Копирую файл (уже отредактированный) RicoRies.a в папку MyMod/Quests и прописал в start.a путь к нему. При компиляции получается 43 предупреждения, но все работает -- покупаю у Рико FMTV и Хамвик, все отлично. Копирую файлы в игру и начинаю новую игру. Стартую с 3000000$ (увеличил в тесте, чтобы на все машины хватило) и иду в КК. Рико находится в самом КК и... на этом все. Диалог с ним остался прежним, как если бы я ничего не делал.
На большее пока мозгов не хватает Код не покажу -- много текста
Сообщение отредактировал BonuZZ - Воскресенье, 19.06.2011, 22:12
Зря ты продублировал описание Рико. Достаточно создать отдельный файл с кодом, в котором будет содержать только следующее:
replace RicoRies.VehicleDialog by phrase RicoRies_VehicleDialog_Bonuzz()
здесь ты пишешь фразу (VehicleDialog) с теми изменениями, которые внес в нее, т.е. вариант включающий диалог для FMTV... end phrase
скомпилировать, потом отдельным модом вставить в игру... (см. пример.) как-то так. если все сделал правильно то код будет работать, а Рико продавать броневичек...
P.S. Можешь прислать на мыло те изменения, которые внес, я посмотрю... "Они хотели нас похоронить, но не знали, что мы семена" (мексиканская пословица)
Сообщение отредактировал Vorot - Понедельник, 20.06.2011, 02:55
replace RicoRies.VehicleDialog by phrase RicoRies_VehicleDialog_Bonuzz()
if (Has this HasWillis) print("Есть Виллис с прицепом - 60000 эльдо.") if (callm Player.GetMoney()>=60000) then userch("Беру Виллис.", 1) end if
if (Has this HasHummer) print("Есть Хаммер - 500000 эльдо.") if (callm Player.GetMoney()>=500000) then userch("Беру Хамвик.", 2) end if
if (Has this HasBTR) print(" Есть бронетранспортёр БТР-70, правда, без пушки... За него хочу миллион.") if (callm Player.GetMoney()>=1000000) then userch("Беру БТР.", 3) end if
if (Has this HasFMTV_A1R) print(" Имеется армейский грузовик FMTV A1R, за такой тебе придется выложить пару миллионов.") if (callm Player.GetMoney()>=2000000) then userch("Беру FMTV.", 4) end if
if (not has this Prepaid) if (has this HasWillis or has this HasHummer or has this HasBTR or has this HasFMTV_A1R) print(" Кроме того, можно оставить задаток в размере 1000 эльдо и заказать другую машину, причем нужного цвета и комплектации...") else print("Сейчас машин в наличии нет. Но можно оставить задаток в размере 1000 эльдо и заказать машину нужного цвета и комплектации...") end if
if (callm Player.GetMoney()>=1000) userch("Хорошо, я готов оставить задаток.", 5) end if else if (not has this HasWillis and not has this HasHummer and not has this HasBTR and not has this HasFMTV_A1R) print("Ничего нет.") userch("Чёрт! (конец разговора)", ucExit)
askch
stop chat imm end if end if
userch("Хорошо, я подумаю. (конец разговора)", ucExit)
switch (askch) when 1: Player.DecMoney(60000) call AddCar(VehWillis) this.Delete HasWillis when 2: Player.DecMoney(500000) call AddCar(VehHummer) this.Delete HasHummer when 3: Player.DecMoney(1000000) call AddCar(VehBTR) this.Delete HasBTR when 4: Player.DecMoney(2000000) call AddCar(VehFMTV_A1R) this.Delete HasFMTV_A1R when 5: print("Замечательно! Так какую машину ты желаешь иметь в своем гараже?") userch("Я еще подумаю. (конец разговора)", ucExit)
if (not has this HasWillis) then userch("Хочу Виллис с прицепом.", ucOK) userch("Хочу ГАЗ69.", ucOK) userch("Хочу Урал.", ucOK) userch("Хочу грузовик FMTV A1R.", ucOK) userch("Хочу Хаммер.", ucOK) if (not has this HasBTR) then userch("Хочу БТР.", ucOK)
if (askch==ucOK) print("Отлично! А цвет?")
userch("Красный, конечно.", ucOK) userch("Чисто черный.", ucOK) userch("Серебристый металлик.", ucOK) userch("Голубой...", ucOK) userch("Камуфляж.", ucOK) userch("Да любой, лишь бы веселенький!", ucOK) askch
print("Без проблем! Давай сюда задаток, через неделю-другую приходи... Кстати, вот договор, обрати внимание, что в случае отказа от машины до ее прихода в Кали-Кантинос задаток не возвращается.")
userch("Ладно, я передумал, обойдусь пока без машины...", ucExit) userch("Вот деньги.", ucOK)
if (askch==ucOK) this.Add Prepaid Player.DecMoney(1000)
print("Я позвоню, как машина прибудет на склад...") wait else print("Приходи, как надумаешь.") wait end if end if end switch end phrase
Я уверен что с кодов все хорошо, а вот с replace я туплю. Обидно даже, ведь наверняка какая то мелочь...
2 BonuZZ Все прекрасно сделал! Молодец. Прочитай внимательно: if (Has this HasFMTV_A1R), условие на предложение тебе броневика станет активным если где-нибудь объекту RicoRies добавить атрибут HasFMTV_A1R. Виллис и БТР добавляются в описании объекта. Поэтому теперь в секции отладочных читов мода добавь:
RicoRies.Add HasFMTV_A1R = Yes
Желаю быстрой и безопасной езды. ))) Проверил в симуляторе, все работает. Посмотри в игре.
P.S. Про Хаммер все то же самое... ты уже конечно сам понял. "Они хотели нас похоронить, но не знали, что мы семена" (мексиканская пословица)
Сообщение отредактировал Vorot - Понедельник, 20.06.2011, 17:38
Если бы я мог, сднлал бы его призом за квест какой нибудь, но пока не в силах
Теперь ты умеешь делать replace, так что легко сможешь сделать его бонусом за любой из оригинальных квестов... "Они хотели нас похоронить, но не знали, что мы семена" (мексиканская пословица)
Vorot, огромное тебе спасибо за помощь и терпение при возне со мной. Мод в игре еще не пробовал, но в тесте работает отлично, так что надеюсь роблем не будет.
P.S. вчера этот же мод компилировал дома после работы -- выдает ошибку на последнюю строку, хотя код брал тот же что показывал тебе. Возьму скомпилированные файлы с работы и буду пробовать их.
В конце любой строки должен быть "конец строки". Т.е. нажми на всякий случай "Enter". "Они хотели нас похоронить, но не знали, что мы семена" (мексиканская пословица)