Перейти к контенту

Скриптование


Svoboда

Рекомендуемые сообщения

огромный сори если уже есть такие вопросы, огромная просьба не банить,..

хочу заспавнить нового НПС на кордоне под мостом, кординаты я снял, и в скрипте их отметил, но он всёравно спавнится в лагере новичков...

Вот моя функция спавна непися......

function esc_unik_lost ()
alife():create("esc_unik_lost",vector():set(-47.79,-8.51,-62.10),35362,47)
end

и ешо, просьба пояснить....

1. как же всётаки его поставить под мост?

2. как можно узнать level_vertex и game_vertex...?

3. есть ли огранечения на колличество заспавненных НПС на отдельный участок карты -на пример: можно ли в подвале на кордоне заспавнить рядом пятерых неписей?

4. Кто может помочь мне разобраться в логике НПС... т.к по урокам настройки логики, которые есть на форуме я ничего не понял... :mellow:

 

Сталкер в душе - сталкер по жизни!

Поделиться этим сообщением


Ссылка на сообщение

при распаковке all.sapwn возникла проблема...

после запуска батника, ACDC начинает ругаться, говорит что-

physic_destroyable_object
physic_destroyable_object
physic_destroyable_object
.........................
physic_destroyable_object
physic_destroyable_object
physic_destroyable_object
physic_destroyable_object
wpn_ak74_m1
update data left [12] in kat_wpn_ak74_m1 at D:\acdc\acdc.pl line
2319.

D:\acdc>pause
Для продолжения нажмите любую клавишу . . .

 

Perl у меня имеется....

ACDC скачал с Wiki

 

-это написано в bat, который запускает сам acdc

 

acdc.pl -d all.spawn 
pause

 

Вопрос: в чём проблема, и как её исправить?

и что значит строка

update data left [12] in kat_wpn_ak74_m1 at D:\acdc\acdc.pl line
2319.

 

 

Проблема: Втайнике ничего не спавнится....

 

Делал по этой статье

Вопрос: вчём проблема?

Изменено пользователем temakonkin

Сталкер в душе - сталкер по жизни!

Поделиться этим сообщением


Ссылка на сообщение

Начинаю нову игру, идёт загрузка <<синхронизация>> после получаю вылет...

 

-Вот лог вылета

Expression    : no_assert
Function      : CXML_IdToIndex<class CInfoPortion>::GetById
File          : e:\stalker\patch_1_0004\xr_3da\xrgame\xml_str_id_loader.h
Line          : 112
Description   : item not found, id
Arguments     : ds_rokfor_start

 

1. -В каком файле искать ошибку?

2. -помогите разобраться, что значит

Description   : item not found, id
Arguments     : ds_rokfor_start

И

Line          : 167
Description   : Spawn doesn't correspond to the graph : REBUILD SPAWN!

Вопрос из категории "ковыряемся в файлах" и достоин иной соответствующей темы. --/ Artos

Изменено пользователем Artos

Сталкер в душе - сталкер по жизни!

Поделиться этим сообщением


Ссылка на сообщение

возможно ли организовать запись строки в переменную из окна редактирования текста в игре....прошу привести примеры!)))

 

 

второй вопрос....возможноли в игре отображать интернет страницы? На пример в ПДА...

 

 

Всем кто ответит заранее спасибо!

Сталкер в душе - сталкер по жизни!

Поделиться этим сообщением


Ссылка на сообщение

Artos

 

Просто возникла идея сделать "Сталкер браузер"..... За помошь с записью в переменную спасибо)))) Окно редактирование текста для ссылки ясделал, но окно для открытия интернет страниц так и не нашёл......

Сталкер в душе - сталкер по жизни!

Поделиться этим сообщением


Ссылка на сообщение

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

получилось вот это

---------spawn mobs--------------------------------------------
---------РАНДОМныЙ ВПАВН МУТАНТОВ НА УРОВНЯХ-------------------
---------VER 1.0.3---------------------------------
local level_vertexes={
     marsh=528961
}

local game_vertexes={
    marsh={3337,3581}
}

local mutants = {
"zombie_ghost_hell",
"zombie_normal_hell",
"zombie_immortal_hell",
"bloodsucker_weak_hell",
"tushkano_normal_hell",
"snork_weak_hell",
"burer_weak_hell",
"cat_weak_hell",
"chimera_weak_hell",
"gigant_strong_hell"
}

