люди, на Lua кто-нить кодил?
Вроде всё там получаеться, но вот многопоточность ну никак не освою...
постоянно в ошибки валюсь*(
Где применяю - пытаюсь дописать часть скриптов для Stalker.
Вроде все функции родные из lua работают, но почему-то валяеться как неваляшка, то в одну сторону(одна ошибка ), то в другую...
[Ответ]
Судя по содержимому, в которое как обычно никто не заглядывал, это самописная вивтовская программа на джаве. По ней достаточно пройти обычным декомпилятором, я полагаю. Раз уж соответствующая тема закрыта, подробней расписывать не буду.
Сообщение от Dart_Sergius:
люди, на Lua кто-нить кодил?
Вроде всё там получаеться, но вот многопоточность ну никак не освою...
постоянно в ошибки валюсь*(
Где применяю - пытаюсь дописать часть скриптов для Stalker.
Вроде все функции родные из lua работают, но почему-то валяеться как неваляшка, то в одну сторону(одна ошибка ), то в другую...
А как это вообще выглядит? Я думал, из скриптов ничего не распараллелишь, но я совершенно не в теме.
[Ответ]
Dart_Sergius 16:20 21.12.2011
http://www.lua.ru/doc/5.2.html http://www.lua.ru/doc/2.11.html
паралелиться должно, но улетаю в ошибку в yeld. Причём в движке она не вызывается. В скриптах написал всё верно. Или капать движок надо? Просто под отладчиком ошибки нету, но ничего и не делается, а без отладчика вылетаю с ошибкой.
[Ответ]
Hopkroft 20:37 21.12.2011
Сообщение от silly:
Судя по содержимому, в которое как обычно никто не заглядывал, это самописная вивтовская программа на джаве.
Эту прогу писал мой знакомый программер. И вместо того что-бы писать всякие хаки, проще выучить предмет. Для некоторых менее затратно будет)
[Ответ]
silly 21:44 21.12.2011
Сообщение от Hopkroft: Эту прогу писал мой знакомый программер. И вместо того что-бы писать всякие хаки, проще выучить предмет. Для некоторых менее затратно будет)
Ну, да, проще выучить. Хотя непонятно, чего вы тогда ссылками на ксакеп.ру кидаетесь.
Сообщение от Dart_Sergius: http://www.lua.ru/doc/5.2.html http://www.lua.ru/doc/2.11.html
паралелиться должно, но улетаю в ошибку в yeld. Причём в движке она не вызывается. В скриптах написал всё верно. Или капать движок надо? Просто под отладчиком ошибки нету, но ничего и не делается, а без отладчика вылетаю с ошибкой.
У вас документация с ошибкой вылетает или что? Вы про скриптик подробнее расскажите.
[Ответ]
Hopkroft 22:38 21.12.2011
Сообщение от silly:
Хотя непонятно, чего вы тогда ссылками на ксакеп.ру кидаетесь.
А что я должен исходный код выкинуть? Я конечно могу помочь, но всему есть предел[Ответ]
silly 23:03 21.12.2011
Ладно, раз уж вы знакомы с автором, у меня вопрос: зачем именно там упоминается brainfuck?
[Ответ]
Spectator 23:06 21.12.2011
Сообщение от silly:
Ладно, раз уж вы знакомы с автором, у меня вопрос: зачем именно там упоминается brainfuck?
Сообщение от silly:
Со скриншотом всяко понятней. Обещаю больше на эту тему ничего не писать. (Если только автор программы не захочет высказаться.)
Вообщем, я спросил у него:
1. По-поводу БрайФака - элементарно! Подумай и ответь на вопрос что по сути делает эта программа Капитан Очевидность негодует!
2. По-поводу взлома, поржал, и добавил, что если не могут формат вскрыть, пусть лучше учат предметы, по которым ведётся тестирование.
[Ответ]
Dart_Sergius 17:58 26.12.2011
насчёт скрипта вот он, вырезал ненужное
local bredd=coroutine.create (
function () Msg("должны вывести сообщение, но вылетаемс")
pcall(load_ai.startdc)
...
coroutine.yield(-1)
return 0
end
)
--поток создаёться, но попытка его стартануть приводит к падению. там где возможны
--ошибки использован pcall
coroutine.resume(bredd)
get_console():execute("main_menu off")
[Ответ]
silly 21:47 26.12.2011
Вы уверены, что падение идет перед вызовом «Msg("должны вывести сообщение, но вылетаемс")»? Кстати, мне не совсем понятно, падает именно движок игры? Куда вообще должно выводится сообщение?
[Ответ]
Spectator 23:04 26.12.2011
Сообщение от silly:
Вы уверены, что падение идет перед вызовом «Msg("должны вывести сообщение, но вылетаемс")»? Кстати, мне не совсем понятно, падает именно движок игры? Куда вообще должно выводится сообщение?
вот терзают меня тоже смутные сомнения что если pcall убрать, вылета не будет)
[Ответ]
silly 23:16 26.12.2011
Насколько я вижу, многоточие в тексте скрипта не закоментировано, значит текст вырезан прямо перед вставкой сообщения, так что именно в данном виде скрипт скорее всего не запускался. Ставлю на падение где-то в вырезанном коде.
[Ответ]
Dart_Sergius 23:49 26.12.2011
функция Msg должна выводить в консоль сообщение, но этого сообщения там не появляеться*(
попробую без pcall а тупо хотя бы повыводить сообщения из coroutine
просто времени ща немного этим заниматься, как будут продвижения отпишусь=)
[Ответ]
silly 00:00 27.12.2011
В какую консоль? Консоль игры или стандартный поток вывода? Я же не просто так спрашиваю.
[Ответ]
Dart_Sergius 08:02 27.12.2011
точнее в лог. Просто консоль и лог там визуально соеденены.
то что пишу в логе, видно и в консоли.
[Ответ]
The_God 12:53 03.01.2012
с последним новым годом !
Сообщение от Spectator:
а попытка привнести в раздел порядок
всё правильно делаешь, нет новых постов - нет флуда )
Dart_Sergius, этоже вроди как не потоки, это какбы выполнение скрипта не сразу всего а какбы по шагам, это немного другая идеология, вобщем это не потоки http://ru.wikipedia.org/wiki/Сопрограмма
и есть ли в движке поддержка этого ? там есть другие рабочие скрипты которые это юзают ? если это не запрограмлено в движке то не взлетит
Сообщение от Dart_Sergius:
паралелиться должно
нед там потоков, в луа хелпе чет муть какаято про сопрограммы
[Ответ]
silly 15:09 03.01.2012
Источник путаницы как раз документация по lua и сама среда исполнения:
ах да, и правда с новым годом=) насчёт последнего сомневаюсь, т.к. армагеддон перенесли...
кароче нашёл в какой функции у меня валиться(даже если pcall убрать)
StkId luaD_tryfuncTM (lua_State *L, StkId func) {
const TValue *tm = luaT_gettmbyobj(L, func, TM_CALL);
StkId p;
ptrdiff_t funcr = savestack(L, func);
if (!ttisfunction(tm))
luaG_typeerror(L, func, "call");
/* Open a hole inside the stack at `func' */
for (p = L->top; p > func; p--) setobjs2s(L, p, p-1);
incr_top(L);
func = restorestack(L, funcr); /* previous call may change stack */
setobj2s(L, func, tm); /* tag method is the new function to be called */
return func;
}
это кусок из сырья luajit 1.1.4
падёжь начинаеться на ptrdiff_t funcr = savestack(L, func);
точно сказать не могу, сам файл был без отладочной информации, еле нашёл примерное место.
Единственное что меня смущает - в IDA эта функция выглядит не очень похоже. В начале вставленны какие-то условия.
[Ответ]
silly 15:08 04.01.2012
Сообщение от Dart_Sergius:
ах да, и правда с новым годом=) насчёт последнего сомневаюсь, т.к. армагеддон перенесли...
кароче нашёл в какой функции у меня валиться(даже если pcall убрать)
StkId luaD_tryfuncTM (lua_State *L, StkId func) {
const TValue *tm = luaT_gettmbyobj(L, func, TM_CALL);
StkId p;
ptrdiff_t funcr = savestack(L, func);
if (!ttisfunction(tm))
luaG_typeerror(L, func, "call");
/* Open a hole inside the stack at `func' */
for (p = L->top; p > func; p--) setobjs2s(L, p, p-1);
incr_top(L);
func = restorestack(L, funcr); /* previous call may change stack */
setobj2s(L, func, tm); /* tag method is the new function to be called */
return func;
}
это кусок из сырья luajit 1.1.4
падёжь начинаеться на ptrdiff_t funcr = savestack(L, func);
точно сказать не могу, сам файл был без отладочной информации, еле нашёл примерное место.
Единственное что меня смущает - в IDA эта функция выглядит не очень похоже. В начале вставленны какие-то условия.
То есть, то что ты до сих пор не потрудился описать характер ошибок и привести минимальный (в как можно меньшее число строк, да) пример проблемного кода тебя не смущает? Так тебе точно никто не поможет.
[Ответ]
The_God 15:47 04.01.2012
Dart_Sergius, ты внял что это не потоки в смысле многопоточного программирования ?
нужныли тебе эти сопрограммы ?
естьли поддержка в движке игровом их, ты видел в других скриптах которые не падают чтобы юзались сопрограммы ?
[Ответ]
Dart_Sergius 19:00 04.01.2012
всем спасибо за помощь=)
я решил свою проблему без использования сопрограмм, отдельное спасибо The_God, за то что открыл мне глаза на что это не потоки в смысле многопоточного программирования [Ответ]
Оля-ля 12:45 05.01.2012
Помогу с выполнением курсовых, дипломных, контрольных работ по программированию. Качественно, недорого, в короткие сроки. С удовольствием объясню принцип работы программы и все непонятные детали=)
Возможно - с оформлением.
Связь - ЛС, телефон 8-961-184-999-шесть.
[Ответ]
RedName 17:06 09.01.2012
Народ подскажите как грамотно сделать.
Есть яндекс мап. Требудется показать нагруженность улицы как нибудь. Я пошёл путём рисования на улице жирной линии и сменой с зеленого на красный. Но так как художественные навыки у меня еще ниже чем IT, в результате получилось это.
мне стыдно с этим показываться научруку подкиньте идей
[Ответ]