|
|
| DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! | |
|
+20stephos*85 system Dog_patch HDC Wombat_73 Drukzz Xmen Birdy62 BrigaN51 Sinner neoflo88 lordsamael ooy kahului kam!k@z-warRioR highlander87 bamo karl168 FARRAKHAN boutch71 24 participants | |
Auteur | Message |
---|
boutch71 Fondateur et Admin
Messages : 1672 Date d'inscription : 25/03/2011 Age : 53 Localisation : Panneau De Control du Réacteur!
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Lun 18 Juil 2011, 01:29 | |
| En éclairage Dynamic Complet DX9 les possibilités d'amélioration des shaders sont plus compatibles et plus équilibrer tandis que le "Static Lighting DX8" n'offrent aucune amélioration car, non compatible.
Si vous possédez une carte graphique qui vous permet une résolution en 1600x1020 et compatible DX9 pourquoi vous priver de ses paramètres?? surtout si votre processeur est suffisamment puissant.
Ceux qui sont en possession d'un "CPU Dual core" sont vraiment à la limite pour le DMX 1.3.4
Ceux qui sont en possession d'un "Core 2 Duo serie" et "AMD Athlon x2" aurons des résultats satisfaisant!
Ceux qui sont en possession des CPU de série "Core i3 et i5" et la série AMD phenom II x4 aurons des résultats très satisfaisants!
Ceux qui sont en possession d'un "core i7 920,950,960 et "Extrême série x6 core" et la série "AMD Phenom II x6" seront en mesure d'avoir un plus large avantage au niveau des réglages et les résultats seront extrêmement satisfaisant!
|
| | | bamo Maraudeur
Messages : 164 Date d'inscription : 23/06/2011
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Lun 18 Juil 2011, 12:30 | |
| J'ai jamais rien compris a toutes ces cartes graphiques et processeur . Mais j'espère faire tourner ce mod au moins. Sinon pour les éclairage dynamique ils fonctionne mieux ( ram moins ) sur COP que sur SOC Allez savoir pourquoi. |
| | | boutch71 Fondateur et Admin
Messages : 1672 Date d'inscription : 25/03/2011 Age : 53 Localisation : Panneau De Control du Réacteur!
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Lun 18 Juil 2011, 20:37 | |
| bamo
La commande du commutateur "-noprefetch" permet une réduction et une économie de la mémoire ram utiliser pendant le chargement d'un mod comme celui du DMX 1.3.2-dkz-02 en gros cette commande permet d'utilise moin de mémoire et ça évite à ceux qui n'ont que 2Gb de Ram d'avoir un crash "Fatal Error" avec le message "out of mémorie"
Cette commande est indispensable pour ceux qui utilisent seulement 2gb de ram mémoire elle n'est pas vraiment utile pour ceux qui possèdent plus de 4Gb de ram genre 8Gb, on peut l'utiliser mais vous ne verrais aucune différence lors du chargement du mod. |
| | | bamo Maraudeur
Messages : 164 Date d'inscription : 23/06/2011
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Lun 18 Juil 2011, 20:55 | |
| Cool je vais l'essayer cette commande, merci c'est sympas |
| | | boutch71 Fondateur et Admin
Messages : 1672 Date d'inscription : 25/03/2011 Age : 53 Localisation : Panneau De Control du Réacteur!
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Mar 19 Juil 2011, 09:14 | |
| Bonjour à tous! J'en profite pour vous donner un compte rendu des résultâts de teste sur la traduction anglaise! Après environ 1 h30min de teste j'ai eu un premier rapport d'erreur! FATAL ERROR [error]Expression : e_entity [error]Function : xrServer::Process_event_reject [error]File : E:\stalker\patch_1_0005\xr_3da\xrGame\xrServer_process_event_reject.cpp [error]Line : 12 [error]Description : entity not found. id_parent=1350 id_entity=1312 frame=11471 Il sagit d'un problème relier au fichier "bolt_ammo.script" d'après mes recherche sur mon rapport d'erreur le crash c'est produit juste après avoir été attaquer par un "Blooddsucker" je devait recharger mon arme en inserrant les munitions sur la ceinture, pas eu le temps de faire quoi que se soit le "blooddsucker" ma bouffé tout cru! et le crash c'est produit au moment ou mon arme est tomber par terre! J'ai fait une recherche sur le web en essayant de trouver la cause de mon crash et je suis tomber sur ce site - http://www.metacognix.com/stlkrsoc/CrashesStillInTheGame.html que je connaissait déja! ensuite j'ai descendu à la ligne 4 - Lost or destroyed weapon crashes affichant le même rapport d'erreur que le mien! Plus bas il décrit la cause du crash ainsi que le traitement pour y remédier, alors j'avais le choix entre recharger ma sauvegarde où bien utiliser le ZRP "store-weapons-in-backpack" (que j'ai pas utiliser) J'en est conclus qu'il sagissait du "belt_ammo.script" qui bloque au moment ou on doit recharger l'arme le script utilise la fonction et l'emplacement des munitions sur la ceinture ce qui peut très probablement causer ce genre de crash sans pour autant détecter le fichier erreur. Alors j'ai appliquer la modification (Proposer par un membre du forum de GSC Games) du fichier "belt_ammo.script" en revenant avec la méthode classic de rechargement en modifiant tous les ammo - true en false. par la suite je n'est pas rencontrer aucun autre crash. Cette méthode seras proposer lors de la publication de la version anglaise BÉTA du DMX 1.3.4! Le deuxième problème est moin grave mais un peut ennuyeux, il sagit du script de la mission de sidorivich "Meet the guide" qui ne s'affiche pas sur la map! le personnage doit "spawner à l'endroit exacte au moment ou la mission s'enclanche et le point sur la map ne s'affiche pas! et le cadavre du "guide" n'est pas là non plus! mais une fois le tunnel passé la mission est réussi! Cette traduction anglaise passeras en version BÉTA car il y auras très certainement des corrections à y apporter j'ai bossé comme un fou sur cette traduction et je doit vous avouer que j'ai peine à m'y retrouver tellement y as de fichiers!!! l'important pour le moment est d'espérer ne pas me retrouver bloquer par un script similaire à celui de "Meet the guide" sinon je devrais tout recommencer du début et là je jette l'éponge! j'aurais plus assez de temps pour tout revérifier à nouveau. j'ai l'intention après la publication de la traduction d'envoyer tout les fichiers à "dariuskzoot" pour qu'il puisse (si il a du temps) vérifier afin que je puisse mettre à jour la traduction. Tout est stable en général et tous les correctifs on été ajouter vous n'aurais pas besoin de les installer ça seras un pack DMX 1.3.4 traduction anglaise personnaliser TOUT EN UN. ça seras plus simple et moin compliquer pour certain. Vous aurais le choix de tester en version 1.0004 (chose que je n'est pas eu le temps de faire!!) ou bien rester et jouer en v1.0005 les sauvegardes passent sans aucun problème en 1.0005 Bon maintenant je vous laissent car A+ Boutch71... |
| | | FARRAKHAN Expérimenté
Messages : 373 Date d'inscription : 06/06/2011 Age : 49 Localisation : brume électrique
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Mar 19 Juil 2011, 09:45 | |
| Merci pour toutes ces précisions Boutch. Passe une bonne "nuit" ! Enfin ! J'espère que tu as passé une bonne "nuit" !
Hé ! Hé ! |
| | | kahului Modo & Moddeur
Messages : 932 Date d'inscription : 21/04/2011 Age : 56 Localisation : Haute-Savoie
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Mar 19 Juil 2011, 09:52 | |
| Cool,super boulot!
Et t'inquiètes des bugs on va en rencontrer pleins,mais je serais là aussi pour t'aider à les corriger! Ce sera inévitable,un stalker sans bug ça n'existe pas à ma connaissance! Et ce sera certainement moins pire que le dmx 1.3.3 ou j'avais tenter tout seul de faire passer certains fichiers en anglais et en francais!Et néanmoins j'avais réussi à aller jusquà Yantar sans missions ratées!
Et puis le log d'erreur aide dans la majorité des cas on s'en sort,et même si c'est parfois fastidieux ce sera bien de voir jusqu'ou on pourra aller! |
| | | boutch71 Fondateur et Admin
Messages : 1672 Date d'inscription : 25/03/2011 Age : 53 Localisation : Panneau De Control du Réacteur!
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Ven 22 Juil 2011, 08:04 | |
| Narodnaya Solyanka-DMX 1.3.4-English Translation-v1.0-boutch71 Official publication in a few daysPour tout autre information sur la traduction vous pouvez me contacter par MP sur le forum ou bien à mon adresse E-Mail - bouth71@hotmail.comLa publication de la traduction sera publier plutôt que prévu!! Merci! Boutch71...
Dernière édition par Boutch71 le Ven 22 Juil 2011, 20:05, édité 2 fois |
| | | bamo Maraudeur
Messages : 164 Date d'inscription : 23/06/2011
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Ven 22 Juil 2011, 12:49 | |
| et C'est pour bientôt je n'en peut plus d'attendre je veut visiter toutes les map. En tous cas merci товарищ ( = camarade ) |
| | | boutch71 Fondateur et Admin
Messages : 1672 Date d'inscription : 25/03/2011 Age : 53 Localisation : Panneau De Control du Réacteur!
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Ven 22 Juil 2011, 20:03 | |
| Un changement de dernière minute la traduction seras publier plutôt que prévue!!
Merci de votre compréhension à tous!
Boutch71.. |
| | | bamo Maraudeur
Messages : 164 Date d'inscription : 23/06/2011
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Ven 22 Juil 2011, 20:53 | |
| Ouiiii mon précieux arrive, je suis un peu fou la C'est génial ! Je vais enfin pouvoir découvrir la grotte dont kahului me ventait l'oppression et la peur qu'on ressentait en foulant dès pas celle-ci. |
| | | boutch71 Fondateur et Admin
Messages : 1672 Date d'inscription : 25/03/2011 Age : 53 Localisation : Panneau De Control du Réacteur!
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Ven 22 Juil 2011, 21:05 | |
| Cette nouvelle version réserveras beaucoup de surprises pour plusieurs d'entre vous, surtout ceux qui ont découvert la version 1.3.2 de DKZ!!!
C'est une nouvelle évolution du mod avec encore plus de réalisme! la beauté des décords et l'environnement une météo des plus satisfaisant et les nouvelles effects des anomalies sont tout simplement éblouissant!
Que du bon pour ce 1.3.4 signé AMK TEAM create by Shadow & Charsi
|
| | | boutch71 Fondateur et Admin
Messages : 1672 Date d'inscription : 25/03/2011 Age : 53 Localisation : Panneau De Control du Réacteur!
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Lun 25 Juil 2011, 10:04 | |
| Petite rectification et correction de traduction d'un fichier .xml du DMX 1.3.2-dkz-02 "stable_treasure_manager.xml" quelques mots russe encore présent dans ce fichier maintenant corrigé! Fichier gamedata\config\weapons\ "weapons.ltx" - quelques lignes non traduit section - inv name: inv name_short: Traduit en anglais et fonctionnelle! Le seul fichier qui cause problème est le "dmx_mod.script" Image d'une section du script original: - Spoiler:
-- ÌÅÒÊÈ ÏÅÐÑÎÍÀÆÅÉ -- Óñòàíîâêà ìåòîê function mapspot_npc(sid,id) if sid==9504 then level.map_add_object_spot(id, "repair_npc_mapspot", "Òåõíèê") -- Äîëãîâÿçûé elseif sid==97123 then level.map_add_object_spot(id, "repair_npc_mapspot", "Òåõíèê") -- Âàñèëèé elseif sid==9501 then level.map_add_object_spot(id, "repair_npc_mapspot", "Òåõíèê") -- Ñÿê elseif sid==507 then level.map_add_object_spot(id, "boss_npc_mapspot", "Ãëàâíîêîìàíäóþùèé «Äîëãà»") elseif sid==707 then level.map_add_object_spot(id, "boss_npc_mapspot", "Ãëàâíîêîìàíäóþùèé «Ñâîáîäû»") elseif sid==14000 then level.map_add_object_spot(id, "boss_npc_mapspot", "Ãëàâíîêîìàíäóþùèé «×èñòîãî Íåáà»") elseif sid==003 then level.map_add_object_spot(id, "trader_npc_mapspot", "Òîðãîâåö") -- Ñèäîðîâè÷ elseif sid==500 then level.map_add_object_spot(id, "trader_npc_mapspot", "Òîðãîâåö") -- Áàðìåí elseif sid==97120 then level.map_add_object_spot(id, "trader_npc_mapspot", "Òîðãîâåö") -- Ñóñëîâ elseif sid==902 then level.map_add_object_spot(id, "trader_npc_mapspot", "Òîðãîâåö") -- Ñàõàðîâ elseif sid==734 then level.map_add_object_spot(id, "trader_npc_mapspot", "Òîðãîâåö") -- Ñêðÿãà elseif sid==9903 then level.map_add_object_spot(id, "trader_npc_mapspot", "Òîðãîâåö") -- Àäðåíàëèí end end
Traduction d'identification des marchants (traders) identifier par un icon orangé affiché sur la map dans le PDA j'ai effectuer un teste et le résultât est "négatif" je retente une dernière tentative. - Spoiler:
-- ÌÅÒÊÈ ÏÅÐÑÎÍÀÆÅÉ -- Óñòàíîâêà ìåòîê function mapspot_npc(sid,id) if sid==9504 then level.map_add_object_spot(id, "repair_npc_mapspot", "repair") -- Äîëãîâÿçûé elseif sid==97123 then level.map_add_object_spot(id, "repair_npc_mapspot", "repair") -- Âàñèëèé elseif sid==9501 then level.map_add_object_spot(id, "repair_npc_mapspot", "repair") -- Ñÿê elseif sid==507 then level.map_add_object_spot(id, "boss_npc_mapspot", "boss of the «Duty»") elseif sid==707 then level.map_add_object_spot(id, "boss_npc_mapspot", "boss of the «Freedom»") elseif sid==14000 then level.map_add_object_spot(id, "boss_npc_mapspot", "boss of the «Clear Sky»") elseif sid==003 then level.map_add_object_spot(id, "trader_npc_mapspot", "trader") -- Ñèäîðîâè÷ elseif sid==500 then level.map_add_object_spot(id, "trader_npc_mapspot", "trader") -- Áàðìåí elseif sid==97120 then level.map_add_object_spot(id, "trader_npc_mapspot", "trader") -- Ñóñëîâ elseif sid==902 then level.map_add_object_spot(id, "trader_npc_mapspot", "trader") -- Ñàõàðîâ elseif sid==734 then level.map_add_object_spot(id, "trader_npc_mapspot", "trader") -- Ñêðÿãà elseif sid==9903 then level.map_add_object_spot(id, "trader_npc_mapspot", "trader") -- Àäðåíàëèí end end
Si jamais j'obtient le même résultât que l'avant dernier teste j'abandonne et je laisse les noms par default qui malheureusement serons afficher en russe sur la map! Je persévère pour une dernière tentative ensuite je publie le tout pour en finir avec cette traduction! que plusieurs attendent avec impatience! après au besoin on corrigeras en temps et lieux. |
| | | kahului Modo & Moddeur
Messages : 932 Date d'inscription : 21/04/2011 Age : 56 Localisation : Haute-Savoie
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Lun 25 Juil 2011, 10:24 | |
| Je voudrais bien t'aider mais voici le fichier script russe du DMX 1.3.4 Il n'y a pas de mapspot! - Spoiler:
--[[----------------------------------------------------------------------------------------------- File : dmx_mod.script Description : Основной скрипт мода, содержатся квестовые функции, спавн и т.п. Copyright : DMX MOD Author : Shadows & Co --]]-----------------------------------------------------------------------------------------------
function dmx_use(obj) use_sound_items(obj) use_radiation_detector(obj) use_silencers_box(obj) use_bolt_box(obj) use_item_ammo_flame_transfer(obj) bolt_ending.on_actor_use(obj) hidden_slots.on_eat(obj:section()) dmx_medicines.medicines_use(obj) dmx_cars.car_repair(obj) end
function dmx_item_take(obj) dmx_treasure.on_item_take(obj) dmx_inv_weight_static.item_take(obj) max.on_item_take(obj) bolt_ending.on_item_take(obj) m_bar.take_item(obj) cube_take(obj) end
function dmx_item_drop(obj) razgruzka_v.lose_item(obj) hidden_slots.on_item_drop(obj) dmx_inv_weight_static.on_item_drop(obj) max.on_item_drop(obj) bolt_ending.on_item_drop(obj) m_bar.drop_item(obj) end
function dmx_update(delta) wpn_explode_update() -- Взрыв пушки dmx_medicines.radioprotector_update() -- Радиопротектор red_effect() -- Красный билдовский эффект ранения max.show_medkits() -- Индикаторы ЗП на худе dualweapon.main() -- Стрельба с двух рук hidden_slots.slots_update() -- Новые слоты dmx_inv_weight_static.update() -- Индикатор веса dmx_cars.update() -- Наш любимый транспорт keylogger.update() -- Новые кнопки rx_shoot_enable.shoot_effect() -- Эффект стрельбы bolt_ending.update() -- Заканчивающиеся болты hud_sleep_static() -- Индикатор сна dmx_medicines.psy_blockade_protection(delta) -- Пси-блокада dmx_pda_notepad.pda_music_update() -- Радио в ПДА actor_blockpost_propusk() -- Пропуск на блокпост xr_giditara.item_update() -- Гитара xr_garmon.item_update() -- Гармошка xr_smoking.smoking_update(delta) -- Сигарета xr_racya.item_update() -- Рация --zoom_update() -- Кратность бинокля end
function dmx_net_spawn() max.update() hidden_slots.net_spawn() dmx_treasure.net_spawn() bolt_ending.net_spawn() end
function dmx_net_destroy() bolt_ending.net_destroy() end
function dmx_start_spawn() syslov_spawn() place_of_sleep_spawn() poisonous_fog_spawn() special_effects_spawn() dmx_cars.car_spawn() dmx_cars.car_spawn_new_locations() pripyat_cop_to_pripyat_1() pripyat_cop_to_pripyat_2() lab_x8_to_pripyat_cop() end ------------------------------------------------------------------------------------------------------------------------ -- СПАВН ПЕРСОНАЖЕЙ -- Суслов на Болотах function syslov_spawn() local obj = alife():create("syslov",vector():set(-178.59976196289,0.929643034935,-320.59954833984),51819,3365) local tbl = amk.read_stalker_params(obj) tbl.sid = 97120 amk.write_stalker_params(tbl, obj) end
-- Комбат на Кордоне function kombat_spawn() alife():create("kombat",vector():set(183.67390441895,1.8403881788254,360.74264526367),484425,230) end
--[[Функция для определения точного имени function syslov_spawn() local sobj = alife():create("syslov",vector():set(-178.59976196289,0.929643034935,-320.59954833984),51819,3365) get_console():execute("load ~~~ syslov name: "..sobj:name()) end]] ------------------------------------------------------------------------------------------------------------------------ -- МЕТКИ ПЕРСОНАЖЕЙ -- Установка меток function mapspot_npc(sid,id) if sid==9504 then level.map_add_object_spot(id, "repair_npc_mapspot", "Техник") -- Долговязый elseif sid==97123 then level.map_add_object_spot(id, "repair_npc_mapspot", "Техник") -- Василий elseif sid==9501 then level.map_add_object_spot(id, "repair_npc_mapspot", "Техник") -- Сяк elseif sid==507 then level.map_add_object_spot(id, "boss_npc_mapspot", "Главнокомандующий «Долга»") elseif sid==707 then level.map_add_object_spot(id, "boss_npc_mapspot", "Главнокомандующий «Свободы»") elseif sid==14000 then level.map_add_object_spot(id, "boss_npc_mapspot", "Главнокомандующий «Чистого Неба»") elseif sid==003 then level.map_add_object_spot(id, "trader_npc_mapspot", "Торговец") -- Сидорович elseif sid==500 then level.map_add_object_spot(id, "trader_npc_mapspot", "Торговец") -- Бармен elseif sid==97120 then level.map_add_object_spot(id, "trader_npc_mapspot", "Торговец") -- Суслов elseif sid==902 then level.map_add_object_spot(id, "trader_npc_mapspot", "Торговец") -- Сахаров elseif sid==734 then level.map_add_object_spot(id, "trader_npc_mapspot", "Торговец") -- Скряга elseif sid==9903 then level.map_add_object_spot(id, "trader_npc_mapspot", "Торговец") -- Адреналин end end
-- Удаление меток в оффлайне function remove_mapspot_npc(sid,id) if sid==9504 then level.map_remove_object_spot(id, "repair_npc_mapspot") -- Долговязый elseif sid==97123 then level.map_remove_object_spot(id, "repair_npc_mapspot") -- Василий elseif sid==9501 then level.map_remove_object_spot(id, "repair_npc_mapspot") -- Сяк elseif sid==507 then level.map_remove_object_spot(id, "boss_npc_mapspot") -- Воронин elseif sid==707 then level.map_remove_object_spot(id, "boss_npc_mapspot") -- Лукаш elseif sid==14000 then level.map_remove_object_spot(id, "boss_npc_mapspot") -- Свиблов elseif sid==003 then level.map_remove_object_spot(id, "trader_npc_mapspot") -- Сидорович elseif sid==500 then level.map_remove_object_spot(id, "trader_npc_mapspot") -- Бармен elseif sid==97120 then level.map_remove_object_spot(id, "trader_npc_mapspot") -- Суслов elseif sid==902 then level.map_remove_object_spot(id, "trader_npc_mapspot") -- Сахаров elseif sid==734 then level.map_remove_object_spot(id, "trader_npc_mapspot") -- Скряга elseif sid==9903 then level.map_remove_object_spot(id, "trader_npc_mapspot") -- Адреналин end end ------------------------------------------------------------------------------------------------------------------------ -- СТАТЬИ ПРО ЛОКАЦИИ -- проверим наличие денег для статей function syslov_moral_many(actor,npc) return actor:money() > 1500 end
-- отдадим деньги за статьи function syslov_moral_many_dal(t1,t2) local npc=t1 if npc:id()==db.actor:id() then npc=t2 end dialogs.relocate_money(npc,1500,"out") end ------------------------------------------------------------------------------------------------------------------------ -- АПГРЕЙД СКАТа -- проверим наличие СКАТ-15 с 3-мя блоками апгрейдера function syslov_skat15_have() return sak.have_item_namber("exo_mil_exoskeleton_addrs",1) ~= false end
-- проверим наличие артефакта Капля души function skat15up_art_have() return sak.have_item_namber("af_spirit_1",1) ~= false end
-- проверим наличие денег function skat15up_moral_many(actor,npc) return actor:money() > 45000 end
-- отдадим деньги function skat15up_moral_many_dal(t1,t2) local npc=t1 if npc:id()==db.actor:id() then npc=t2 end dialogs.relocate_money(npc,45000,"out") end
-- отдадим артефакт и дадим ГГ апгрейдер function upgrader_berem_otdal_art(first_speaker, second_speaker) sak.out_item_namber("af_spirit_1",1) dialogs.relocate_item_section(second_speaker, "dmx_skat15_upgrade","in") end ------------------------------------------------------------------------------------------------------------------------ -- БАРТЕР ЖРАТВЫ У ХОЛОДА -- Сигареты -- проверим наличие 2 пачек Мечты function holod_dmx_food_mechta_prov() return sak.have_item_namber("mechta",2) ~= false end
-- отдадим эти две пачки и получим сигареты соли function mechta_otdal_pol_col(first_speaker, second_speaker) sak.out_item_namber("mechta",2) dialogs.relocate_item_section(second_speaker, "sigaret","in") end
-- проверим наличие 3 сигар function holod_dmx_food_sigara_prov() return sak.have_item_namber("cigara",3) ~= false end
-- отдадим эти сигары и получим сигареты соли function sigara_otdal_pol_col(first_speaker, second_speaker) sak.out_item_namber("cigara",3) dialogs.relocate_item_section(second_speaker, "sigaret","in") end
-- ВОДКА -- проверим наличие 2 пузырей Абсолюта function holod_absolut_prov() return sak.have_item_namber("absolut_vodka",2) ~= false end
-- отдадим 2 пузыря и получим Казаков function absolut_otdal_pol_kaz(first_speaker, second_speaker) sak.out_item_namber("absolut_vodka",2) dialogs.relocate_item_section(second_speaker, "vodka","in") end
-- проверим наличие одного пузыря Смирнофф function holod_smirnoff_prov() return sak.have_item_namber("smirnoff_vodka",1) ~= false end
-- проверим наличие ста рублей function holod_dialog_many_food_prov(actor,npc) return actor:money() > 100 end
-- отдадим Смирнофф и получим Казаков function smirnoff_otdal_pol_kaz(first_speaker, second_speaker) sak.out_item_namber("smirnoff_vodka",1) dialogs.relocate_item_section(second_speaker, "vodka","in") end
-- отдадим сто рублей function holod_dialog_many_food_otdal(t1,t2) local npc=t1 if npc:id()==db.actor:id() then npc=t2 end dialogs.relocate_money(npc,100,"out") end
-- КОЛБАСА -- проверим наличие двух палок Докторской function holod_kolbasadmx_prov() return sak.have_item_namber("kolbasadmx",2) ~= false end
-- отдадим их и получим обычную колбаску function kolbasa_dmx_dal_pol_kolba(first_speaker, second_speaker) sak.out_item_namber("kolbasadmx",2) dialogs.relocate_item_section(second_speaker, "kolbasa","in") end
-- проверим наличие пива Черниговского function holod_chernigov_prov() return sak.have_item_namber("pivo",1) ~= false end
-- отдадим пиво и получим обычную колбаску function chernigov_otdal_pol_kol(first_speaker, second_speaker) sak.out_item_namber("pivo",1) dialogs.relocate_item_section(second_speaker, "kolbasa","in") end ------------------------------------------------------------------------------------------------------------------------ -- СТАРТОВЫЙ ДИАЛОГ У ХОЛОДА -- дадим ГГ водку Немирофф function nemiroff_vodka_berem(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "nemiroff_vodka","in") end
-- дадим ГГ водку Абсолют function absolut_vodka_berem(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "absolut_vodka","in") end
-- дадим ГГ водку Смирнофф function smirnoff_vodka_berem(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "smirnoff_vodka","in") end ------------------------------------------------------------------------------------------------------------------------ -- SOUL CUBE -- проверим барахло function shadows_cube_prov() return new_dialog.item_much("nemiroff_vodka",5) ~= false and new_dialog.item_much("irp-b",2) ~= false and new_dialog.item_much("yantar",3) ~= false and new_dialog.item_much("nuts",5) ~= false and new_dialog.item_much("pivo",3) ~= false and new_dialog.item_much("energy_ad_rush",5) ~= false and new_dialog.item_much("merc_scientific_outfit",1) ~= false and new_dialog.item_much("wpn_rpd",1) ~= false end
-- отдадим барахло за Куб function shadows_cube_otdal(first_speaker, second_speaker) sak.out_item_namber("nemiroff_vodka",5) sak.out_item_namber("irp-b",2) sak.out_item_namber("yantar",3) sak.out_item_namber("nuts",5) sak.out_item_namber("pivo",3) sak.out_item_namber("energy_ad_rush",5) sak.out_item_namber("merc_scientific_outfit",1) sak.out_item_namber("wpn_rpd",1) end
-- дадим ГГ денег если он не хочет находить Куб function shadows_cube_many_25000(t1,t2) local npc=t1 if npc:id()==db.actor:id() then npc=t2 end dialogs.relocate_money(npc,25000,"in") end
-- заспавним Shadows`a function shadows_spawn() local obj = alife():create("shadows",vector():set(-279.516,0.972,35.288),7088,3351) local tbl = amk.read_stalker_params(obj) tbl.sid = 97121 amk.write_stalker_params(tbl, obj) end
-- Shadows - враг function shadows_enemy(first_speaker, second_speaker) second_speaker:set_relation(game_object.enemy, first_speaker) db.actor:change_character_reputation(db.actor:character_reputation() - 40) end
-- даем фейковый Куб function fake_cube_dal(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "fake_cube","in") end
-- забираем фейковый Куб function fake_cube_otdal(first_speaker, second_speaker) sak.out_item_namber("fake_cube",1) end
-- немного оживим Припять function cube_pripyat_spawn() alife():create("m_controller_normal",vector():set(287.109,-0.371,266.864),474028,3769) alife():create("fracture_swamp",vector():set(287.109,-0.371,266.864),474028,3769) alife():create("fracture_master",vector():set(132.561,-0.238,216.951),359942,3769) alife():create("fracture_karlik",vector():set(149.252,-0.052,211.248),378888,3769) alife():create("cop_prip_treasure_cube",vector():set(131.672,29.114,240.428),359193,3769) alife():create("item_doc_x8",vector():set(136.492,29.332,239.402),365077,3769) alife():create("dmx_military_map",vector():set(132.064,28.907,235.955),359964,3769) alife():create("cop_kvartira_music",vector():set(131.227,30.029,236.661),358426,3769) alife():create("wpn_protecta_col",vector():set(6.984,5.361,269.103),205983,3760) alife():create("wpn_pkm_tactic",vector():set(35.739,-2.883,-58.234),245226,3766) alife():create("bloodsucker_strong",vector():set(-49.974,-0.507,-71.471),139443,3759) alife():create("m_poltergeist_normal_tele",vector():set(-62.949,4.224,-94.039),126481,3759) alife():create("pseudodog_strong",vector():set(-160.217,-0.506,-252.603),47519,3748) alife():create("pseudodog_strong",vector():set(-146.134,-0.507,-271.362),56480,3751) alife():create("af_babka_3",vector():set(-77.910,25.093,87.284),112218,3755) monolith_kbo_spawn() labx8_cube_spawn() labx8_spawn_trup_ps() end
function monolith_kbo_spawn() alife():create("kbo_monolit1",vector():set(-42.540,0.400,81.989),146270,3755) alife():create("kbo_monolit3",vector():set(-43.463,0.401,110.734),145710,3755) alife():create("kbo_monolit4",vector():set(-82.692,0.399,96.015),107366,3754) alife():create("kbo_monolit6",vector():set(-41.787,4.500,84.167),147056,3755) alife():create("kbo_monolit7",vector():set(-42.601,4.500,105.050),146450,3755) alife():create("kbo_monolit8",vector():set(-63.459,4.497,86.316),125948,3754) alife():create("kbo_monolit10",vector():set(-82.731,4.500,83.071),107276,3754) alife():create("kbo_monolit12",vector():set(-76.615,8.600,74.130),113517,3754) alife():create("kbo_monolit13",vector():set(-45.919,8.602,94.610),143029,3755) alife():create("kbo_monolit15",vector():set(-46.727,12.700,110.448),142386,3755) alife():create("kbo_monolit17",vector():set(-61.830,16.801,104.961),128245,3755) alife():create("kbo_monolit1",vector():set(-42.900,20.900,115.329),146501,3755) end
-- подбираем блокнот в квартире и спавним Библиотекаря function cube_take(obj) if obj:section()=="item_doc_x8" then if level.name()=="pripyat" and not has_alife_info("cop_prip_info_take_doc") then db.actor:give_info_portion("cop_prip_info_take_doc") alife():create("bibliotekar",vector():set(140.922,-0.367,220.575),370139,3769) amk.send_tip("Добрался я до квартиры. Куба Теней и Павла Сергеевича в ней не оказалось. Зато я нашел интересный блокнот про ночной инцидент в лаборатории... Кароче после всего, что случилось, наш друг отправился назад, в лабораторию. Видимо, так и не вышел от туда...\\nКстати тут ещё приемник какой-то странный - запись постоянно повторяется. На записи переговор военных вроде...\\nЧто думаешь?", "Меченый: приватный канал", 10, 20, "actor_sms") amk.send_tip("Думаю вот что - линять тебе надо. У нас проблемы - наш последний разговор подслушали. А может и кто-то другой знал о Кубе... Может тот, кто тебе давай наводку на меня...\\nВообщем к восточной части Припяти сейчас подходит отряд наемников. Они знают, что ты ищешь Куб в той квартире...\\nНадо заставить их поверить в обратное. Ты ведь не хочешь неприятностей? Можно попробовать слить дезинформацию в сталкерскую сеть...\\nПопробуй написать в чат через ПДА: «Продаю Куб Теней, недорого. Встретимся на Кордоне около Периметра.»\\nПиши точно так, как я написал, тогда возможно они решат, что ты уже забрал Куб... Попробуй.", "Shadows: приватный канал", 30, 50) pripyat_base_spawn() end end end
-- заселение прачечной function pripyat_base_spawn() local obj = alife():create("mudri",vector():set(144.298,-0.096,-192.662),375712,3765) local tbl = amk.read_stalker_params(obj) tbl.sid = 97122 amk.write_stalker_params(tbl, obj) alife():create("grozn",vector():set(136.787,4.905,-191.870),364574,3765) alife():create("alex",vector():set(130.497,-0.297,-182.324),356345,3765) alife():create("cop_base_music",vector():set(156.453,0.493,-179.119),384599,3765) alife():create("medkit_army",vector():set(143.582,0.822,-185.929),373572,3765) end
-- употребляем водку function actor_drinking_vodka() local oItem = db.actor:object("vodka") or db.actor:object("absolut_vodka") or db.actor:object("nemiroff_vodka") or db.actor:object("smirnoff_vodka") if oItem then db.actor:eat(oItem) else local sobj = amk.spawn_item_in_inv("vodka") level.client_spawn_manager():add(sobj.id,0,spawn_vodka_callback,true) end end
function spawn_vodka_callback(arg,id,item) db.actor:eat(item) amk.remove_item(item) end
-- пару монстров по квесту поиска карты Припяти function monsters_quest_spawn() alife():create("zombie_ghost",vector():set(184.295,0.674,47.489),414274,3770) alife():create("bloodsucker_strong",vector():set(199.468,2.501,-8.367),427539,3768) alife():create("zombie_ghost",vector():set(234.454,0.547,22.189),452741,3768) alife():create("zombie_swamp",vector():set(234.454,0.547,22.189),452741,3768) alife():create("dmx_pripyat_map",vector():set(205.422,5.444,-25.960),433226,3768) end
-- подбираем карту Припяти function dmx_pripyat_map_have() return sak.have_item_namber("dmx_pripyat_map",1) ~= false end
-- даем переход в Х-8 function next_labx8() amk.send_tip("Я узнал где находится вход в лабораторию Х-8. Направляюсь туда.", "Меченый: приватный канал", 10, 20, "actor_sms") amk.send_tip("Хорошо. Надеюсь Павел Сергеевич жив... Он много чего может нам рассказать.", "Shadows: приватный канал", 30, 20) device_torch_bad() labx8_ghost() pripyat_cop_to_lab_x8() end
-- испортился фонарь function device_torch_bad() local oItem = db.actor:object("device_torch") or db.actor:object("fake_device_torch") if oItem then --db.actor:drop_item(oItem) alife():release(alife():object(oItem:id()), true) amk.spawn_item_in_inv("device_torch_bad") end end
-- заселение лаборатории Х-8 function labx8_cube_spawn() alife():create("lab_x8_treasure",vector():set(-43.313,-20.517,72.710),6747,3850) alife():create("burer_strong",vector():set(-83.113,-15.939,108.460),2780,3837) alife():create("snork_strong",vector():set(-98.249,-18.130,86.008),919,3838) alife():create("burer_strong",vector():set(-86.267,-20.021,82.081),2259,3838) alife():create("tushkano_normal",vector():set(-105.451,-32.377,77.411),453,3830) alife():create("tushkano_normal",vector():set(-108.119,-32.401,85.121),359,3832) alife():create("tushkano_normal",vector():set(-105.451,-32.377,77.411),453,3830) alife():create("tushkano_normal",vector():set(-108.119,-32.401,85.121),359,3832) alife():create("antirad",vector():set(-110.974,-31.502,90.253),259,3832) alife():create("ammo_5.45x39_izomorf",vector():set(-87.835,-31.175,80.502),1942,3844) alife():create("ammo_5.45x39_izomorf",vector():set(-87.835,-31.175,80.502),1942,3844) alife():create("rat_strong",vector():set(-74.285,-36.714,85.643),4481,3844) alife():create("item_doc_x8_2",vector():set(-58.532,-16.653,100.163),6181,3840) alife():create("wpn_soulcube",vector():set(-54.697,-20.974,91.194),6433,3840) alife():create("zone_grost",vector():set(-56.302,-22.017,87.185),6352,3840) alife():create("tarakan_normal",vector():set(-76.451,-23.858,61.195),3957,3845) alife():create("af_armor_4",vector():set(-76.451,-23.858,61.195),3957,3845) alife():create("m_poltergeist_normal_tele",vector():set(-78.942,-24.323,87.381),3412,3839) alife():create("snork_strong",vector():set(-78.755,-28.446,72.607),3362,3840) alife():create("rat_strong",vector():set(-72.487,-20.166,64.236),4730,3847) alife():create("ammo_og-7b",vector():set(-75.058,-10.367,56.259),4219,3843) alife():create("ammo_og-7b",vector():set(-75.058,-10.367,56.259),4219,3843) alife():create("wpn_rpg7_m1",vector():set(-75.058,-10.367,56.259),4219,3843) alife():create("rat_strong",vector():set(-78.422,-16.005,71.539),3507,3838) alife():create("rat_strong",vector():set(-78.422,-16.005,71.539),3507,3838) alife():create("snork_strong",vector():set(-90.291,-15.977,78.629),1634,3831) alife():create("burer_strong",vector():set(-76.541,-28.470,64.181),3970,3842) alife():create("energy_stalker",vector():set(-56.601,-15.558,103.241),6292,3840) alife():create("zone_cockroach",vector():set(-75.565,-16.003,72.270),4116,3848) end
-- спавним труп ученого function labx8_spawn_trup_ps() local obj = alife():create("pavel_sergeevich",vector():set(-56.302,-22.017,87.185),6352,3840) local tbl = amk.read_stalker_params(obj) tbl.sid = 97124 tbl.health = 0 tbl.updhealth = 0 amk.write_stalker_params(tbl, obj) end
-- проверяем наличее Куба Теней в рюкзаке function wpn_soulcube_have() return sak.have_item_namber("wpn_soulcube",1) ~= false end
-- таймер появления призрака и контролера function labx8_cube_take() amk.start_timer("ghost_timer",4,"") end
-- блуждающий призрак function labx8_ghost() amk.start_timer("ghost_strong_timer",10,"") end
-- есть ли карта АС в рюкзаке function dmx_military_map_have() return sak.have_item_namber("dmx_military_map",1) ~= false end
-- есть ли дневник в рюкзаке function item_doc_x8_have() return sak.have_item_namber("item_doc_x8",1) ~= false end
-- есть ли документы из Х-8 в рюкзаке function item_doc_x8_2_have() return sak.have_item_namber("item_doc_x8_2",1) ~= false end
-- отдадим карту Припяти function give_dmx_pripyat_map(first_speaker, second_speaker) sak.out_item_namber("dmx_pripyat_map", 1) end
-- отдадим карту АС function give_dmx_military_map(first_speaker, second_speaker) sak.out_item_namber("dmx_military_map", 1) end
-- отдадим документы из Х-8 function give_item_doc_x8_2(first_speaker, second_speaker) sak.out_item_namber("item_doc_x8_2", 1) end
-- отдадим дневник function give_item_doc_x8(first_speaker, second_speaker) sak.out_item_namber("item_doc_x8", 1) end
-- дадим ГГ 500 руб за каждый итем function dal_many_500(t1,t2) local npc=t1 if npc:id()==db.actor:id() then npc=t2 end dialogs.relocate_money(npc,500,"in") end ------------------------------------------------------------------------------------------------------------------------ -- ИНСТРУМЕНТЫ ДЛЯ МУДРЕЦА -- спавним инструменты и контрошу function instruments_spawn() alife():create("mudrec_instruments",vector():set(-188.578,0.582,-209.861),29111,3748) alife():create("m_controller_normal",vector():set(-182.600,-0.283,-205.787),32993,3748) end
-- проверим есть ли инструменты в рюкзаке function cop_pripyat_instruments_have() return sak.have_item_namber("mudrec_instruments",1) ~= false end
-- отдадим инструменты Мудрецу function give_cop_pripyat_instruments(first_speaker, second_speaker) sak.out_item_namber("mudrec_instruments", 1) end ------------------------------------------------------------------------------------------------------------------------ -- ВТОРОЙ СПОСОБ ПОПАСТЬ НА БЛОКПОСТ local outfit_propusk_tabl = {["specops_outfit"]=true, ["military_outfit"]=true, ["militaryspec_outfit"]=true, ["soldier_outfit"]=true, ["outfit_soldier_m1"]=true, ["exo_mil_exoskeleton"]=true} function outfit_propusk(outfit) if outfit then local name = outfit:section() for k,v in pairs(outfit_propusk_tabl) do if string.find(name,k) then return true end end end end
function actor_blockpost_propusk() if dmx_cars.car_section()=="vehicle_uaz_fsb" and outfit_propusk(db.actor:item_in_slot(6)) then actor_set_military() else actor_restore_community() end end
function actor_set_military() local ac=db.actor:character_community() if ac~="military" then amk.save_variable("acmmty",ac) db.actor:set_character_community("military", 0, 0) db.actor:give_info_portion("actor_propusk_info") end end
function actor_restore_community() local stored_comm=amk.load_variable("acmmty",nil) if stored_comm and stored_comm~=db.actor:character_community() then db.actor:set_character_community(stored_comm, 0, 0) db.actor:disable_info_portion("actor_propusk_info") amk.del_variable("acmmty") end end
-- проверка наличия Берилла function specops_outfit_have() return sak.have_item_namber("specops_outfit",1) ~= false end
-- спавн машины около фермы function blockpost_quest_spawn() alife():create("vehicle_uaz_fsb",vector():set(1.253,2.480,72.038),278071,89) end
-- даем удостоверение и ключи от машины function give_certificate_and_key(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "item_certificate","in") dialogs.relocate_item_section(second_speaker, "car_key","in") end
-- забираем удостоверение и ключи от машины function give_items_blockpost_quest(first_speaker, second_speaker) sak.out_item_namber("item_certificate", 1) sak.out_item_namber("car_key", 1) end ------------------------------------------------------------------------------------------------------------------------ -- OTHERS SPAWN -- Спавн мест для сна function place_of_sleep_spawn() alife():create("place_of_sleep",vector():set(-210.765,-22.881,-122.198),42632,59) -- Кордон - в подвале деревни alife():create("place_of_sleep",vector():set(47.043,1.567,243.461),219251,359) -- Свалка - на заставе Долга alife():create("place_of_sleep_vid",vector():set(42.121,7.499,-17.377),279888,664) -- Агропром - около Адреналина alife():create("place_of_sleep",vector():set(27.627,-10.949,-280.456),54978,1480) -- Янтарь - в бункере alife():create("place_of_sleep",vector():set(9.233,-7.186,20.183),316476,1582) -- АС - в бараках alife():create("place_of_sleep",vector():set(99.587,4.333,131.124),210226,2171) -- Припять - в квартире Стрелка alife():create("place_of_sleep",vector():set(146.228,5.035,-172.466),375746,3765) -- Восток Припяти - прачечная alife():create("place_of_sleep",vector():set(36.312,-3.370,-48.361),22448,1996) -- Радар - в доме Сяка alife():create("place_of_sleep_vid",vector():set(-410.158,0.771,69.751),162553,2889) -- НЗ - Лазарет alife():create("place_of_sleep",vector():set(-68.412,-6.368,-68.965),3552,717) -- Подземка Агропрома - тайник alife():create("place_of_sleep_vid",vector():set(-172.368,-2.678,-72.607),1765,2863) -- Пещера - У Шахтера alife():create("place_of_sleep",vector():set(48.180,1.101,-59.024),235536,1083) -- ТД - У бандитов alife():create("place_of_sleep",vector():set(-135.309,1.424,-318.204),77666,3374) -- Болота - база ЧН alife():create("place_of_sleep_vid",vector():set(19.020,9.701,29.558),19080,3330) -- Старая Деревня - В Штабе alife():create("place_of_sleep",vector():set(-122.429,38.783,-523.148),194437,3089) -- Генераторы - деревня нейтралов alife():create("place_of_sleep",vector():set(12.903,0.268,-39.544),74533,3290) -- Рыжий Лес - вагончик около Лесника alife():create("place_of_sleep",vector():set(-45.021,-0.778,-252.296),4671,2994) -- Лиманск - дом на углу alife():create("place_of_sleep",vector():set(-213.998,1.396,91.526),122710,3600) -- МГ - дом Парфюмера alife():create("place_of_sleep_vid",vector():set(-31.129,0.556,-129.076),162684,2882) -- Забытый Лес - в лагере Креста alife():create("place_of_sleep",vector():set(138.037,-7.041,-71.337),575215,2830) -- АТП - в центре alife():create("place_of_sleep",vector():set(117.971,0.206,66.106),34340,1252) -- Бар - комната около Захара end
-- Спавн болотного тумана function poisonous_fog_spawn() -- Свалка for i=1,2 do alife():create("zone_tuman_cop",vector():set(97.482,-2.070,-164.105),263672,412) alife():create("zone_tuman_cop",vector():set(86.652,-2.261,-169.430),254679,412) alife():create("zone_tuman_cop",vector():set(121.531,-2.175,-158.125),283733,408) alife():create("zone_tuman_cop",vector():set(114.223,-2.318,-150.951),277586,408) alife():create("zone_tuman_cop",vector():set(108.215,-2.289,-141.143),272848,408) alife():create("zone_tuman_cop",vector():set(108.712,-2.265,-130.778),272858,408) alife():create("zone_tuman_cop",vector():set(106.333,-0.333,-117.006),271168,396) alife():create("zone_tuman_cop",vector():set(100.657,-2.714,-105.159),266590,395) end -- Агропром alife():create("zone_tuman_cop",vector():set(-163.313,1.123,21.829),74297,675) alife():create("zone_tuman_cop",vector():set(-174.509,1.124,15.079),62654,675) alife():create("zone_tuman_cop",vector():set(-185.625,1.124,27.122),51360,537) alife():create("zone_tuman_cop",vector():set(-176.380,1.123,38.283),60578,675) alife():create("zone_tuman_cop",vector():set(-163.260,1.122,44.034),74329,531) alife():create("zone_tuman_cop",vector():set(-170.563,1.124,54.766),66409,674) alife():create("zone_tuman_cop",vector():set(-162.946,1.118,33.639),74314,531) alife():create("zone_tuman_cop",vector():set(-172.725,1.113,28.307),64169,675) alife():create("zone_tuman_cop",vector():set(-169.308,1.119,18.844),67795,675) alife():create("zone_tuman_cop",vector():set(-181.345,1.123,20.011),55580,675) alife():create("zone_tuman_cop",vector():set(-185.820,1.124,38.382),51376,674) alife():create("zone_tuman_cop",vector():set(-172.641,1.123,46.626),64188,674) end
function special_effects_spawn() alife():create("zone_fog_cigarette",vector():set(139.75,-3.12,28.88),36058,1236) -- Сигаретный дым в Баре alife():create("zone_fog_cigarette",vector():set(150.71,0.72,-242.03),349148,958) -- Сигаретный дым на стоянке бандитов на входе в Х-18 alife():create("zone_fog_indoor",vector():set(-76.48,-16.29,-112.51),2998,785) -- Облако пара в подземельи Агропрома-1 alife():create("zone_fog_indoor",vector():set(-117.9,-14.95,-34.03),166,758) -- Облако пара в подземельи Агропрома-2 alife():create("zone_fog_indoor",vector():set(6.27,4.19,-18.26),3613,1115) -- Облако испарений в Х18-1 alife():create("zone_fog_indoor",vector():set(-42.74,-13,-19.6),156,1153) -- Облако испарений в Х18-2 alife():create("zone_fog_indoor",vector():set(-12.41,-12.39,11.67),4660,1156) -- Облако испарений в Х18-3 alife():create("zone_fog_indoor",vector():set(-39.22,-10.9,12.23),327,1148) -- Облако испарений в Х18-4 alife():create("zone_fog_indoor",vector():set(-21.86,-16.34,75.66),5829,1163) -- Облако испарений в Х18-5 alife():create("zone_fog_indoor",vector():set(-28.51,-9.55,-6.08),2204,2778) -- Облако испарений в подземельи Радара-1 alife():create("zone_fog_indoor",vector():set(-55.85,-21.89,28.32),562,2725) -- Облако испарений в подземельи Радара-2 alife():create("zone_fog_indoor",vector():set(7.33,-23.52,25.22),7575,2767) -- Облако испарений в подземельи Радара-3 alife():create("zone_fog_indoor",vector():set(-141.2,-13.1,-376.1),45279,1311) -- Туман возле перехода с ДТ на Янтарь alife():create("zone_fog_indoor",vector():set(-113.54,-0.001,118.68),13277,1305) -- Туман возле перехода с Бара на ДТ 1 alife():create("zone_fog_indoor",vector():set(-125.99,-0.001,119.97),13277,1305) -- Туман возле перехода с Бара на ДТ 2 alife():create("zone_fog_indoor",vector():set(-127.7,-0.036,131.9),13277,1305) -- Туман возле перехода с Бара на ДТ 3 alife():create("zone_fog_indoor",vector():set(127.58,-0.039,143),12024,1304) -- Туман возле перехода с Бара на ДТ 4 alife():create("zone_fog_indoor",vector():set(-114.36,0.998,151),12062,1304) -- Туман возле перехода с Бара на ДТ 5 alife():create("zone_fog_indoor",vector():set(-140.14,-0.009,142.59),11401,1304) -- Туман возле перехода с Бара на ДТ 6 alife():create("zone_fog_indoor",vector():set(-89.23,0.1,133.67),13884,1305) -- Туман возле перехода с Бара на ДТ 8 alife():create("zone_fog_indoor",vector():set(284.16,6.4,-289.05),141391,1460) -- Туман возле перехода с Янтаря на Росток end ------------------------------------------------------------------------------------------------------------------------ -- Проигрывание звука при использовании предмета -- Author - Gun12 and Charsi function use_sound_items(obj) local sound_table = { ['bread'] = [[inventory\inv_food]], ['kolbasa'] = [[inventory\inv_food]], ['conserva'] = [[inventory\inv_food]], ['vodka'] = [[inventory\inv_vodka]], ['antirad'] = [[inventory\inv_medic]], ['medkit'] = [[inventory\inv_medic]], ['medkit_army'] = [[inventory\inv_medic]], ['medkit_scientic'] = [[inventory\inv_medic]], ['energy_drink'] = [[inventory\inv_drinking]], ['bandage'] = [[inventory\inv_bandage]], -- Солянка ['sandwich'] = [[inventory\inv_food]], ['beer_a'] = [[inventory\inv_drinking]], ['flaska'] = [[inventory\inv_drinking]], ['sweetness'] = [[inventory\inv_food]], ['matras'] = [[inventory\inv_sleeping]], ['suvorotka'] = [[inventory\inv_pills]], ['shaxter_tele'] = [[inventory\inv_drinking]], ['snotvornoe_tele'] = [[inventory\inv_drinking]], ['bezoar'] = [[inventory\inv_food]], ['mozg'] = [[inventory\inv_food]], ['vorona_egg'] = [[inventory\inv_food]], ['mushroom'] = [[inventory\inv_food]], ['antizombie'] = [[inventory\inv_medic]], -- DMX MOD ['pivo'] = [[inventory\inv_drinking]], ['irp-b'] = [[inventory\inv_food]], ['voda'] = [[inventory\inv_drinking]], ['tuchenka'] = [[inventory\inv_food]], ['yantar'] = [[inventory\inv_food]], ['sardina'] = [[inventory\inv_food]], ['ogursi'] = [[inventory\inv_food]], ['sholad'] = [[inventory\inv_food]], ['kolbasadmx'] = [[inventory\inv_food]], ['olives'] = [[inventory\inv_food]], ['nuts'] = [[inventory\inv_food]], ['absolut_vodka'] = [[inventory\inv_vodka]], ['nemiroff_vodka'] = [[inventory\inv_vodka]], ['smirnoff_vodka'] = [[inventory\inv_vodka]], ['mineral_water'] = [[inventory\inv_drinking]], ['energy_stalker'] = [[inventory\inv_drinking]], ['energy_non_stop'] = [[inventory\inv_drinking]], ['energy_ad_rush'] = [[inventory\inv_drinking]], ['energy_red_bull'] = [[inventory\inv_drinking]], ['pivo_baltika'] = [[inventory\inv_drinking]], ['sok'] = [[inventory\inv_drinking]], ['syh_pay_gde_3'] = [[inventory\inv_food]], ['syh_pay_spp5'] = [[inventory\inv_food]], ['pervitin'] = [[inventory\inv_drugs]], ['amfetamin'] = [[inventory\inv_drugs]], ['zhgut'] = [[inventory\inv_bandage]], ['antiseptic'] = [[inventory\inv_bandage]], ['medkit_elite'] = [[inventory\inv_medic]], ['bandage_dmx'] = [[inventory\inv_bandage]], ['tab'] = [[inventory\inv_pills]], ['razgruzka'] = [[inventory\inv_razgruzka]], ['psy_blockade'] = [[inventory\inv_medic]], ['barvinok'] = [[inventory\inv_medic]]} local snd = sound_table[obj:section()] if snd then local snd_obj = xr_sound.get_safe_sound_object(snd) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) end end ------------------------------------------------------------------------------------------------------------------------ -- Прибор точного измерения радиации -- Идея взята из мода LWR function use_radiation_detector(obj) if obj:section() == "radiation_detector" then play_sound([[inventory\inv_radiation_detector]]) local rad = math.floor(db.actor.radiation * 600) news_manager.send_tip(db.actor, "Оценка дозы заражённости от 0 до 600 Бэр.\\nСтепень заражённости организма составляет "..rad.." Бэр.", nil, "detector", 15000) amk.spawn_item_in_inv("radiation_detector") end end ------------------------------------------------------------------------------------------------------------------------ -- Генератор огнесмеси -- Author - Charsi function use_item_ammo_flame_transfer(obj) if obj:section() == "item_ammo_flame_transfer" then amk.spawn_item_in_inv("item_ammo_flame_transfer") play_sound([[device\pda\pda_sos]]) local flame=db.actor:object("wpn_flame") if flame then local ballon=db.actor:object("amk_ballon") local kanistra=db.actor:object("amk_kanistra") if ballon and kanistra then local ammo_elapsed = flame:get_ammo_in_magazine() + 150 if ammo_elapsed > 1150 then -- кабздец огнемету amk.remove_item(flame) local pos=db.actor:position():add(db.actor:direction():mul(1)) -- спавним детали local lv=db.actor:level_vertex_id() local gv=db.actor:game_vertex_id() alife():create("gorelka",pos,lv,gv) alife():create("manometr",pos,lv,gv) alife():create("trubka",pos,lv,gv) alife():create("flamethrower_bad",pos,lv,gv) db.actor.health = -0.3 -- понижаем хп rx_utils.get_sound([[weapons\t_f1_explosion]]):play_no_feedback(db.actor,sound_object.s2d,0,vector(),1.0) -- звук взрыва level.add_cam_effector("camera_effects\\fusker.anm",959,false,"") -- камэффектор удара в лицо else if ammo_elapsed > 1000 then amk.send_tip("Опасно! Критическое давление!") end amk.remove_item(ballon) amk.remove_item(kanistra) flame:set_ammo_elapsed(ammo_elapsed) end else amk.send_tip("Невозможно сгенерировать огнесмесь без наличия коллоидного газа или бензина.") end else amk.send_tip("Нет огнемета, чтобы его заправить!") end end end ------------------------------------------------------------------------------------------------------------------------ -- Сумка с глушителями function use_silencers_box(obj) if obj:section() == "silencers_box" then amk.spawn_item_in_inv("wpn_addon_silencer") amk.spawn_item_in_inv("wpn_9mm_nato_silencer") amk.spawn_item_in_inv("wpn_addon_silencer_pistol") amk.spawn_item_in_inv("wpn_addon_sil_9_p") amk.spawn_item_in_inv("wpn_addon_sil_45") amk.spawn_item_in_inv("wpn_addon_sil_762x39") amk.spawn_item_in_inv("wpn_addon_sil_86x70") amk.spawn_item_in_inv("wpn_addon_sil_9x39") amk.spawn_item_in_inv("wpn_addon_sil_556_ar") amk.spawn_item_in_inv("wpn_addon_sil_762_ar") amk.spawn_item_in_inv("wpn_sil74") amk.spawn_item_in_inv("wpn_addon_9x39silencer") amk.spawn_item_in_inv("wpn_addon_sil_57") amk.spawn_item_in_inv("wpn_addon_sil_bramit") end end
-- Ящик с болтами function use_bolt_box(obj) if obj:section() == "bolt_box" then local tab_items = {{[10]="fake_bolt"}} local tab_where = "actor" this.SpawnToNpcOrToLocation(tab_items,tab_where) end end ------------------------------------------------------------------------------------------------------------------------ -- Деньги снимаются с трупов если есть дешифратор -- Author - Monnoroch function have_lootmany() return have_loot() ~= false end
function have_loot() if db.actor and db.actor:object("device_warning_module") then return true else return false end end ------------------------------------------------------------------------------------------------------------------------ -- Взрыв оружия при сильном износе -- Author - OGSE Team, адаптация - Charsi local stored_ammo_num = nil local stored_it_id = nil function wpn_explode_update() local aitem = db.actor:active_item() local aslot = db.actor:active_slot() if aitem and (aslot==1 or aslot==2) and isWeapon(aitem) then local it_id = aitem:id() local ammo_num = aitem:get_ammo_in_magazine() if stored_it_id ~= nil and stored_ammo_num ~= nil then if stored_it_id == it_id and ammo_num < stored_ammo_num and aitem:condition() < 0.25 and math.random()*0.5 > aitem:condition() then fx_snd = xr_sound.get_safe_sound_object("weapons\\t_f1_explosion") -- проверить, есть ли звук fx_snd:play_no_feedback(aitem, sound_object.s3d, 0, aitem:position(), 1) fx_particle = particles_object("amik\\explosion\\explosion_f1") -- проверить, есть ли партикл fx_particle:play_at_pos(aitem:position()) local explode = hit() -- нанесение хита explode.direction = vector():set(0,0,0) explode.draftsman = db.actor explode.impulse = 0.2 explode.power = 0.6 explode.type = hit.explosion db.actor:hit(explode) alife():release(alife():object(aitem:id()), true) -- удаление предмета end end stored_ammo_num = ammo_num stored_it_id = it_id else stored_it_id = nil end end ------------------------------------------------------------------------------------------------------------------------ -- Красный билдовский эффект ранения -- Author - Shadows local def_health = 0 function red_effect() if def_health>db.actor.health+0.008 then --level.add_cam_effector("camera_effects\\hit_back.anm", 1975, false, "") level.add_pp_effector("fire_hit.ppe", 1974, false) end def_health = db.actor.health end ------------------------------------------------------------------------------------------------------------------------ -- Сообщения о надвигающимся Выбросе -- Author - Shadows local blowout_phrase = {"Внимание! Приближается Выброс! Всем искать надежные укрытия!", "Ахтунг! Выброс на подходе! Все по норам кому жить хочется...", "Внимание, надвигается Выброс!", "Судя по данным с приборов, через несколько минут произойдет Выброс!"} local text = blowout_phrase[math.random(#blowout_phrase)] local snd_sms function blowout_phrases() snd_sms = sound_object("ambient\\blowout_sms_"..tostring(math.random(1,6))) snd_sms:play_at_pos(db.actor,vector():set(0,0,0),0,sound_object.s2d) amk.send_tip(text, "Важное сообщение", nil, 20, "blowout_sms") end ------------------------------------------------------------------------------------------------------------------------ -- Воспроизводим звук -- Author - Real Wolf function play_sound(sound,obj) if obj == nil then obj = db.actor end snd = xr_sound.get_safe_sound_object(sound) snd:play_no_feedback(obj, sound_object.s2d, 0, vector(), 1.0) end ------------------------------------------------------------------------------------------------------------------------ -- Выкидываем предмет из слота в инвентарь function drop_item_to_inventory(number) local actor=db.actor local item = actor:item_in_slot(number) if item then actor:drop_item(item) local sobj=alife():create(item:section(),actor:position(),actor:level_vertex_id(),actor:game_vertex_id(),0) actor:transfer_item(item,actor) alife():release(sobj,true) end end ------------------------------------------------------------------------------------------------------------------------ -- Рисуем нужные статики худа поверх костюмов -- Author - Charsi function hidden_static() local cs_names = {"hud_show_time", "inv_weight_static", "sleep_static", "dmx_speedometr", "car_equalize", "anabiotic_static", "radioprotector_static", "psy_blockade_static"} local hud = get_hud() for k,v in pairs(cs_names) do if hud:GetCustomStatic(v) then hud:RemoveCustomStatic(v) hud:AddCustomStatic(v) end end cs_names = {"caption_medkit", "caption_antirad", "caption_bandage", "caption_vodka", "caption_button", "caption_value_1", "caption_value_2", "caption_value_3", "caption_value_4"} for k,v in pairs(cs_names) do hud:RemoveCustomStatic(v) end max.show_medkits() biodetector.biodetectorRemove() end ------------------------------------------------------------------------------------------------------------------------ -- Универсальная функция спавна -- Author - erlik function SpawnToNpcOrToLocation(tab_items,tab_where) local count = 0 local pos, lvid, gvid, id, obj local function Compare(id) obj = alife():object(id) return obj and obj.profile_name and obj:profile_name() == tab_where end for k, v in pairs(tab_items) do if type(tab_where)=='table' then for k, v in pairs (tab_items[k]) do count = k for i=1, count do alife():create(v,vector():set(tab_where['x'], tab_where['y'],tab_where['z']), tab_where['lv'],tab_where['gv']) end end elseif type(tab_where)=='string' then if tab_where =="actor" then obj = alife():actor() else for i=1, 65534 do local predicate = Compare(i) if predicate then break end end end if obj == nil then return end for k, v in pairs (tab_items[k]) do count = k for i=1, count do alife():create(v, obj.position, obj.m_level_vertex_id, obj.m_game_vertex_id, obj.id) end end elseif type(tab_where)=='number' then obj = level_object_by_sid(tab_where) if obj ~= nil then id, pos, lvid, gvid= obj:id(), obj:position(), obj:level_vertex_id(), obj:game_vertex_id() elseif obj == nil then obj = alife():story_object(tab_where) id, pos, lvid, gvid = obj.id, obj.position, obj.m_level_vertex_id, obj.m_game_vertex_id for k, v in pairs (tab_items[k]) do count = k for i=1, count do alife():create(v, pos, lvid, gvid, id) end end end end end end ------------------------------------------------------------------------------------------------------------------------ -- Индикатор сна function hud_sleep_static() local hud = get_hud() if bind_stalker.scopeUsed then hud:RemoveCustomStatic("sleep_static") elseif hud:GetCustomStatic("sleep_static")==nil and amk.load_variable("gg_need_sleep",0)>300 then hud:AddCustomStatic("sleep_static", true) end end ------------------------------------------------------------------------------------------------------------------------ -- Для проверки кратности бинокля -- Author - Charsi -- 37.125\5.625 (min\max) local st function zoom_update() local item = db.actor:active_item() if item and (item:section()=="wpn_binoc" or item:section()=="wpn_arm_binoc") then if not fov then fov=device().fov end local z=fov/device().fov if st then if z>1.01 then z=z+0.05 local t=math.floor(z) local r=math.floor((z-t)*10) st:SetText("fov="..fov.." df="..device().fov) end if z<1.01 then st:SetText("") end else st=CUIStatic() st:Init(1024/2,-300+768/2,200,200) -- координаты где рисовать st:Show(true) get_hud():AddDialogToRender(st) end end end ------------------------------------------------------------------------------------------------------------------------ -- Level changer -- Author - singapur22 function create_level_changer( p_story_id, -- STORY_ID нового level_changer (понадобится нам позже) p_position, -- вектор, координаты точки, в которой будет располагаться центр нового level_changer p_lvertex_id, -- level_vertext_id - идентифицируют уровень, на котором будет создан level_changer p_gvertex_id, -- game_vertext_id p_dest_lv, -- level_vertex_id - идентифицируют уровень, на будет перебрасывать игрока p_dest_gv, -- game_vertex_id p_dest_pos, -- координаты точки, в которой на новом уровне окажется игрок p_dest_dir, -- направрение взгляда игрока p_dest_level, -- название уровня, например "L11_Pripyat" p_silent -- следует задать 1, чтобы подавить вопрос о смене уровня (автоматический переход) ) local obj = alife():create("level_changer", p_position, p_lvertex_id, p_gvertex_id) level.map_add_object_spot(obj.id, "level_changer", "") local packet = net_packet() obj:STATE_Write(packet) -- свойства cse_alife_object local game_vertex_id = packet:r_u16() local cse_alife_object__unk1_f32 = packet:r_float() local cse_alife_object__unk2_u32 = packet:r_u32() local level_vertex_id = packet:r_u32() local object_flags = packet:r_u32() local custom_data = packet:r_stringZ() local story_id = packet:r_u32() local spawn_story_id = packet:r_u32() -- свойства cse_shape local shape_count = packet:r_u8() for i=1,shape_count do local shape_type = packet:r_u8() if shape_type == 0 then -- sphere local center = packet:r_vec3() local radius = packet:r_float() else -- box local axis_x_x = packet:r_float() local axis_x_y = packet:r_float() local axis_x_z = packet:r_float() local axis_y_x = packet:r_float() local axis_y_y = packet:r_float() local axis_y_z = packet:r_float() local axis_z_x = packet:r_float() local axis_z_y = packet:r_float() local axis_z_z = packet:r_float() local offset_x = packet:r_float() local offset_y = packet:r_float() local offset_z = packet:r_float() end end -- свойства cse_alife_space_restrictor local restrictor_type = packet:r_u8() -- свойства cse_level_changer local dest_game_vertex_id = packet:r_u16() local dest_level_vertex_id = packet:r_u32() local dest_position = packet:r_vec3() local dest_direction = packet:r_vec3() local dest_level_name = packet:r_stringZ() local dest_graph_point = packet:r_stringZ() local silent_mode = packet:r_u8() packet:w_begin(game_vertex_id) -- game_vertex_id packet:w_float(cse_alife_object__unk1_f32) packet:w_u32(cse_alife_object__unk2_u32) packet:w_u32(level_vertex_id) -- level_vertex_id packet:w_u32( bit_not(193) ) -- object_flags = -193 = 0xFFFFFF3E packet:w_stringZ(custom_data) packet:w_u32(p_story_id) -- story_id packet:w_u32(spawn_story_id) packet:w_u8(1) -- количество фигур packet:w_u8(1) -- тип фигуры: box packet:w_float(2) -- axis_x_x packet:w_float(0) -- axis_x_y packet:w_float(0) -- axis_x_z packet:w_float(0) -- axis_y_x packet:w_float(4) -- axis_y_y packet:w_float(0) -- axis_y_z packet:w_float(0) -- axis_z_x packet:w_float(0) -- axis_z_y packet:w_float(4) -- axis_z_z packet:w_float(0) -- offset_x packet:w_float(0) -- offset_y packet:w_float(0) -- offset_z packet:w_u8(3) -- restrictor_type packet:w_u16(p_dest_gv) -- destination game_vertex_id packet:w_u32(p_dest_lv) -- destination level_vertex_id packet:w_vec3(p_dest_pos) -- destination position packet:w_vec3(p_dest_dir) -- destination direction (направление взгляда) packet:w_stringZ(p_dest_level) -- destination level name packet:w_stringZ("start_actor_99") -- some string, always const packet:w_u8(p_silent) -- 1 for silent level changing packet:r_seek(0) obj:STATE_Read(packet, packet:w_tell()) end
-- С центральной Припяти в восточную function pripyat_to_cop_pripyat() create_level_changer(97115, vector():set(189.497,-2.115,233.149),259791,2149, -- где переход 176155,3760, vector():set(-15.765,-0.496,307.323), -- куда переходить vector():set(0.0,0.0,-1.0), -- направление взгляда при появлении "pripyat",0) -- на какую локу и запрос (0 - появится вопрос, 1 - автоматический переход) amk.send_tip("Центр Припяти -> Восток Припяти", "Новый путь!", 2, 25, "pda_icon") end
-- С восточной части в центральную №1 function pripyat_cop_to_pripyat_1() create_level_changer(97116, vector():set(-22.476,-0.491,306.534),167535,3760, -- где переход 257147,2149, vector():set(180.800,-2.205,233.571), -- куда переходить vector():set(0.0,0.0,-1.0), -- направление взгляда при появлении "l11_pripyat",0) -- на какую локу и запрос (0 - появится вопрос, 1 - автоматический переход) end
-- С восточной части в центральную №2 function pripyat_cop_to_pripyat_2() create_level_changer(97117, vector():set(-158.014,-0.435,-395.872),48713,3753, -- где переход 145457,2269, vector():set(35.081,-2.281,-291.484), -- куда переходить vector():set(0.0,0.0,-1.0), -- направление взгляда при появлении "l11_pripyat",0) -- на какую локу и запрос (0 - появится вопрос, 1 - автоматический переход) end
-- С восточной Припяти в Х-8 function pripyat_cop_to_lab_x8() create_level_changer(97118, vector():set(-78.298,0.303,100.377),111629,3754, -- где переход 3750,3838, vector():set(-77.974,-7.753,94.387), -- куда переходить vector():set(0.0,0.0,-1.0), -- направление взгляда при появлении "labx8",0) -- на какую локу и запрос (0 - появится вопрос, 1 - автоматический переход) amk.send_tip("Восток Припяти -> Лаборатория Х-8", "Новый путь!", 2, 25, "pda_icon") end
-- Из Х-8 в восточную Припять function lab_x8_to_pripyat_cop() create_level_changer(97119, vector():set(-78.048,-7.902,99.385),3764,3838, -- где переход 112273,3754, vector():set(-77.719,0.400,96.113), -- куда переходить vector():set(0.0,0.0,-1.0), -- направление взгляда при появлении "pripyat",0) -- на какую локу и запрос (0 - появится вопрос, 1 - автоматический переход) end
Ce doit être un autre fichier ? |
| | | boutch71 Fondateur et Admin
Messages : 1672 Date d'inscription : 25/03/2011 Age : 53 Localisation : Panneau De Control du Réacteur!
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Lun 25 Juil 2011, 11:11 | |
| Tu fait erreur mon ami regarde bien le nom "trader_npc_mapspot", "Торговец"le nom - "Торговец" est belle et bien afficher sur la map dans le PDA (l'icon de "sidorovich orangé) quand tu met ton curseur dessus! fait un zoom pour voir l'icon de sidorovich en plus gros et positionne ton curseur dessus le nom apparaitras comme ceci si je me trompe pas "Торговец" (qui veut dire "marchant") Regarde bien le script j'ai même coloré les noms pour que tu puisse mieux les voir! - Spoiler:
--[[----------------------------------------------------------------------------------------------- File : dmx_mod.script Description : Основной скрипт мода, содержатся квестовые функции, спавн и т.п. Copyright : DMX MOD Author : Shadows & Co --]]-----------------------------------------------------------------------------------------------
function dmx_use(obj) use_sound_items(obj) use_radiation_detector(obj) use_silencers_box(obj) use_bolt_box(obj) use_item_ammo_flame_transfer(obj) bolt_ending.on_actor_use(obj) hidden_slots.on_eat(obj:section()) dmx_medicines.medicines_use(obj) dmx_cars.car_repair(obj) end
function dmx_item_take(obj) dmx_treasure.on_item_take(obj) dmx_inv_weight_static.item_take(obj) max.on_item_take(obj) bolt_ending.on_item_take(obj) m_bar.take_item(obj) cube_take(obj) end
function dmx_item_drop(obj) razgruzka_v.lose_item(obj) hidden_slots.on_item_drop(obj) dmx_inv_weight_static.on_item_drop(obj) max.on_item_drop(obj) bolt_ending.on_item_drop(obj) m_bar.drop_item(obj) end
function dmx_update(delta) wpn_explode_update() -- Взрыв пушки dmx_medicines.radioprotector_update() -- Радиопротектор red_effect() -- Красный билдовский эффект ранения max.show_medkits() -- Индикаторы ЗП на худе dualweapon.main() -- Стрельба с двух рук hidden_slots.slots_update() -- Новые слоты dmx_inv_weight_static.update() -- Индикатор веса dmx_cars.update() -- Наш любимый транспорт keylogger.update() -- Новые кнопки rx_shoot_enable.shoot_effect() -- Эффект стрельбы bolt_ending.update() -- Заканчивающиеся болты hud_sleep_static() -- Индикатор сна dmx_medicines.psy_blockade_protection(delta) -- Пси-блокада dmx_pda_notepad.pda_music_update() -- Радио в ПДА actor_blockpost_propusk() -- Пропуск на блокпост xr_giditara.item_update() -- Гитара xr_garmon.item_update() -- Гармошка xr_smoking.smoking_update(delta) -- Сигарета xr_racya.item_update() -- Рация --zoom_update() -- Кратность бинокля end
function dmx_net_spawn() max.update() hidden_slots.net_spawn() dmx_treasure.net_spawn() bolt_ending.net_spawn() end
function dmx_net_destroy() bolt_ending.net_destroy() end
function dmx_start_spawn() syslov_spawn() place_of_sleep_spawn() poisonous_fog_spawn() special_effects_spawn() dmx_cars.car_spawn() dmx_cars.car_spawn_new_locations() pripyat_cop_to_pripyat_1() pripyat_cop_to_pripyat_2() lab_x8_to_pripyat_cop() end ------------------------------------------------------------------------------------------------------------------------ -- СПАВН ПЕРСОНАЖЕЙ -- Суслов на Болотах function syslov_spawn() local obj = alife():create("syslov",vector():set(-178.59976196289,0.929643034935,-320.59954833984),51819,3365) local tbl = amk.read_stalker_params(obj) tbl.sid = 97120 amk.write_stalker_params(tbl, obj) end
-- Комбат на Кордоне function kombat_spawn() alife():create("kombat",vector():set(183.67390441895,1.8403881788254,360.74264526367),484425,230) end
--[[Функция для определения точного имени function syslov_spawn() local sobj = alife():create("syslov",vector():set(-178.59976196289,0.929643034935,-320.59954833984),51819,3365) get_console():execute("load ~~~ syslov name: "..sobj:name()) end]] ------------------------------------------------------------------------------------------------------------------------ -- МЕТКИ ПЕРСОНАЖЕЙ -- Установка меток function mapspot_npc(sid,id) if sid==9504 then level.map_add_object_spot(id, "repair_npc_mapspot", "Техник") -- Долговязый elseif sid==97123 then level.map_add_object_spot(id, "repair_npc_mapspot", "Техник") -- Василий elseif sid==9501 then level.map_add_object_spot(id, "repair_npc_mapspot", "Техник") -- Сяк elseif sid==507 then level.map_add_object_spot(id, "boss_npc_mapspot", "Главнокомандующий «Долга»") elseif sid==707 then level.map_add_object_spot(id, "boss_npc_mapspot", "Главнокомандующий «Свободы»") elseif sid==14000 then level.map_add_object_spot(id, "boss_npc_mapspot", "Главнокомандующий «Чистого Неба»") elseif sid==003 then level.map_add_object_spot(id, "trader_npc_mapspot", "Торговец") -- Сидорович elseif sid==500 then level.map_add_object_spot(id, "trader_npc_mapspot", "Торговец") -- Бармен elseif sid==97120 then level.map_add_object_spot(id, "trader_npc_mapspot", "Торговец") -- Суслов elseif sid==902 then level.map_add_object_spot(id, "trader_npc_mapspot", "Торговец") -- Сахаров elseif sid==734 then level.map_add_object_spot(id, "trader_npc_mapspot", "Торговец") -- Скряга elseif sid==9903 then level.map_add_object_spot(id, "trader_npc_mapspot", "Торговец") -- Адреналин end end
-- Удаление меток в оффлайне function remove_mapspot_npc(sid,id) if sid==9504 then level.map_remove_object_spot(id, "repair_npc_mapspot") -- Долговязый elseif sid==97123 then level.map_remove_object_spot(id, "repair_npc_mapspot") -- Василий elseif sid==9501 then level.map_remove_object_spot(id, "repair_npc_mapspot") -- Сяк elseif sid==507 then level.map_remove_object_spot(id, "boss_npc_mapspot") -- Воронин elseif sid==707 then level.map_remove_object_spot(id, "boss_npc_mapspot") -- Лукаш elseif sid==14000 then level.map_remove_object_spot(id, "boss_npc_mapspot") -- Свиблов elseif sid==003 then level.map_remove_object_spot(id, "trader_npc_mapspot") -- Сидорович elseif sid==500 then level.map_remove_object_spot(id, "trader_npc_mapspot") -- Бармен elseif sid==97120 then level.map_remove_object_spot(id, "trader_npc_mapspot") -- Суслов elseif sid==902 then level.map_remove_object_spot(id, "trader_npc_mapspot") -- Сахаров elseif sid==734 then level.map_remove_object_spot(id, "trader_npc_mapspot") -- Скряга elseif sid==9903 then level.map_remove_object_spot(id, "trader_npc_mapspot") -- Адреналин end end ------------------------------------------------------------------------------------------------------------------------ -- СТАТЬИ ПРО ЛОКАЦИИ -- проверим наличие денег для статей function syslov_moral_many(actor,npc) return actor:money() > 1500 end
-- отдадим деньги за статьи function syslov_moral_many_dal(t1,t2) local npc=t1 if npc:id()==db.actor:id() then npc=t2 end dialogs.relocate_money(npc,1500,"out") end ------------------------------------------------------------------------------------------------------------------------ -- АПГРЕЙД СКАТа -- проверим наличие СКАТ-15 с 3-мя блоками апгрейдера function syslov_skat15_have() return sak.have_item_namber("exo_mil_exoskeleton_addrs",1) ~= false end
-- проверим наличие артефакта Капля души function skat15up_art_have() return sak.have_item_namber("af_spirit_1",1) ~= false end
-- проверим наличие денег function skat15up_moral_many(actor,npc) return actor:money() > 45000 end
-- отдадим деньги function skat15up_moral_many_dal(t1,t2) local npc=t1 if npc:id()==db.actor:id() then npc=t2 end dialogs.relocate_money(npc,45000,"out") end
-- отдадим артефакт и дадим ГГ апгрейдер function upgrader_berem_otdal_art(first_speaker, second_speaker) sak.out_item_namber("af_spirit_1",1) dialogs.relocate_item_section(second_speaker, "dmx_skat15_upgrade","in") end ------------------------------------------------------------------------------------------------------------------------ -- БАРТЕР ЖРАТВЫ У ХОЛОДА -- Сигареты -- проверим наличие 2 пачек Мечты function holod_dmx_food_mechta_prov() return sak.have_item_namber("mechta",2) ~= false end
-- отдадим эти две пачки и получим сигареты соли function mechta_otdal_pol_col(first_speaker, second_speaker) sak.out_item_namber("mechta",2) dialogs.relocate_item_section(second_speaker, "sigaret","in") end
-- проверим наличие 3 сигар function holod_dmx_food_sigara_prov() return sak.have_item_namber("cigara",3) ~= false end
-- отдадим эти сигары и получим сигареты соли function sigara_otdal_pol_col(first_speaker, second_speaker) sak.out_item_namber("cigara",3) dialogs.relocate_item_section(second_speaker, "sigaret","in") end
-- ВОДКА -- проверим наличие 2 пузырей Абсолюта function holod_absolut_prov() return sak.have_item_namber("absolut_vodka",2) ~= false end
-- отдадим 2 пузыря и получим Казаков function absolut_otdal_pol_kaz(first_speaker, second_speaker) sak.out_item_namber("absolut_vodka",2) dialogs.relocate_item_section(second_speaker, "vodka","in") end
-- проверим наличие одного пузыря Смирнофф function holod_smirnoff_prov() return sak.have_item_namber("smirnoff_vodka",1) ~= false end
-- проверим наличие ста рублей function holod_dialog_many_food_prov(actor,npc) return actor:money() > 100 end
-- отдадим Смирнофф и получим Казаков function smirnoff_otdal_pol_kaz(first_speaker, second_speaker) sak.out_item_namber("smirnoff_vodka",1) dialogs.relocate_item_section(second_speaker, "vodka","in") end
-- отдадим сто рублей function holod_dialog_many_food_otdal(t1,t2) local npc=t1 if npc:id()==db.actor:id() then npc=t2 end dialogs.relocate_money(npc,100,"out") end
-- КОЛБАСА -- проверим наличие двух палок Докторской function holod_kolbasadmx_prov() return sak.have_item_namber("kolbasadmx",2) ~= false end
-- отдадим их и получим обычную колбаску function kolbasa_dmx_dal_pol_kolba(first_speaker, second_speaker) sak.out_item_namber("kolbasadmx",2) dialogs.relocate_item_section(second_speaker, "kolbasa","in") end
-- проверим наличие пива Черниговского function holod_chernigov_prov() return sak.have_item_namber("pivo",1) ~= false end
-- отдадим пиво и получим обычную колбаску function chernigov_otdal_pol_kol(first_speaker, second_speaker) sak.out_item_namber("pivo",1) dialogs.relocate_item_section(second_speaker, "kolbasa","in") end ------------------------------------------------------------------------------------------------------------------------ -- СТАРТОВЫЙ ДИАЛОГ У ХОЛОДА -- дадим ГГ водку Немирофф function nemiroff_vodka_berem(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "nemiroff_vodka","in") end
-- дадим ГГ водку Абсолют function absolut_vodka_berem(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "absolut_vodka","in") end
-- дадим ГГ водку Смирнофф function smirnoff_vodka_berem(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "smirnoff_vodka","in") end ------------------------------------------------------------------------------------------------------------------------ -- SOUL CUBE -- проверим барахло function shadows_cube_prov() return new_dialog.item_much("nemiroff_vodka",5) ~= false and new_dialog.item_much("irp-b",2) ~= false and new_dialog.item_much("yantar",3) ~= false and new_dialog.item_much("nuts",5) ~= false and new_dialog.item_much("pivo",3) ~= false and new_dialog.item_much("energy_ad_rush",5) ~= false and new_dialog.item_much("merc_scientific_outfit",1) ~= false and new_dialog.item_much("wpn_rpd",1) ~= false end
-- отдадим барахло за Куб function shadows_cube_otdal(first_speaker, second_speaker) sak.out_item_namber("nemiroff_vodka",5) sak.out_item_namber("irp-b",2) sak.out_item_namber("yantar",3) sak.out_item_namber("nuts",5) sak.out_item_namber("pivo",3) sak.out_item_namber("energy_ad_rush",5) sak.out_item_namber("merc_scientific_outfit",1) sak.out_item_namber("wpn_rpd",1) end
-- дадим ГГ денег если он не хочет находить Куб function shadows_cube_many_25000(t1,t2) local npc=t1 if npc:id()==db.actor:id() then npc=t2 end dialogs.relocate_money(npc,25000,"in") end
-- заспавним Shadows`a function shadows_spawn() local obj = alife():create("shadows",vector():set(-279.516,0.972,35.288),7088,3351) local tbl = amk.read_stalker_params(obj) tbl.sid = 97121 amk.write_stalker_params(tbl, obj) end
-- Shadows - враг function shadows_enemy(first_speaker, second_speaker) second_speaker:set_relation(game_object.enemy, first_speaker) db.actor:change_character_reputation(db.actor:character_reputation() - 40) end
-- даем фейковый Куб function fake_cube_dal(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "fake_cube","in") end
-- забираем фейковый Куб function fake_cube_otdal(first_speaker, second_speaker) sak.out_item_namber("fake_cube",1) end
-- немного оживим Припять function cube_pripyat_spawn() alife():create("m_controller_normal",vector():set(287.109,-0.371,266.864),474028,3769) alife():create("fracture_swamp",vector():set(287.109,-0.371,266.864),474028,3769) alife():create("fracture_master",vector():set(132.561,-0.238,216.951),359942,3769) alife():create("fracture_karlik",vector():set(149.252,-0.052,211.248),378888,3769) alife():create("cop_prip_treasure_cube",vector():set(131.672,29.114,240.428),359193,3769) alife():create("item_doc_x8",vector():set(136.492,29.332,239.402),365077,3769) alife():create("dmx_military_map",vector():set(132.064,28.907,235.955),359964,3769) alife():create("cop_kvartira_music",vector():set(131.227,30.029,236.661),358426,3769) alife():create("wpn_protecta_col",vector():set(6.984,5.361,269.103),205983,3760) alife():create("wpn_pkm_tactic",vector():set(35.739,-2.883,-58.234),245226,3766) alife():create("bloodsucker_strong",vector():set(-49.974,-0.507,-71.471),139443,3759) alife():create("m_poltergeist_normal_tele",vector():set(-62.949,4.224,-94.039),126481,3759) alife():create("pseudodog_strong",vector():set(-160.217,-0.506,-252.603),47519,3748) alife():create("pseudodog_strong",vector():set(-146.134,-0.507,-271.362),56480,3751) alife():create("af_babka_3",vector():set(-77.910,25.093,87.284),112218,3755) monolith_kbo_spawn() labx8_cube_spawn() labx8_spawn_trup_ps() end
function monolith_kbo_spawn() alife():create("kbo_monolit1",vector():set(-42.540,0.400,81.989),146270,3755) alife():create("kbo_monolit3",vector():set(-43.463,0.401,110.734),145710,3755) alife():create("kbo_monolit4",vector():set(-82.692,0.399,96.015),107366,3754) alife():create("kbo_monolit6",vector():set(-41.787,4.500,84.167),147056,3755) alife():create("kbo_monolit7",vector():set(-42.601,4.500,105.050),146450,3755) alife():create("kbo_monolit8",vector():set(-63.459,4.497,86.316),125948,3754) alife():create("kbo_monolit10",vector():set(-82.731,4.500,83.071),107276,3754) alife():create("kbo_monolit12",vector():set(-76.615,8.600,74.130),113517,3754) alife():create("kbo_monolit13",vector():set(-45.919,8.602,94.610),143029,3755) alife():create("kbo_monolit15",vector():set(-46.727,12.700,110.448),142386,3755) alife():create("kbo_monolit17",vector():set(-61.830,16.801,104.961),128245,3755) alife():create("kbo_monolit1",vector():set(-42.900,20.900,115.329),146501,3755) end
-- подбираем блокнот в квартире и спавним Библиотекаря function cube_take(obj) if obj:section()=="item_doc_x8" then if level.name()=="pripyat" and not has_alife_info("cop_prip_info_take_doc") then db.actor:give_info_portion("cop_prip_info_take_doc") alife():create("bibliotekar",vector():set(140.922,-0.367,220.575),370139,3769) amk.send_tip("Добрался я до квартиры. Куба Теней и Павла Сергеевича в ней не оказалось. Зато я нашел интересный блокнот про ночной инцидент в лаборатории... Кароче после всего, что случилось, наш друг отправился назад, в лабораторию. Видимо, так и не вышел от туда...\\nКстати тут ещё приемник какой-то странный - запись постоянно повторяется. На записи переговор военных вроде...\\nЧто думаешь?", "Меченый: приватный канал", 10, 20, "actor_sms") amk.send_tip("Думаю вот что - линять тебе надо. У нас проблемы - наш последний разговор подслушали. А может и кто-то другой знал о Кубе... Может тот, кто тебе давай наводку на меня...\\nВообщем к восточной части Припяти сейчас подходит отряд наемников. Они знают, что ты ищешь Куб в той квартире...\\nНадо заставить их поверить в обратное. Ты ведь не хочешь неприятностей? Можно попробовать слить дезинформацию в сталкерскую сеть...\\nПопробуй написать в чат через ПДА: «Продаю Куб Теней, недорого. Встретимся на Кордоне около Периметра.»\\nПиши точно так, как я написал, тогда возможно они решат, что ты уже забрал Куб... Попробуй.", "Shadows: приватный канал", 30, 50) pripyat_base_spawn() end end end
-- заселение прачечной function pripyat_base_spawn() local obj = alife():create("mudri",vector():set(144.298,-0.096,-192.662),375712,3765) local tbl = amk.read_stalker_params(obj) tbl.sid = 97122 amk.write_stalker_params(tbl, obj) alife():create("grozn",vector():set(136.787,4.905,-191.870),364574,3765) alife():create("alex",vector():set(130.497,-0.297,-182.324),356345,3765) alife():create("cop_base_music",vector():set(156.453,0.493,-179.119),384599,3765) alife():create("medkit_army",vector():set(143.582,0.822,-185.929),373572,3765) end
-- употребляем водку function actor_drinking_vodka() local oItem = db.actor:object("vodka") or db.actor:object("absolut_vodka") or db.actor:object("nemiroff_vodka") or db.actor:object("smirnoff_vodka") if oItem then db.actor:eat(oItem) else local sobj = amk.spawn_item_in_inv("vodka") level.client_spawn_manager():add(sobj.id,0,spawn_vodka_callback,true) end end
function spawn_vodka_callback(arg,id,item) db.actor:eat(item) amk.remove_item(item) end
-- пару монстров по квесту поиска карты Припяти function monsters_quest_spawn() alife():create("zombie_ghost",vector():set(184.295,0.674,47.489),414274,3770) alife():create("bloodsucker_strong",vector():set(199.468,2.501,-8.367),427539,3768) alife():create("zombie_ghost",vector():set(234.454,0.547,22.189),452741,3768) alife():create("zombie_swamp",vector():set(234.454,0.547,22.189),452741,3768) alife():create("dmx_pripyat_map",vector():set(205.422,5.444,-25.960),433226,3768) end
-- подбираем карту Припяти function dmx_pripyat_map_have() return sak.have_item_namber("dmx_pripyat_map",1) ~= false end
-- даем переход в Х-8 function next_labx8() amk.send_tip("Я узнал где находится вход в лабораторию Х-8. Направляюсь туда.", "Меченый: приватный канал", 10, 20, "actor_sms") amk.send_tip("Хорошо. Надеюсь Павел Сергеевич жив... Он много чего может нам рассказать.", "Shadows: приватный канал", 30, 20) device_torch_bad() labx8_ghost() pripyat_cop_to_lab_x8() end
-- испортился фонарь function device_torch_bad() local oItem = db.actor:object("device_torch") or db.actor:object("fake_device_torch") if oItem then --db.actor:drop_item(oItem) alife():release(alife():object(oItem:id()), true) amk.spawn_item_in_inv("device_torch_bad") end end
-- заселение лаборатории Х-8 function labx8_cube_spawn() alife():create("lab_x8_treasure",vector():set(-43.313,-20.517,72.710),6747,3850) alife():create("burer_strong",vector():set(-83.113,-15.939,108.460),2780,3837) alife():create("snork_strong",vector():set(-98.249,-18.130,86.008),919,3838) alife():create("burer_strong",vector():set(-86.267,-20.021,82.081),2259,3838) alife():create("tushkano_normal",vector():set(-105.451,-32.377,77.411),453,3830) alife():create("tushkano_normal",vector():set(-108.119,-32.401,85.121),359,3832) alife():create("tushkano_normal",vector():set(-105.451,-32.377,77.411),453,3830) alife():create("tushkano_normal",vector():set(-108.119,-32.401,85.121),359,3832) alife():create("antirad",vector():set(-110.974,-31.502,90.253),259,3832) alife():create("ammo_5.45x39_izomorf",vector():set(-87.835,-31.175,80.502),1942,3844) alife():create("ammo_5.45x39_izomorf",vector():set(-87.835,-31.175,80.502),1942,3844) alife():create("rat_strong",vector():set(-74.285,-36.714,85.643),4481,3844) alife():create("item_doc_x8_2",vector():set(-58.532,-16.653,100.163),6181,3840) alife():create("wpn_soulcube",vector():set(-54.697,-20.974,91.194),6433,3840) alife():create("zone_grost",vector():set(-56.302,-22.017,87.185),6352,3840) alife():create("tarakan_normal",vector():set(-76.451,-23.858,61.195),3957,3845) alife():create("af_armor_4",vector():set(-76.451,-23.858,61.195),3957,3845) alife():create("m_poltergeist_normal_tele",vector():set(-78.942,-24.323,87.381),3412,3839) alife():create("snork_strong",vector():set(-78.755,-28.446,72.607),3362,3840) alife():create("rat_strong",vector():set(-72.487,-20.166,64.236),4730,3847) alife():create("ammo_og-7b",vector():set(-75.058,-10.367,56.259),4219,3843) alife():create("ammo_og-7b",vector():set(-75.058,-10.367,56.259),4219,3843) alife():create("wpn_rpg7_m1",vector():set(-75.058,-10.367,56.259),4219,3843) alife():create("rat_strong",vector():set(-78.422,-16.005,71.539),3507,3838) alife():create("rat_strong",vector():set(-78.422,-16.005,71.539),3507,3838) alife():create("snork_strong",vector():set(-90.291,-15.977,78.629),1634,3831) alife():create("burer_strong",vector():set(-76.541,-28.470,64.181),3970,3842) alife():create("energy_stalker",vector():set(-56.601,-15.558,103.241),6292,3840) alife():create("zone_cockroach",vector():set(-75.565,-16.003,72.270),4116,3848) end
-- спавним труп ученого function labx8_spawn_trup_ps() local obj = alife():create("pavel_sergeevich",vector():set(-56.302,-22.017,87.185),6352,3840) local tbl = amk.read_stalker_params(obj) tbl.sid = 97124 tbl.health = 0 tbl.updhealth = 0 amk.write_stalker_params(tbl, obj) end
-- проверяем наличее Куба Теней в рюкзаке function wpn_soulcube_have() return sak.have_item_namber("wpn_soulcube",1) ~= false end
-- таймер появления призрака и контролера function labx8_cube_take() amk.start_timer("ghost_timer",4,"") end
-- блуждающий призрак function labx8_ghost() amk.start_timer("ghost_strong_timer",10,"") end
-- есть ли карта АС в рюкзаке function dmx_military_map_have() return sak.have_item_namber("dmx_military_map",1) ~= false end
-- есть ли дневник в рюкзаке function item_doc_x8_have() return sak.have_item_namber("item_doc_x8",1) ~= false end
-- есть ли документы из Х-8 в рюкзаке function item_doc_x8_2_have() return sak.have_item_namber("item_doc_x8_2",1) ~= false end
-- отдадим карту Припяти function give_dmx_pripyat_map(first_speaker, second_speaker) sak.out_item_namber("dmx_pripyat_map", 1) end
-- отдадим карту АС function give_dmx_military_map(first_speaker, second_speaker) sak.out_item_namber("dmx_military_map", 1) end
-- отдадим документы из Х-8 function give_item_doc_x8_2(first_speaker, second_speaker) sak.out_item_namber("item_doc_x8_2", 1) end
-- отдадим дневник function give_item_doc_x8(first_speaker, second_speaker) sak.out_item_namber("item_doc_x8", 1) end
-- дадим ГГ 500 руб за каждый итем function dal_many_500(t1,t2) local npc=t1 if npc:id()==db.actor:id() then npc=t2 end dialogs.relocate_money(npc,500,"in") end ------------------------------------------------------------------------------------------------------------------------ -- ИНСТРУМЕНТЫ ДЛЯ МУДРЕЦА -- спавним инструменты и контрошу function instruments_spawn() alife():create("mudrec_instruments",vector():set(-188.578,0.582,-209.861),29111,3748) alife():create("m_controller_normal",vector():set(-182.600,-0.283,-205.787),32993,3748) end
-- проверим есть ли инструменты в рюкзаке function cop_pripyat_instruments_have() return sak.have_item_namber("mudrec_instruments",1) ~= false end
-- отдадим инструменты Мудрецу function give_cop_pripyat_instruments(first_speaker, second_speaker) sak.out_item_namber("mudrec_instruments", 1) end ------------------------------------------------------------------------------------------------------------------------ -- ВТОРОЙ СПОСОБ ПОПАСТЬ НА БЛОКПОСТ local outfit_propusk_tabl = {["specops_outfit"]=true, ["military_outfit"]=true, ["militaryspec_outfit"]=true, ["soldier_outfit"]=true, ["outfit_soldier_m1"]=true, ["exo_mil_exoskeleton"]=true} function outfit_propusk(outfit) if outfit then local name = outfit:section() for k,v in pairs(outfit_propusk_tabl) do if string.find(name,k) then return true end end end end
function actor_blockpost_propusk() if dmx_cars.car_section()=="vehicle_uaz_fsb" and outfit_propusk(db.actor:item_in_slot(6)) then actor_set_military() else actor_restore_community() end end
function actor_set_military() local ac=db.actor:character_community() if ac~="military" then amk.save_variable("acmmty",ac) db.actor:set_character_community("military", 0, 0) db.actor:give_info_portion("actor_propusk_info") end end
function actor_restore_community() local stored_comm=amk.load_variable("acmmty",nil) if stored_comm and stored_comm~=db.actor:character_community() then db.actor:set_character_community(stored_comm, 0, 0) db.actor:disable_info_portion("actor_propusk_info") amk.del_variable("acmmty") end end
-- проверка наличия Берилла function specops_outfit_have() return sak.have_item_namber("specops_outfit",1) ~= false end
-- спавн машины около фермы function blockpost_quest_spawn() alife():create("vehicle_uaz_fsb",vector():set(1.253,2.480,72.038),278071,89) end
-- даем удостоверение и ключи от машины function give_certificate_and_key(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "item_certificate","in") dialogs.relocate_item_section(second_speaker, "car_key","in") end
-- забираем удостоверение и ключи от машины function give_items_blockpost_quest(first_speaker, second_speaker) sak.out_item_namber("item_certificate", 1) sak.out_item_namber("car_key", 1) end ------------------------------------------------------------------------------------------------------------------------ -- OTHERS SPAWN -- Спавн мест для сна function place_of_sleep_spawn() alife():create("place_of_sleep",vector():set(-210.765,-22.881,-122.198),42632,59) -- Кордон - в подвале деревни alife():create("place_of_sleep",vector():set(47.043,1.567,243.461),219251,359) -- Свалка - на заставе Долга alife():create("place_of_sleep_vid",vector():set(42.121,7.499,-17.377),279888,664) -- Агропром - около Адреналина alife():create("place_of_sleep",vector():set(27.627,-10.949,-280.456),54978,1480) -- Янтарь - в бункере alife():create("place_of_sleep",vector():set(9.233,-7.186,20.183),316476,1582) -- АС - в бараках alife():create("place_of_sleep",vector():set(99.587,4.333,131.124),210226,2171) -- Припять - в квартире Стрелка alife():create("place_of_sleep",vector():set(146.228,5.035,-172.466),375746,3765) -- Восток Припяти - прачечная alife():create("place_of_sleep",vector():set(36.312,-3.370,-48.361),22448,1996) -- Радар - в доме Сяка alife():create("place_of_sleep_vid",vector():set(-410.158,0.771,69.751),162553,2889) -- НЗ - Лазарет alife():create("place_of_sleep",vector():set(-68.412,-6.368,-68.965),3552,717) -- Подземка Агропрома - тайник alife():create("place_of_sleep_vid",vector():set(-172.368,-2.678,-72.607),1765,2863) -- Пещера - У Шахтера alife():create("place_of_sleep",vector():set(48.180,1.101,-59.024),235536,1083) -- ТД - У бандитов alife():create("place_of_sleep",vector():set(-135.309,1.424,-318.204),77666,3374) -- Болота - база ЧН alife():create("place_of_sleep_vid",vector():set(19.020,9.701,29.558),19080,3330) -- Старая Деревня - В Штабе alife():create("place_of_sleep",vector():set(-122.429,38.783,-523.148),194437,3089) -- Генераторы - деревня нейтралов alife():create("place_of_sleep",vector():set(12.903,0.268,-39.544),74533,3290) -- Рыжий Лес - вагончик около Лесника alife():create("place_of_sleep",vector():set(-45.021,-0.778,-252.296),4671,2994) -- Лиманск - дом на углу alife():create("place_of_sleep",vector():set(-213.998,1.396,91.526),122710,3600) -- МГ - дом Парфюмера alife():create("place_of_sleep_vid",vector():set(-31.129,0.556,-129.076),162684,2882) -- Забытый Лес - в лагере Креста alife():create("place_of_sleep",vector():set(138.037,-7.041,-71.337),575215,2830) -- АТП - в центре alife():create("place_of_sleep",vector():set(117.971,0.206,66.106),34340,1252) -- Бар - комната около Захара end
-- Спавн болотного тумана function poisonous_fog_spawn() -- Свалка for i=1,2 do alife():create("zone_tuman_cop",vector():set(97.482,-2.070,-164.105),263672,412) alife():create("zone_tuman_cop",vector():set(86.652,-2.261,-169.430),254679,412) alife():create("zone_tuman_cop",vector():set(121.531,-2.175,-158.125),283733,408) alife():create("zone_tuman_cop",vector():set(114.223,-2.318,-150.951),277586,408) alife():create("zone_tuman_cop",vector():set(108.215,-2.289,-141.143),272848,408) alife():create("zone_tuman_cop",vector():set(108.712,-2.265,-130.778),272858,408) alife():create("zone_tuman_cop",vector():set(106.333,-0.333,-117.006),271168,396) alife():create("zone_tuman_cop",vector():set(100.657,-2.714,-105.159),266590,395) end -- Агропром alife():create("zone_tuman_cop",vector():set(-163.313,1.123,21.829),74297,675) alife():create("zone_tuman_cop",vector():set(-174.509,1.124,15.079),62654,675) alife():create("zone_tuman_cop",vector():set(-185.625,1.124,27.122),51360,537) alife():create("zone_tuman_cop",vector():set(-176.380,1.123,38.283),60578,675) alife():create("zone_tuman_cop",vector():set(-163.260,1.122,44.034),74329,531) alife():create("zone_tuman_cop",vector():set(-170.563,1.124,54.766),66409,674) alife():create("zone_tuman_cop",vector():set(-162.946,1.118,33.639),74314,531) alife():create("zone_tuman_cop",vector():set(-172.725,1.113,28.307),64169,675) alife():create("zone_tuman_cop",vector():set(-169.308,1.119,18.844),67795,675) alife():create("zone_tuman_cop",vector():set(-181.345,1.123,20.011),55580,675) alife():create("zone_tuman_cop",vector():set(-185.820,1.124,38.382),51376,674) alife():create("zone_tuman_cop",vector():set(-172.641,1.123,46.626),64188,674) end
function special_effects_spawn() alife():create("zone_fog_cigarette",vector():set(139.75,-3.12,28.88),36058,1236) -- Сигаретный дым в Баре alife():create("zone_fog_cigarette",vector():set(150.71,0.72,-242.03),349148,958) -- Сигаретный дым на стоянке бандитов на входе в Х-18 alife():create("zone_fog_indoor",vector():set(-76.48,-16.29,-112.51),2998,785) -- Облако пара в подземельи Агропрома-1 alife():create("zone_fog_indoor",vector():set(-117.9,-14.95,-34.03),166,758) -- Облако пара в подземельи Агропрома-2 alife():create("zone_fog_indoor",vector():set(6.27,4.19,-18.26),3613,1115) -- Облако испарений в Х18-1 alife():create("zone_fog_indoor",vector():set(-42.74,-13,-19.6),156,1153) -- Облако испарений в Х18-2 alife():create("zone_fog_indoor",vector():set(-12.41,-12.39,11.67),4660,1156) -- Облако испарений в Х18-3 alife():create("zone_fog_indoor",vector():set(-39.22,-10.9,12.23),327,1148) -- Облако испарений в Х18-4 alife():create("zone_fog_indoor",vector():set(-21.86,-16.34,75.66),5829,1163) -- Облако испарений в Х18-5 alife():create("zone_fog_indoor",vector():set(-28.51,-9.55,-6.08),2204,2778) -- Облако испарений в подземельи Радара-1 alife():create("zone_fog_indoor",vector():set(-55.85,-21.89,28.32),562,2725) -- Облако испарений в подземельи Радара-2 alife():create("zone_fog_indoor",vector():set(7.33,-23.52,25.22),7575,2767) -- Облако испарений в подземельи Радара-3 alife():create("zone_fog_indoor",vector():set(-141.2,-13.1,-376.1),45279,1311) -- Туман возле перехода с ДТ на Янтарь alife():create("zone_fog_indoor",vector():set(-113.54,-0.001,118.68),13277,1305) -- Туман возле перехода с Бара на ДТ 1 alife():create("zone_fog_indoor",vector():set(-125.99,-0.001,119.97),13277,1305) -- Туман возле перехода с Бара на ДТ 2 alife():create("zone_fog_indoor",vector():set(-127.7,-0.036,131.9),13277,1305) -- Туман возле перехода с Бара на ДТ 3 alife():create("zone_fog_indoor",vector():set(127.58,-0.039,143),12024,1304) -- Туман возле перехода с Бара на ДТ 4 alife():create("zone_fog_indoor",vector():set(-114.36,0.998,151),12062,1304) -- Туман возле перехода с Бара на ДТ 5 alife():create("zone_fog_indoor",vector():set(-140.14,-0.009,142.59),11401,1304) -- Туман возле перехода с Бара на ДТ 6 alife():create("zone_fog_indoor",vector():set(-89.23,0.1,133.67),13884,1305) -- Туман возле перехода с Бара на ДТ 8 alife():create("zone_fog_indoor",vector():set(284.16,6.4,-289.05),141391,1460) -- Туман возле перехода с Янтаря на Росток end ------------------------------------------------------------------------------------------------------------------------ -- Проигрывание звука при использовании предмета -- Author - Gun12 and Charsi function use_sound_items(obj) local sound_table = { ['bread'] = [[inventory\inv_food]], ['kolbasa'] = [[inventory\inv_food]], ['conserva'] = [[inventory\inv_food]], ['vodka'] = [[inventory\inv_vodka]], ['antirad'] = [[inventory\inv_medic]], ['medkit'] = [[inventory\inv_medic]], ['medkit_army'] = [[inventory\inv_medic]], ['medkit_scientic'] = [[inventory\inv_medic]], ['energy_drink'] = [[inventory\inv_drinking]], ['bandage'] = [[inventory\inv_bandage]], -- Солянка ['sandwich'] = [[inventory\inv_food]], ['beer_a'] = [[inventory\inv_drinking]], ['flaska'] = [[inventory\inv_drinking]], ['sweetness'] = [[inventory\inv_food]], ['matras'] = [[inventory\inv_sleeping]], ['suvorotka'] = [[inventory\inv_pills]], ['shaxter_tele'] = [[inventory\inv_drinking]], ['snotvornoe_tele'] = [[inventory\inv_drinking]], ['bezoar'] = [[inventory\inv_food]], ['mozg'] = [[inventory\inv_food]], ['vorona_egg'] = [[inventory\inv_food]], ['mushroom'] = [[inventory\inv_food]], ['antizombie'] = [[inventory\inv_medic]], -- DMX MOD ['pivo'] = [[inventory\inv_drinking]], ['irp-b'] = [[inventory\inv_food]], ['voda'] = [[inventory\inv_drinking]], ['tuchenka'] = [[inventory\inv_food]], ['yantar'] = [[inventory\inv_food]], ['sardina'] = [[inventory\inv_food]], ['ogursi'] = [[inventory\inv_food]], ['sholad'] = [[inventory\inv_food]], ['kolbasadmx'] = [[inventory\inv_food]], ['olives'] = [[inventory\inv_food]], ['nuts'] = [[inventory\inv_food]], ['absolut_vodka'] = [[inventory\inv_vodka]], ['nemiroff_vodka'] = [[inventory\inv_vodka]], ['smirnoff_vodka'] = [[inventory\inv_vodka]], ['mineral_water'] = [[inventory\inv_drinking]], ['energy_stalker'] = [[inventory\inv_drinking]], ['energy_non_stop'] = [[inventory\inv_drinking]], ['energy_ad_rush'] = [[inventory\inv_drinking]], ['energy_red_bull'] = [[inventory\inv_drinking]], ['pivo_baltika'] = [[inventory\inv_drinking]], ['sok'] = [[inventory\inv_drinking]], ['syh_pay_gde_3'] = [[inventory\inv_food]], ['syh_pay_spp5'] = [[inventory\inv_food]], ['pervitin'] = [[inventory\inv_drugs]], ['amfetamin'] = [[inventory\inv_drugs]], ['zhgut'] = [[inventory\inv_bandage]], ['antiseptic'] = [[inventory\inv_bandage]], ['medkit_elite'] = [[inventory\inv_medic]], ['bandage_dmx'] = [[inventory\inv_bandage]], ['tab'] = [[inventory\inv_pills]], ['razgruzka'] = [[inventory\inv_razgruzka]], ['psy_blockade'] = [[inventory\inv_medic]], ['barvinok'] = [[inventory\inv_medic]]} local snd = sound_table[obj()] if snd then local snd_obj = xr_sound.get_safe_sound_object(snd) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) end end ------------------------------------------------------------------------------------------------------------------------ -- Прибор точного измерения радиации -- Идея взята из мода LWR function use_radiation_detector(obj) if obj:section() == "radiation_detector" then play_sound([[inventory\inv_radiation_detector]]) local rad = math.floor(db.actor.radiation * 600) news_manager.send_tip(db.actor, "Оценка дозы заражённости от 0 до 600 Бэр.\\nСтепень заражённости организма составляет "..rad.." Бэр.", nil, "detector", 15000) amk.spawn_item_in_inv("radiation_detector") end end ------------------------------------------------------------------------------------------------------------------------ -- Генератор огнесмеси -- Author - Charsi function use_item_ammo_flame_transfer(obj) if obj:section() == "item_ammo_flame_transfer" then amk.spawn_item_in_inv("item_ammo_flame_transfer") play_sound([[device\pda\pda_sos]]) local flame=db.actor:object("wpn_flame") if flame then local ballon=db.actor:object("amk_ballon") local kanistra=db.actor:object("amk_kanistra") if ballon and kanistra then local ammo_elapsed = flame:get_ammo_in_magazine() + 150 if ammo_elapsed > 1150 then -- кабздец огнемету amk.remove_item(flame) local pos=db.actor:position():add(db.actor:direction():mul(1)) -- спавним детали local lv=db.actor:level_vertex_id() local gv=db.actor:game_vertex_id() alife():create("gorelka",pos,lv,gv) alife():create("manometr",pos,lv,gv) alife():create("trubka",pos,lv,gv) alife():create("flamethrower_bad",pos,lv,gv) db.actor.health = -0.3 -- понижаем хп rx_utils.get_sound([[weapons\t_f1_explosion]]):play_no_feedback(db.actor,sound_object.s2d,0,vector(),1.0) -- звук взрыва level.add_cam_effector("camera_effects\\fusker.anm",959,false,"") -- камэффектор удара в лицо else if ammo_elapsed > 1000 then amk.send_tip("Опасно! Критическое давление!") end amk.remove_item(ballon) amk.remove_item(kanistra) flame:set_ammo_elapsed(ammo_elapsed) end else amk.send_tip("Невозможно сгенерировать огнесмесь без наличия коллоидного газа или бензина.") end else amk.send_tip("Нет огнемета, чтобы его заправить!") end end end ------------------------------------------------------------------------------------------------------------------------ -- Сумка с глушителями function use_silencers_box(obj) if obj:section() == "silencers_box" then amk.spawn_item_in_inv("wpn_addon_silencer") amk.spawn_item_in_inv("wpn_9mm_nato_silencer") amk.spawn_item_in_inv("wpn_addon_silencer_pistol") amk.spawn_item_in_inv("wpn_addon_sil_9_p") amk.spawn_item_in_inv("wpn_addon_sil_45") amk.spawn_item_in_inv("wpn_addon_sil_762x39") amk.spawn_item_in_inv("wpn_addon_sil_86x70") amk.spawn_item_in_inv("wpn_addon_sil_9x39") amk.spawn_item_in_inv("wpn_addon_sil_556_ar") amk.spawn_item_in_inv("wpn_addon_sil_762_ar") amk.spawn_item_in_inv("wpn_sil74") amk.spawn_item_in_inv("wpn_addon_9x39silencer") amk.spawn_item_in_inv("wpn_addon_sil_57") amk.spawn_item_in_inv("wpn_addon_sil_bramit") end end
-- Ящик с болтами function use_bolt_box(obj) if obj:section() == "bolt_box" then local tab_items = {{[10]="fake_bolt"}} local tab_where = "actor" this.SpawnToNpcOrToLocation(tab_items,tab_where) end end ------------------------------------------------------------------------------------------------------------------------ -- Деньги снимаются с трупов если есть дешифратор -- Author - Monnoroch function have_lootmany() return have_loot() ~= false end
function have_loot() if db.actor and db.actor:object("device_warning_module") then return true else return false end end ------------------------------------------------------------------------------------------------------------------------ -- Взрыв оружия при сильном износе -- Author - OGSE Team, адаптация - Charsi local stored_ammo_num = nil local stored_it_id = nil function wpn_explode_update() local aitem = db.actor:active_item() local aslot = db.actor:active_slot() if aitem and (aslot==1 or aslot==2) and isWeapon(aitem) then local it_id = aitem:id() local ammo_num = aitem:get_ammo_in_magazine() if stored_it_id ~= nil and stored_ammo_num ~= nil then if stored_it_id == it_id and ammo_num < stored_ammo_num and aitem:condition() < 0.25 and math.random()*0.5 > aitem:condition() then fx_snd = xr_sound.get_safe_sound_object("weapons\\t_f1_explosion") -- проверить, есть ли звук fx_snd:play_no_feedback(aitem, sound_object.s3d, 0, aitem:position(), 1) fx_particle = particles_object("amik\\explosion\\explosion_f1") -- проверить, есть ли партикл fx_particle:play_at_pos(aitem:position()) local explode = hit() -- нанесение хита explode.direction = vector():set(0,0,0) explode.draftsman = db.actor explode.impulse = 0.2 explode.power = 0.6 explode.type = hit.explosion db.actor:hit(explode) alife():release(alife():object(aitem:id()), true) -- удаление предмета end end stored_ammo_num = ammo_num stored_it_id = it_id else stored_it_id = nil end end ------------------------------------------------------------------------------------------------------------------------ -- Красный билдовский эффект ранения -- Author - Shadows local def_health = 0 function red_effect() if def_health>db.actor.health+0.008 then --level.add_cam_effector("camera_effects\\hit_back.anm", 1975, false, "") level.add_pp_effector("fire_hit.ppe", 1974, false) end def_health = db.actor.health end ------------------------------------------------------------------------------------------------------------------------ -- Сообщения о надвигающимся Выбросе -- Author - Shadows local blowout_phrase = {"Внимание! Приближается Выброс! Всем искать надежные укрытия!", "Ахтунг! Выброс на подходе! Все по норам кому жить хочется...", "Внимание, надвигается Выброс!", "Судя по данным с приборов, через несколько минут произойдет Выброс!"} local text = blowout_phrase[math.random(#blowout_phrase)] local snd_sms function blowout_phrases() snd_sms = sound_object("ambient\\blowout_sms_"..tostring(math.random(1,6))) snd_sms:play_at_pos(db.actor,vector():set(0,0,0),0,sound_object.s2d) amk.send_tip(text, "Важное сообщение", nil, 20, "blowout_sms") end ------------------------------------------------------------------------------------------------------------------------ -- Воспроизводим звук -- Author - Real Wolf function play_sound(sound,obj) if obj == nil then obj = db.actor end snd = xr_sound.get_safe_sound_object(sound) snd:play_no_feedback(obj, sound_object.s2d, 0, vector(), 1.0) end ------------------------------------------------------------------------------------------------------------------------ -- Выкидываем предмет из слота в инвентарь function drop_item_to_inventory(number) local actor=db.actor local item = actor:item_in_slot(number) if item then actor:drop_item(item) local sobj=alife():create(item:section(),actor:position(),actor:level_vertex_id(),actor:game_vertex_id(),0) actor:transfer_item(item,actor) alife():release(sobj,true) end end ------------------------------------------------------------------------------------------------------------------------ -- Рисуем нужные статики худа поверх костюмов -- Author - Charsi function hidden_static() local cs_names = {"hud_show_time", "inv_weight_static", "sleep_static", "dmx_speedometr", "car_equalize", "anabiotic_static", "radioprotector_static", "psy_blockade_static"} local hud = get_hud() for k,v in pairs(cs_names) do if hud:GetCustomStatic(v) then hud:RemoveCustomStatic(v) hud:AddCustomStatic(v) end end cs_names = {"caption_medkit", "caption_antirad", "caption_bandage", "caption_vodka", "caption_button", "caption_value_1", "caption_value_2", "caption_value_3", "caption_value_4"} for k,v in pairs(cs_names) do hud:RemoveCustomStatic(v) end max.show_medkits() biodetector.biodetectorRemove() end ------------------------------------------------------------------------------------------------------------------------ -- Универсальная функция спавна -- Author - erlik function SpawnToNpcOrToLocation(tab_items,tab_where) local count = 0 local pos, lvid, gvid, id, obj local function Compare(id) obj = alife():object(id) return obj and obj.profile_name and obj:profile_name() == tab_where end for k, v in pairs(tab_items) do if type(tab_where)=='table' then for k, v in pairs (tab_items[k]) do count = k for i=1, count do alife():create(v,vector():set(tab_where['x'], tab_where['y'],tab_where['z']), tab_where['lv'],tab_where['gv']) end end elseif type(tab_where)=='string' then if tab_where =="actor" then obj = alife():actor() else for i=1, 65534 do local predicate = Compare(i) if predicate then break end end end if obj == nil then return end for k, v in pairs (tab_items[k]) do count = k for i=1, count do alife():create(v, obj.position, obj.m_level_vertex_id, obj.m_game_vertex_id, obj.id) end end elseif type(tab_where)=='number' then obj = level_object_by_sid(tab_where) if obj ~= nil then id, pos, lvid, gvid= obj:id(), obj:position(), obj:level_vertex_id(), obj:game_vertex_id() elseif obj == nil then obj = alife():story_object(tab_where) id, pos, lvid, gvid = obj.id, obj.position, obj.m_level_vertex_id, obj.m_game_vertex_id for k, v in pairs (tab_items[k]) do count = k for i=1, count do alife():create(v, pos, lvid, gvid, id) end end end end end end ------------------------------------------------------------------------------------------------------------------------ -- Индикатор сна function hud_sleep_static() local hud = get_hud() if bind_stalker.scopeUsed then hud:RemoveCustomStatic("sleep_static") elseif hud:GetCustomStatic("sleep_static")==nil and amk.load_variable("gg_need_sleep",0)>300 then hud:AddCustomStatic("sleep_static", true) end end ------------------------------------------------------------------------------------------------------------------------ -- Для проверки кратности бинокля -- Author - Charsi -- 37.125\5.625 (min\max) local st function zoom_update() local item = db.actor:active_item() if item and (item:section()=="wpn_binoc" or item:section()=="wpn_arm_binoc") then if not fov then fov=device().fov end local z=fov/device().fov if st then if z>1.01 then z=z+0.05 local t=math.floor(z) local r=math.floor((z-t)*10) st:SetText("fov="..fov.." df="..device().fov) end if z<1.01 then st:SetText("") end else st=CUIStatic() st:Init(1024/2,-300+768/2,200,200) -- координаты где рисовать st:Show(true) get_hud():AddDialogToRender(st) end end end ------------------------------------------------------------------------------------------------------------------------ -- Level changer -- Author - singapur22 function create_level_changer( p_story_id, -- STORY_ID нового level_changer (понадобится нам позже) p_position, -- вектор, координаты точки, в которой будет располагаться центр нового level_changer p_lvertex_id, -- level_vertext_id - идентифицируют уровень, на котором будет создан level_changer p_gvertex_id, -- game_vertext_id p_dest_lv, -- level_vertex_id - идентифицируют уровень, на будет перебрасывать игрока p_dest_gv, -- game_vertex_id p_dest_pos, -- координаты точки, в которой на новом уровне окажется игрок p_dest_dir, -- направрение взгляда игрока p_dest_level, -- название уровня, например "L11_Pripyat" p_silent -- следует задать 1, чтобы подавить вопрос о смене уровня (автоматический переход) ) local obj = alife():create("level_changer", p_position, p_lvertex_id, p_gvertex_id) level.map_add_object_spot(obj.id, "level_changer", "") local packet = net_packet() obj:STATE_Write(packet) -- свойства cse_alife_object local game_vertex_id = packet:r_u16() local cse_alife_object__unk1_f32 = packet:r_float() local cse_alife_object__unk2_u32 = packet:r_u32() local level_vertex_id = packet:r_u32() local object_flags = packet:r_u32() local custom_data = packet:r_stringZ() local story_id = packet:r_u32() local spawn_story_id = packet:r_u32() -- свойства cse_shape local shape_count = packet:r_u8() for i=1,shape_count do local shape_type = packet:r_u8() if shape_type == 0 then -- sphere local center = packet:r_vec3() local radius = packet:r_float() else -- box local axis_x_x = packet:r_float() local axis_x_y = packet:r_float() local axis_x_z = packet:r_float() local axis_y_x = packet:r_float() local axis_y_y = packet:r_float() local axis_y_z = packet:r_float() local axis_z_x = packet:r_float() local axis_z_y = packet:r_float() local axis_z_z = packet:r_float() local offset_x = packet:r_float() local offset_y = packet:r_float() local offset_z = packet:r_float() end end -- свойства cse_alife_space_restrictor local restrictor_type = packet:r_u8() -- свойства cse_level_changer local dest_game_vertex_id = packet:r_u16() local dest_level_vertex_id = packet:r_u32() local dest_position = packet:r_vec3() local dest_direction = packet:r_vec3() local dest_level_name = packet:r_stringZ() local dest_graph_point = packet:r_stringZ() local silent_mode = packet:r_u8() packet:w_begin(game_vertex_id) -- game_vertex_id packet:w_float(cse_alife_object__unk1_f32) packet:w_u32(cse_alife_object__unk2_u32) packet:w_u32(level_vertex_id) -- level_vertex_id packet:w_u32( bit_not(193) ) -- object_flags = -193 = 0xFFFFFF3E packet:w_stringZ(custom_data) packet:w_u32(p_story_id) -- story_id packet:w_u32(spawn_story_id) packet:w_u8(1) -- количество фигур packet:w_u8(1) -- тип фигуры: box packet:w_float(2) -- axis_x_x packet:w_float(0) -- axis_x_y packet:w_float(0) -- axis_x_z packet:w_float(0) -- axis_y_x packet:w_float(4) -- axis_y_y packet:w_float(0) -- axis_y_z packet:w_float(0) -- axis_z_x packet:w_float(0) -- axis_z_y packet:w_float(4) -- axis_z_z packet:w_float(0) -- offset_x packet:w_float(0) -- offset_y packet:w_float(0) -- offset_z packet:w_u8(3) -- restrictor_type packet:w_u16(p_dest_gv) -- destination game_vertex_id packet:w_u32(p_dest_lv) -- destination level_vertex_id packet:w_vec3(p_dest_pos) -- destination position packet:w_vec3(p_dest_dir) -- destination direction (направление взгляда) packet:w_stringZ(p_dest_level) -- destination level name packet:w_stringZ("start_actor_99") -- some string, always const packet:w_u8(p_silent) -- 1 for silent level changing packet:r_seek(0) obj:STATE_Read(packet, packet:w_tell()) end
-- С центральной Припяти в восточную function pripyat_to_cop_pripyat() create_level_changer(97115, vector():set(189.497,-2.115,233.149),259791,2149, -- где переход 176155,3760, vector():set(-15.765,-0.496,307.323), -- куда переходить vector():set(0.0,0.0,-1.0), -- направление взгляда при появлении "pripyat",0) -- на какую локу и запрос (0 - появится вопрос, 1 - автоматический переход) amk.send_tip("Центр Припяти -> Восток Припяти", "Новый путь!", 2, 25, "pda_icon") end
-- С восточной части в центральную №1 function pripyat_cop_to_pripyat_1() create_level_changer(97116, vector():set(-22.476,-0.491,306.534),167535,3760, -- где переход 257147,2149, vector():set(180.800,-2.205,233.571), -- куда переходить vector():set(0.0,0.0,-1.0), -- направление взгляда при появлении "l11_pripyat",0) -- на какую локу и запрос (0 - появится вопрос, 1 - автоматический переход) end
-- С восточной части в центральную №2 function pripyat_cop_to_pripyat_2() create_level_changer(97117, vector():set(-158.014,-0.435,-395.872),48713,3753, -- где переход 145457,2269, vector():set(35.081,-2.281,-291.484), -- куда переходить vector():set(0.0,0.0,-1.0), -- направление взгляда при появлении "l11_pripyat",0) -- на какую локу и запрос (0 - появится вопрос, 1 - автоматический переход) end
-- С восточной Припяти в Х-8 function pripyat_cop_to_lab_x8() create_level_changer(97118, vector():set(-78.298,0.303,100.377),111629,3754, -- где переход 3750,3838, vector():set(-77.974,-7.753,94.387), -- куда переходить vector():set(0.0,0.0,-1.0), -- направление взгляда при появлении "labx8",0) -- на какую локу и запрос (0 - появится вопрос, 1 - автоматический переход) amk.send_tip("Восток Припяти -> Лаборатория Х-8", "Новый путь!", 2, 25, "pda_icon") end
-- Из Х-8 в восточную Припять function lab_x8_to_pripyat_cop() create_level_changer(97119, vector():set(-78.048,-7.902,99.385),3764,3838, -- где переход 112273,3754, vector():set(-77.719,0.400,96.113), -- куда переходить vector():set(0.0,0.0,-1.0), -- направление взгляда при появлении "pripyat",0) -- на какую локу и запрос (0 - появится вопрос, 1 - автоматический переход) end
J'ai vérifier tous les autres fichiers scripts un par un ligne par ligne et nada! mais, je vais quand-même vérifier correctement le fichier "string_table_mapspots_escape.xml" pour voir si le problème ne vient pas de là ainsi que les autres "string_table_mapspots_ Tu na pas du vérifier correctement Kahului j'ai pourtant afficher une partie du script dans deux balise spoiler pour comparer l'original et celui traduit en anglais. D'après ton image tu a publier le script une fois réencoder en "cyrillic windows" avec Office Word exacte ? tu peut alors voir correctement les nom "Торговец"- "Техник" afficher en russe |
| | | kahului Modo & Moddeur
Messages : 932 Date d'inscription : 21/04/2011 Age : 56 Localisation : Haute-Savoie
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Lun 25 Juil 2011, 11:34 | |
| Bien vu mon ami!!
Et alors quel est le problème où tu n'arrives pas ? |
| | | boutch71 Fondateur et Admin
Messages : 1672 Date d'inscription : 25/03/2011 Age : 53 Localisation : Panneau De Control du Réacteur!
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Lun 25 Juil 2011, 22:20 | |
| j'essais tout simplement d'arriver à faire afficher en anglais les nom des marchants indiquer d'un icone orange sur la map (comme l'icon de sidorovich)
C'est pourquoi je doit impérativement traduire ses noms - "Торговец" pour qu'ils puissent apparaîtres en anglais plutôt qu'en russe tu comprend!
|
| | | kahului Modo & Moddeur
Messages : 932 Date d'inscription : 21/04/2011 Age : 56 Localisation : Haute-Savoie
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Lun 25 Juil 2011, 22:54 | |
| Tu peux mettre ça : - Spoiler:
Technicien ") - Longue elseif sid == 97 123, puis level.map_add_object_spot (id, "repair_npc_mapspot», «technicien») - Vassili elseif sid == 9501, puis level.map_add_object_spot (id, "repair_npc_mapspot», «technicien») - syak elseif sid == 507, puis level.map_add_object_spot (id, "boss_npc_mapspot", "commandant" devoir ",") elseif sid 707 == puis level.map_add_object_spot (id, "boss_npc_mapspot", "commandant" Liberté "") elseif sid == 14 000, puis level.map_add_object_spot (id, "boss_npc_mapspot", "commandant" Clear Sky "") elseif sid == 003, puis level.map_add_object_spot (id, "trader_npc_mapspot", "Marchand") - Sidorovitch elseif sid == 500, puis level.map_add_object_spot (id, "trader_npc_mapspot", "Marchand") - Bartender elseif sid == 97 120, puis level.map_add_object_spot (id, "trader_npc_mapspot", "Marchand") - Souslov elseif sid == 902, puis level.map_add_object_spot (id, "trader_npc_mapspot", "Marchand") - Sakharov elseif sid == 734, puis level.map_add_object_spot (id, "trader_npc_mapspot", "Marchand") - Curmudgeon elseif sid == 9903, puis level.map_add_object_spot (id, "trader_npc_mapspot", "Marchand") - Adrenaline fin
Tout ce que je mets moi je l'ai mis en Français,en 1.005 Eng il n'y a pas les accents ,mais là en s'en fout un peu. |
| | | boutch71 Fondateur et Admin
Messages : 1672 Date d'inscription : 25/03/2011 Age : 53 Localisation : Panneau De Control du Réacteur!
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Lun 25 Juil 2011, 23:24 | |
| Yesss! ça y est j'ai réussi à le traduire sans provoquer de crash!! Regarde bien Kahului les trois images que voici - - Spoiler:
Je le savais j'avais raison c'étais exactement ses lignes là dans le fichier "dmx_mod.script" ça avait pas fonctionner la dernière fois car j'avais pas réencoder le fichier comme l'original! c'est pour cette raison que je me retrouvais avec un bug et un crash. Alors voici le rapport - j'ai fait une copie du fichier "dmx_mod.script" sur le bureau ensuite j'ai renommer l'extention du fichier .script en .doc après j'ai ouvert le fichier avec "Office Word" j'ai coché "autre codage" et j'ai choisi "cyrillic windows" par la suite j'ai traduit les noms "Торговец" et tous les autres qui suivent en anglais c'est-à-dire - Voici les noms afficher en russe une fois le fichier réencoder - - Spoiler:
-- МЕТКИ ПЕРСОНАЖЕЙ -- Установка меток function mapspot_npc(sid,id) if sid==9504 then level.map_add_object_spot(id, "repair_npc_mapspot", "Техник") -- Долговязый elseif sid==97123 then level.map_add_object_spot(id, "repair_npc_mapspot", "Техник") -- Василий elseif sid==9501 then level.map_add_object_spot(id, "repair_npc_mapspot", "Техник") -- Сяк elseif sid==507 then level.map_add_object_spot(id, "boss_npc_mapspot", "Главнокомандующий «Долга»") elseif sid==707 then level.map_add_object_spot(id, "boss_npc_mapspot", "Главнокомандующий «Свободы»") elseif sid==14000 then level.map_add_object_spot(id, "boss_npc_mapspot", "Главнокомандующий «Чистого Неба»") elseif sid==003 then level.map_add_object_spot(id, "trader_npc_mapspot", "Торговец") -- Сидорович elseif sid==500 then level.map_add_object_spot(id, "trader_npc_mapspot", "Торговец") -- Бармен elseif sid==97120 then level.map_add_object_spot(id, "trader_npc_mapspot", "Торговец") -- Суслов elseif sid==902 then level.map_add_object_spot(id, "trader_npc_mapspot", "Торговец") -- Сахаров elseif sid==734 then level.map_add_object_spot(id, "trader_npc_mapspot", "Торговец") -- Скряга elseif sid==9903 then level.map_add_object_spot(id, "trader_npc_mapspot", "Торговец") -- Адреналин end end
Et voici le résultât une fois les noms traduit en anglais ça fonctionne numéro 1 le mod est stable aucun crash! - Spoiler:
-- МЕТКИ ПЕРСОНАЖЕЙ -- Установка меток function mapspot_npc(sid,id) if sid==9504 then level.map_add_object_spot(id, "repair_npc_mapspot", "repair") -- Долговязый elseif sid==97123 then level.map_add_object_spot(id, "repair_npc_mapspot", "repair") -- Василий elseif sid==9501 then level.map_add_object_spot(id, "repair_npc_mapspot", "repair") -- Сяк elseif sid==507 then level.map_add_object_spot(id, "boss_npc_mapspot", "boss of the «Duty»") elseif sid==707 then level.map_add_object_spot(id, "boss_npc_mapspot", "boss of the «Freedom»") elseif sid==14000 then level.map_add_object_spot(id, "boss_npc_mapspot", "boss of the «Clear Sky»") elseif sid==003 then level.map_add_object_spot(id, "trader_npc_mapspot", "trader") -- Сидорович elseif sid==500 then level.map_add_object_spot(id, "trader_npc_mapspot", "trader") -- Бармен elseif sid==97120 then level.map_add_object_spot(id, "trader_npc_mapspot", "trader") -- Суслов elseif sid==902 then level.map_add_object_spot(id, "trader_npc_mapspot", "trader") -- Сахаров elseif sid==734 then level.map_add_object_spot(id, "trader_npc_mapspot", "trader") -- Скряга elseif sid==9903 then level.map_add_object_spot(id, "trader_npc_mapspot", "trader") -- Адреналин end end
Vraiment là je suis satisfait du résultât et les noms traduis s'affiches bel et bien en anglais!!! Si j'aurais publier plutôt la traduction j'aurais été déçu un peut c'est pourquoi j'ai préférer attendre encore et revérifier tous les fichiers du "gamedata" un par un! remarque bien il se peut je dit bien il se pourrais que plus loin dans le mod on se retrouvent encore avec des "NEWS" afficher encore en russe ça m'étonnerais mais on ne sais jamais avec tous ses scripts à traduire qui sont vraiment pas évident. Sur ça je vous laissent et surveiller bien le nouveau topic qui se prépare!!!! Boutch71... |
| | | bamo Maraudeur
Messages : 164 Date d'inscription : 23/06/2011
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Mar 26 Juil 2011, 01:24 | |
| Youpi Powaa. Cool le PDA en anglais, on se rapproche de la traduction parfaite ! Je suis au aguet pour le futur topic. |
| | | boutch71 Fondateur et Admin
Messages : 1672 Date d'inscription : 25/03/2011 Age : 53 Localisation : Panneau De Control du Réacteur!
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Mar 26 Juil 2011, 03:06 | |
| bamo
Je ne vous ferais pas attendre davantage pour le moment juste avant de publier je vais me rendre au moin jusqu'à la décharge histoire de voir si c'est stable!
kahului
J'ai décider de prendre ton idée pour le nom des marchants afficher sur la map dans le PDA sauf qu'il faut écrire le nom à l'intérieur de la parenthèse -
Comme ceci -
elseif sid==003 then level.map_add_object_spot(id, "trader_npc_mapspot", "trader Sidorovich") -- Сидорович
Et non -
elseif sid == 003, puis level.map_add_object_spot (id, "trader_npc_mapspot", "Marchand") -- Sidorovitch
Ca ne donne rien de traduire le nom --Sidorovich avec les deux traits il faut que le nom soit écrit et placer à l'intérieur de la parenthèse (id pour que le nom "trader Sidorovich" puisse apparaitre sur la map quand on là visualise dans le PDA.
Personnellement je préfère garder le tout en anglais étant donner qu'au départ c'était ça l'objectif traduction complete du DMX 1.3.4 en anglais mais, je partage quand-même ton idée pour le nom des marchants en français vous pourrais les modifiers à votre guise une fois que vous aurais mis la main sur le traduction anglaise 1.3.4
Merci Kahului de m'avoir donner l'idée de mettre le vrai nom des marchants au lieu d'écrire juste "trader" j'ai ajouter le nom complet et sa fonctionne en autant que tu enregistre le fichier word une fois traduit, ensuite tu renomme l'extention du fichier .doc en .script et c'est GAGNÉ!!!
Le mod démarre sans aucun crash et bug ça c'est ma récompense de la journée!! |
| | | kahului Modo & Moddeur
Messages : 932 Date d'inscription : 21/04/2011 Age : 56 Localisation : Haute-Savoie
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Mar 26 Juil 2011, 08:27 | |
| поэтому хорошая работа!!! so good work donc bien joué! J'ai testé ,ça marche parfaitement! Et tu as bien raison pour une première ,il faut tout laisser en anglais comme tu le fais! Ensuite chacun personnaliseras son jeu comme il l'entend! donc on surveille soyons patient so still wait поэтому Давайте быть терпеливым |
| | | bamo Maraudeur
Messages : 164 Date d'inscription : 23/06/2011
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Mar 26 Juil 2011, 12:37 | |
| Cool je sens le Monolithe prendre le dessus. J'espère ne pas rencontrer de bugs majeurs, sinon je te ferait évidemment signe dès lorsque j'en constaterait un. |
| | | boutch71 Fondateur et Admin
Messages : 1672 Date d'inscription : 25/03/2011 Age : 53 Localisation : Panneau De Control du Réacteur!
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Jeu 28 Juil 2011, 07:04 | |
| Mise à jour de la traduction anglaise du DMX 1.3.4 - Le 28 juillet 2011
Désolé de vous faire encore attendre mais,
J'ai du traduire et re passer 16 fichiers .script qui contenais encore des "news dynamic" afficher en russe! une bonne trentaine de testes effectuer et le fichier "dmx_mod.script" est celui qui ma poser le plus de problème! j'avais traduit des lignes que je ne devait pas toucher! amk_send_tip = avec la signature de "shadow" et au chargement de ma partie en cour ça provoquais un crash! j'ai donc traduit uniquement amk_send_tip = avec la signature "badge" et au chargement tout est revenue à la normal!!
J'avais complètement oublier aussi de traduire les fichiers "dmx_pda_notepad.script" et "dmx_pda_buttom.script"
D'ailleur j'igrore totallement le fonctionnement du PDA dans "Option" ?? si l'un d'entre vous sais comment l'utiliser ça serais bien de le mentionner! je sais seulement qu'il y a une touche "Radio" pour faire jouer de la musique c'est tout!! les autres nada!!
Je teste ce soir encore une heure ou deux et je vous la publie c'est GARANTIE!!!
Boutch71... |
| | | kahului Modo & Moddeur
Messages : 932 Date d'inscription : 21/04/2011 Age : 56 Localisation : Haute-Savoie
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! Jeu 28 Juil 2011, 09:27 | |
| Merci Boutch pour toutes tes informations! et cool,t'en fais pas avec tout le boulot énorme que représente ce travail de mixage de fichiers de DKZ ,plus les traductions supplémentaires et tout...zen et .... ne te mets pas de pression!! |
| | | Contenu sponsorisé
| Sujet: Re: DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! | |
| |
| | | | DMX mod 1.3.4 - Traduction Anglaise maintenant Disponible!! | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |
|