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

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


Svoboда

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

Поставить лог на actor_binder:info_callback(), и посмотреть, что реально когда выдается.

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


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

"вылет при попытке открыть КПК.

Дескать, в строке self.owner:AttachChild(self.stat) onwer = nil"

 

Логично. Куда он возвращаться должен ?

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


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

Мож таки:

 

local t_temp = {}

 

function RI()

local item

for i = 0, db.actor:object_count() - 1 do

item = db.actor:object( i )

if item and alife():object( item:id() ) then table.insert( t_temp, item:section() ) end

end

end

 

function SI()

for a = 1, #t_temp do alife():create( t_temp[a], vector(), 0, 0, 0 ) end

end

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


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

"нужно перебирать от нуля".

 

Упс ! Был невнимателен. Поправил.

По скорости - а кто-нибудь мерил ? В общем случае вызов функции - операция более дорогая, чем любые другие.

 

По патронам: для alife():create() как раз ни в какие конфиги заглядывать не нужно. Создаст сразу полную, как раз в соответствии с конфигом.

Для неполных - да, вытаскивать из пакета, и создавать через create_ammo().

 

 

арты на пояс - по-моему через тот же самый конфиг, что и стволы/костюмы/гранаты/бинокли.

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


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

num то в этом дивном коде откуда берется ? ;)

 

"Насколько быстрее я уже не помню" - ну так вот цифр и нужны. А то urban legends - этого-то полно. И все ссылаются как раз "кто-то где-то писал, что кто-то где-то что-то мерял".

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


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

Поэма есть такая замечательная: "смешались в кучу кони, люди..." ;)

Ладно, все способы перечислили, по 150000му разу, кому надо будет - найдет нужный, а кому "не больно-то и хотелось" - будет "как обычно".

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


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

Я ж писал: попробовать сначала засунуть ящик в офлайн, заспавнить туда что-нибудь, а потом ящик высунуть.

И посмотреть на результат.

 

Второй тест - заспавнить в онлайновый ящик, и посмотреть, что будет после шевеления и загрузки.

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


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

local pk = net_packet()

obj:STATE_Write( pk )

pk:r_seek( 0 )

pk:r_s32() -- money

pk:r_stringZ() -- profile

pk:r_s32() -- infammo

pk:r_stringZ() -- class

pk:r_s32() -- communityid

pk:r_s32() -- rank

pk:r_s32() -- reputation

pk:r_stringZ() -- charname

pk:r_u16() -- gvid

pk:r_float() -- obf32u1

pk:r_s32() -- obs32u2

pk:r_s32() -- lvid

pk:r_s32() -- oflags

pk:r_stringZ() -- custom

pk:r_s32() -- sid

pk:r_s32() -- obs32u3

local vis = pk:r_stringZ()

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


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

Со знаком/без знака - в данном случае, скорее всего, без разницы.

 

Читать, кстати, можно вообще сразу нужную переменную, если знать позицию.

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


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

Для этого непися что-то должно быть в звуковом конфиге. ;) Имеющее отношение к звуковым файлам по соответствующему пути.

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


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

Я как-то слабо представляю, как можно инвентарный объект запихнуть в оффлайн.

А обновление происходит при переключении туда/сюда.

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


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

Хех, ну я вот, например, в соли аккумуляторы в патроны переделал, и пишу им заряд в custom data.

Просто по тому, что самый мальнький пакет из всего, что вообще под рукой.

;)

 

 

Нет, все, сдаюсь. Я не представляю - просто воображения не хватает представить, как ЭТО должно работать:

if job.begin == nil or game.time() - job.begin > job.idle then
    if job.idle_after_death_end == nil or job.idle_after_death_end < game.time() then
        if job.fill_idle ~= nil then
            if job.fill_idle == idle_none then return false
            elseif job.fill_idle ~= idle_once and job.fill_idle < game.time() - job.begin then
		return false
            end
        end
        return true
    end
end

конкретно часть, которая job.fill_idle < game.time() - job.begin

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


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

 

local sim = alife()

local actor -- db.actor

local t_quest = {} -- квестовые предметы

local news_relocate_item -- вывод сообщения о потере/получении предмета

 

function relocate_item_section( who, sect, d, n ) -- todo: составить таблицы, потом перемещать

local r = 0

if d == "in" then

for i = 1, n or 1 do

if who and t_quest[sect] and i == 1 then -- квестовые предметы перемещаем

local item = who:object( sect )

if item then who:transfer_item( item, actor )

else sim:create( sect, vector(), 0, 0, 0 )

end

r = r + 1

else sim:create( sect, vector(), 0, 0, 0 ); r = r + 1

end end

elseif who and d == "out" then

for i = 1, n or 1 do

local item = actor:object( sect )

if item then

actor:transfer_item( item, who )

r = r + 1

end end end

if r ~= 0 then news_relocate_item( actor, d, sect, r ) end

return r

end

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

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


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

А вообще опять становится грустно...

С одной стороны, вроде радоваться надо, что появляются люди, которым еще что-то интересно, а с другой - все сводится к дичайшему примитиву, и опять таки: "вот, я тут наделал - исправьте мне", и "дайте мне, чтобы все было"... 8(

 

То есть, какой-то собственной работы не видно совсем.

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


Ссылка на сообщение
(изменено)

Про здоровье неписей: через нетпакет, смотрим да хоть в моде amk.

А вот если нужно раненого непися - тогда - xr_wounded.script

 

Здоровье и состояние раненности - две совершенно разные вещи.

 

 

По передаче предмета от актора к неписю - как проверялось ?

 

Про скрипт при взятии предмета - тоже ничего не понял. Рекомендую читать http://www.amk-team.ru/forum/index.php?showtopic=7450

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

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


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

Я все-таки не понимаю: имеющиеся скрипты посмотреть - это против религии, или против политических убеждений ?

bind_stalker.script:

 

function actor_binder:on_item_take (obj)

level_tasks.proceed(self.object)

--game_stats.update_take_item (obj, self.object)

end

 

Какая буква в этих строчках непонята ?

 

По ассортименту - аналогично, смотрим trade_manager.script: при входе торговца в онлайн или при апдейте выбирается секция конфига. Все старое удаляется, создается новое.

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


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

Не обязательно. Там есть разные условия.

То есть, можно включить при 100% здоровье, можно, наоборот, не включать никогда, если условие не выполнено.

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


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

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

AMK-Team.ru

×
×
  • Создать...