function init()
local count = math.random(5,20) 
local section = mutants[math.random(table.getn(mutants))] 
local lv = math.random(level_vertexes[level.name()]["lvid"])
local gv = game_vertexes[level.name()]["gvid"]
local lv_1 = math.random(level_vertexes[level.name()]["lvid"])
local gv_e = game_vertexes[level.name()]["gvid"]
local lv_e = math.random(level_vertexes[level.name()]["lvid"])

      alife():create(mutants,vector():set(lv,lv_1,gv),lv_e,gv_e)
end

это вот пока коряво написанное чудо вылетает с таким логом

Клиент: Синхронизация...

* phase time: 40 ms

* phase cmem: 323655 K

* [win32]: free[925240 K], reserved[70832 K], committed[1101016 K]

* [ D3D ]: textures[322140 K]

* [x-ray]: crt heap[323655 K], process heap[7972 K], game lua[26940 K], engine lua[265 K], render[0 K]

* [x-ray]: economy: strings[4403 K], smem[28222 K]

! Unknown command: file____:_system.ltx

* Log file has been saved successfully!

! Unknown command: section_:_space_restrictor

* Log file has been saved successfully!

! Unknown command: lines___:_4

* Log file has been saved successfully!

! Unknown command: line_0_:_$spawn_=_"ai\space_restrictor"

* Log file has been saved successfully!

! Unknown command: line_1_:_GroupControlSection_=_spawn_group_restrictor

* Log file has been saved successfully!

! Unknown command: line_2_:_class_=_SPC_RS_S

* Log file has been saved successfully!

! Unknown command: line_3_:_script_binding_=_bind_restrictor.bind

* Log file has been saved successfully!

! Unknown command: actor_net_spawn

* Log file has been saved successfully!

! Unknown command: LEVEL_POSTPROCESS:_level:_[marsh],_postprocess:_[none]

* Log file has been saved successfully!

! Unknown command: WEATHER:_'boloto'_now_'true'

* Log file has been saved successfully!

 

FATAL ERROR

 

[error]Expression : fatal error

[error]Function : CScriptEngine::lua_error

[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp

[error]Line : 73

[error]Description : <no expression>

[error]Arguments : LUA error: ...н Зоны\gamedata\scripts\mob_random_spawn_list.script:42: attempt to index field '?' (a number value)

Прошу указать на мои ошибки и помочь мне организовать "рандомный спавн мутантов на незаселённых уровнях".

Ребят, не казните меня сильно за плагиат...."я ещё не волшебник, а только учусь"...)))))

Тем кто ответит заранее благодарен!!!

Изменено пользователем ColR_iT

Сталкер в душе - сталкер по жизни!

Поделиться этим сообщением


Ссылка на сообщение

ColR_iT

так что недостача.

так и есть я привел не весь код..... Весь он выглядит так(но думаю это ничего не меняет)...

---------spawn mobs--------------------------------------------
---------РАНДОМныЙ ВПАВН МУТАНТОВ НА УРОВНЯХ-------------------
---------VER 1.0.3---------------------------------
local level_vertexes={
     marsh=528961
}

local game_vertexes={
    marsh={3337,3581}
}

local mutants = {
"zombie_ghost_hell",
"zombie_normal_hell",
"zombie_immortal_hell",
"bloodsucker_weak_hell",
"tushkano_normal_hell",
"snork_weak_hell",
"burer_weak_hell",
"cat_weak_hell",
"chimera_weak_hell",
"gigant_strong_hell"
}


function init_old()
local count = math.random(5,20) --выбираем кол-во заспавненых мобов
local section = mutants[math.random(table.getn(mutants))] -- выбираем секцию моба
local lv = math.random(level_vertexes[level.name()]["lvid"]) --выбираем левел вертекс
local gv = level_vertexes[level.name()]["gvid"] --выбираем гэйм вертекс
for ind = 1, count do
alife():create(section, level.vertex_position(lv), lv, gv)--\\level.vertex_position(lv) - позиция левел вертекса
end
end

alife():create("marsh_bandit_novice_b_1",vector():set(521.22204589844,1.3338094949722,9.2732839584351),494720,3548)


