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

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


Svoboда

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

Stiingray, и что же ты исправил, если ошибка, на которую тебе указали так и осталась?

Данной условие:

if ren == renderer_r2 then
никогда не выполниться, т.к. ты пытаешь сравнить строку в переменной ren со значением nil, которое присвоено переменной renderer_r2. Поэтому сообщение и не выводится.

 

Теперь о менее приятном:

Во-первых, цитировать посты полностью не нужно, достаточно просто указать ник.

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

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


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

Gun12, можешь не утруждать себя в пояснениях. Человек просто-напросто не понимает простой истины, что функция get_string для объекта консоли возвращает строку, т.е. здесь:

local ren = con:get_string("renderer")
переменная ren будет строкой. Если он играет на втором ренедере, то действительно, строка эта будет выглядеть как "renderer_r2".

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


Stiingray, на данной странице тебе дан ответ решения твоей проблемы, дальнейшие твои посты на эту тему, с непониманием происходящего, будут расценены как флуд.

P.S. Учи матчасть!

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

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


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

АuReN, я кончено извиняюсь, но разве get_holder_class возвращает объект машины? Разве эта функция не возвращает объект родительского класса? Да и вообще, каким образом машина может принадлежать ГГ? Ты что, её в рюкзак засунул? :)

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


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

mumie, не очень ясно что же такое "динамическая позиция", но всё же...

В данном случае, функции получения гейм- и левел- вертекса не будут работать, к слову функция определения позиции тоже, т.к. применимы они к онлайновому объекту, а у тебя obj - серверный, именно серверный объект возвращает функция create. Воспользуйся свойствами объекта position, m_game_vertex_id, m_level_vertex_id для получения координат, гейм- и левел-вертексов соответственно.
 

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


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

La'Rento, функция get_time_days возвращает текущий день месяца, т.е. число и если в момент проверки у тебя в игре не первое число месяца, то первая проверка вернёт false.

А вторая проверка у тебя у тебя странноватая. Остаток от деления числа на единицу всегда будет равен нулю, поэтому твоё сравнение не имеет практического смысла. В конечном итоге, у тебя данная функция будет возвращать false, только в первое число, а в остальные будет возвращать true.

 

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


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

La'Rento, самый простой способ - это запомнить число первых суток и сравнивать его с числом на следующих и так далее. Только в таком случае тебе нужно сохранять это число. Либо производить смену работ по чётным/нечётным дням, так сохранять ничего не нужно будет.

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


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

La'Rento, в первый работы сохраняешь число месяца и периодически сравниваешь его со значением get_time_days, на следующий день оно естественно изменится, тогда и поменяешь работу. При этом теперь сохранишь уже это число и так далее.

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


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

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

Секция hit работает ровно также, только из логики.

on_info = {+info -info =func !func ~number} %+info -info =func% - эффекты, которые вызываются в случае, если NPC нанесён хит.

Это означает, что можно установит параметр, при помощи которого можно произвести какое-то действие (забрать\выдать инфопорцию, либо вызвать функцию), т.е. эффекты, они заключены в знаки процента, при этом можно задать дополнительные условия заключённые в фигурные скобки. Обо всём этом можно почитать на Wiki (ссылка у тебя есть).

В on_info по сути ничего не присваивается. Файлы ltx по своей структуре идентичны ini файлам, таким образом on_info это поле, а значение этому полю будет то, что ты пропишешь. В последствии вся логика будет распарсена скриптами, основные скрипты находятся в xr_logic.script.

P.S.Всё же ты немного промазал с темой, тебе прямая дорого в"ковырялку".

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

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


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

Как-то так:

 

function Parsing (section, field)
    local ini = system_ini()
    local strValue = ini:section_exist(section) and ini:line_exist(section, field) and ini:r_string(section, field)
    local needString = ""
    if not strValue then return end
    local _table = parse_names(strValue)
    for i = 1, #_table, 2 do
        needString = needString.._table[i].."(".._table[i+1].."),"
    end
    return string.sub(needString,1,#needString-1)
end
Немного небрежно, но, так сказать, на скорую руку.

В качестве section передавать секцию из .ltx файла, в которой находится нужное тебе поле; field - собственно само поле (в твоём случае это items.

 

 

Или ещё вот такой вариант, имхо куда лучше:

local s = "medkit, 25, antirad, 3,bread, kolbasa"

-- удаляем пробельные символы
local t = s:gsub("%s","")

-- заменяем найденные комбинации вида ",число" на "(число)"
t = t:gsub(",(%d+)","(%1)")

-- если количество не указано, т.е. перед запятой не скобка
-- меняем комбинацию "символ," на "символ(1),"
t = t:gsub("([^%)]),","%1(1),")

-- если количество не указано для последней секции, то просто добавим к строке"(1)"
if not t:find("%)$") then t = t.."(1)" end

print(t) --> medkit(25),antirad(3),bread(1),kolbasa(1) 

 

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

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


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

@Dennis_Chikin, gfind находит два вхождения:

Первое:

50|{=best_pistol}psy_armed,psy_pain@wounded_psy
где:

t_pos = 3

s_pos = 36

dist = 50

state = {=best_pistol}psy_armed,psy_pain

sound = wounded_psy

 

И второе:

20|=best_pistol}psy_shoot,psy_pain@{=best_pistol}wounded_psy_shoot,wounded_psy
где:

t_pos = 3

s_pos = 35

dist = 20

state = {=best_pistol}psy_shoot,psy_pain

sound = {=best_pistol}wounded_psy_shoot,wounded_psy

 

Или я не правильно вопрос понял?

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

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


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

А по сути нет никаких скриптов для работы с xml, окромя сласса CScriptXmlInit, который достаточно узконаправленный.

Где-то на "просторах" есть парсер .xml файлов, кто автор забыл. Я с его помощью получал любое значение из указанных тегов .xml файлов.

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


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

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