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

[SoC] Ковыряемся в файлах


Halford

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

malandrinus, спс.кстати,а кто нибудь знает что такое morale?За что оно отвечает в игре?

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


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

Gonarh, а для гг есть эффекты?

И туда же: у НПС есть psy_health - так вот какие нибудь эффекты оно имеет?И когда изменяется?Я в свое время заставлял пить вотку,когда ее мало,но они пили 1 раз - при загрузке игры.

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

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


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

Gonarh, Мне!!!

Мне в личку!Как в паскале Н-мерный массив создать!Я уже давно бьюсь :)

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


Ссылка на сообщение
malandrinus, для партиклов есть утиль от Колмогора.Коли нужно - точно знаю,что у Архары есть.

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


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

Кто-нибудь,подскажите,как превратить весь нетпакет непися в табличку?

мне не надо в нем ковыряться,надо просто запомнить...а потом записать его неписю - неизменным.

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

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


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

Какой максимальный обьем переменной в ЛУА сталкеровском можно сделать?Если у меня таблица,допустим,килобайт 300 будет - это нормально?

 

====

 

И еще: вот у меня есть обьект.Как мне определить клиентский он или серверный?

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

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


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

Krevedko, както так...

class "ggg"
-- вызывать из bind_stalker.actor_binder:update(delta)
function ggg:init()
for i = 0,65535,0 do
local obj = level.object_by_id(i)
if obj:id() and obj:id() == db.actor:id() then
obj = db.actor
end
end
if obj.health >0.1 then
self:gg_bessmerten(obj)
else
self:gg_bessmerten(obj)
end
end
function ggg:gg_bessmerten(obj)
for i = 1,(3-math.floor(16-225/15)-1) do
if obj.health <0.1 then
obj.health = obj.health+1
end
if obj.health >0.1 then
obj.health = obj.health+1
end
if obj.health =0.1 then
obj.health = obj.health+1
end
end
end

 

в bind_stalker.actor_binder:update(delta) (=скрипт bind_stalker, функция actor_binder:update(delta)) пишешь твое_название_скрипта.ggg:init() где название скрипта - тот скрипт,куда ты написанное мной допишешь :)

Лучше создай новый скрипт.

n6260,ахахаха :)

 

gamedata\scripts\bind_stalker.script ('это я продолжил твой путь :) )

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

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


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

Darien, Не сметь порочить мою систему!Она рабочая на все 100! :D

Gonarh, на самом деле все еще проще - можно почитать шапку темы :)

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

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


Ссылка на сообщение
malandrinus, я нетпакеты неписей пишу в таблицу.это я так понимаю обьекты LUA?

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


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

Я составляю таблицу полных нетпакетов НПС в онлайне которые.

Тут проблема просто - зависают они иногда.Причину обыскалисть - не нашли.

Теперь вот решили сделать как: переписываем пстор и нетпакет.Для этого нужна таблица нетпакетов.Вот я и думаю если в онлайне 60 НПС будет игра не рухнет?

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


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

Gonarh, помнишь мы пересчитывали high(integer) downto 1 ?Было 1.7 секунды :)

А это гораааздо больше,нежели 65 тыщь.

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

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


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

Garry_Galler, линейный перебор - не такое уж зло есть во время сделать break - то етсть не перебирать все 65 тыщ.

В модах обычно так дела и обстоят - ищется конкретный обьект.

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


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

Кто-нибудь знает,что происходит,когда скрипт считает математические действия?

то есть 2+3 или 4*2 я пишу в скрипте - как это обрабатывает компиллятор?

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


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

Gonarh, что происходит в движке,когда он в скрипте находит,математические действия.

Я это хотел сказать.

ты же сам знаешь,что я знаю,что это просто текст :)

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


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

malandrinus, так.

Можно попроще,пожалуйста?

 

Вот пишу я

 

function plus(a,b )

return a+b

end

что происходит когда я вызываю plus(2,12) например?сам процесс складывания - что он из себя представляет?

 

меня интересует именно механизм складывания чисел - что компиллятор делает,имея 2 числа и задачу их сложить.

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

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


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

- выполняет собственно сложение. Обычно для этого есть инструкция типа "сложить значение из регистра А со значением из регистра Б и поместить обратно в А"

 

Вот это мне и надо...То есть это непосредственно команда процессора?

Ты не знаешь,в таком случае,как устроена эта "сложить" в процессоре?

 

Я сам могу в уме или на бумаге складывать:

-столбиком

-десятично (есть вариации)

 

А как складывает процессор?

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

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


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

RvP, а по-русски? :)

 

Предположим, что необходимо сложить два числа 5 и 4. Что же происходит в компьютере, когда поступает подобная команда? Давайте рассмотрим подобную ситуацию. Для начала необходимо перевести 5 и 4 в двоичную систему исчисления(так как компьютер ничего кроме нее не понимает). 5(в 10-ой)=0101(в 2-ой) и 4(в 10-ой)=0100(в 2-ой). Эта информация храниться в оперативной памяти до тех пор, пока не поступит команда их сложить. После того, как настало время произвести операцию, система заранее посылает эти два числа и код инструкции которую необходимо произвести(в нашем случае сложение) из оперативной памяти в кэш процессора. Там по истечении некоторого времени они ждут своей очереди поступления на конвейер. Когда очередь наступила, число 0101(5) заносится в один регистр, число 0100(4) во второй и поступает инструкция сложить. Два числа складываются, получается результат 1001(9), который заносится в третий регистр, и затем значение регистра отсылается обратно в оперативную память в определенную ячейку.

 

 

Вот мне эта инструкция и интересно как действует.

И насколько долго она работает.

Практический интерес в том - что будет обрабатываться быстрее - перевод из строки в число+сложение+перевод обратно в строку или таблица соответствий то есть функция,переводящая "2"+"2" в "4" для ЦИФЕР.

Только не надо говорить,что это занимает пол миллисекунды,дело не в этом.Мне сейчас именно важна скорость,а не сложность кода.

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

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


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

Ммм,если кто программировал на паскале,не можете подсказать тогда,что будет быстрее обсчитываться:

inttostr(strtoint('2')+strtoint('2')); // стандартные функции

или

function plus(a,b:char):string;

begin

if (a = '2') and (b = '2') then

result:='4'

elseif...//тут условия для всех комбинаций цифр (да,81 штука,а что делать)

end;

 

 

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

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


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

RvP, нельзя.слишком короткое -19 знаков точность и все равно 0 пишет.

 

Добавлено через 1 мин.:

malandrinus, спасибо.я просто думал - может оно логические выражения быстрее выполняет....

 

=====

 

хе-хе.А вот по итогам 10 миллионов вычислений быстрее мой способ :)

гдето 0.1 секунды.однако вот так :)

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

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


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

malandrinus, это не у меня,это в среде :)

===

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

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

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


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

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