function init()
local count = math.random(5,20) --выбираем кол-во заспавненых мобов
local section = mutants[math.random(table.getn(mutants))] -- выбираем секцию моба
local lv = math.random(level_vertexes[level.name()]["lvid"]) --выбираем левел вертекс
local gv = game_vertexes[level.name()]["gvid"] --выбираем гэйм вертекс
local lv_1 = math.random(level_vertexes[level.name()]["lvid"])
local gv_e = game_vertexes[level.name()]["gvid"]
local lv_e = math.random(level_vertexes[level.name()]["lvid"])

      alife():create(mutants,vector():set(lv,lv_1,gv),lv_e,gv_e)
end

 

вот этой темой я руководствовался http://www.stalkerin.gameru.net/wiki/index...ения_о_скриптах

 

На счет того, что я передаю..... в переменной содержатся L и G вертекс уровня, после чего вычисляется произольное его значение-которое передаётся в фун-ю спавна,

local lv_e = math.random(level_vertexes[level.name()]["lvid"])
................
alife():create(mutants,vector():set(lv,lv_1,gv),lv_e,gv_e)

 

также в случайном порядке вычисляется секция спавна

 

local mutants = {
"zombie_ghost_hell",
"zombie_normal_hell",
"zombie_immortal_hell",
"bloodsucker_weak_hell",
"tushkano_normal_hell",
"snork_weak_hell",
"burer_weak_hell",
"cat_weak_hell",
"chimera_weak_hell",
"gigant_strong_hell"
}
....................................
local section = mutants[math.random(table.getn(mutants))]

вот собственно цели идеи...........

Изменено пользователем ColR_iT

Сталкер в душе - сталкер по жизни!

Поделиться этим сообщением


Ссылка на сообщение

такая вот проблема возникла...когда попытался вывести окно после использования предмета. Делал на моде Lost World Trops of Doom 2.4

в bind_stalker создаю два колбека

self.object:set_callback(callback.host, nil)

и

self.object:set_callback(callback.host, self.use_mps_big, self)

 

потом пишу функцию

function actor_binder:on_item_drop (obj)
    level_tasks.proceed(self.object)
    terrorizm.li(obj)        
    lwc_inventory.ItemDrop(obj)
end
-----МОЯ_ФУНКЦИЯ-----
function actor_binder:use_mps_big(obj)
  main_map_use.main_map_use_2(obj)
end

 

в main_map_use вот это

function main_map_use_2(obj)
   if obj ~= nil then
      if obj:section() == "map_big" then
       local hud = map_big_ui(get_hud())
         level.start_stop_menu(hud, true)
    end
    end
end
class "map_big_ui" (CUIScriptWnd)
function map_big_ui:__init(owner) super()
    self.owner = owner
    self:InitControls()
    self:InitCallBacks()
end
function map_big_ui:InitControls()
    self:Init(50,50,550,450)
    local xml = CScriptXmlInit()
    xml:ParseFile("ui_map_self.xml")
    xml:InitStatic("background", self)
    self:Register(xml:Init3tButton("caption", self),"caption")
    self:Register(xml:Init3tButton("btn_quit", self),"btn_quit") 
end
functionmap_big_ui:InitCallBacks()
    self:AddCallback("btn_quit", ui_events.BUTTON_CLICKED, self.on_quit, self)
end
functionmap_big_ui:OnKeyboard(dik, keyboard_action)
    CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
    if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
    end
    return true
end
function map_big_ui:check_game() -- проверка запущена ли игра
    local check = false
    if level.present() and (db.actor ~= nil) and db.actor:alive() then
        check = true
    end
    return check
end
function map_big_ui:on_quit()
    self:GetHolder():start_stop_menu(self, true)
    alife():create("sleep_bag", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
end

 

после запуска игры, начинаю новую игру и на "клиент синхронизация" получаю безлоговый вылет....пробовал вешать функцию на другой колбек-всё работает, а вот именно на моём нет.

подскажите что я сделал не так....

заранее благодарен!

 

Используй тэг спойлера для портянок кодов. --/Artos

Изменено пользователем temakonkin

Сталкер в душе - сталкер по жизни!

Поделиться этим сообщением


Ссылка на сообщение

Artos благодарю за быстрый ответ!!!

 

я только учусь, так что спасибо на счёт того что имена колбеков зарезервированы(так я понимаю?) я не знал! Если не знаешь - читай статьи и ФАКи! --/Artos

полетел дальше эксперементировать...

 

[x]

Изменено пользователем Artos

Сталкер в душе - сталкер по жизни!

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...