Скрипт

252
0
Вспомнил такую вещь как скрипт, услышал я это от вашего форумчанина. 
хотелось бы подробно узнать что это.
P.s
Спасибо
 
1,137
5
3
Это такое электроустройство, которые вырабатывает свет, чёрный.
 
252
0
wilah написал(а):
Это такое электроустройство, которые вырабатывает свет, чёрный.
О..Привет слушай, не помнишь кто это написал? :)

wilah написал(а):
"Ага, такие моды делают в самописных скриптах, коих много.(я, лично, простые предметы скриптом добавляю)"
 
1,137
5
3
Что такое скрипт, ты можешь в интернете глянуть. А в джаве есть javax.script. Правда проблема после обфускации, но я придумал маленький хак. А можно конфигом. Смотри в интернете, которого у меня нет(только 3г)
 
252
0
Я в деревне живу у нас тут 2G и мы тут кое как сидим и переписываемся).
А что за маленький хак? Приокроешь тайные знания?)
 
471
5
IvanTur написал(а):
Я в деревне живу у нас тут 2G и мы тут кое как сидим и переписываемся).
А что за маленький хак? Приокроешь тайные знания?)
 Зачем тебе этот хак, если ты скриптами не умеешь пользоваться ? :wassat:
 
252
0
Вопрос не в том как им пользоваться а что из него представляет и для чего служит
 
471
5
IvanTur написал(а):
Вопрос не в том как им пользоваться а что из него представляет и для чего служит
Мне просто интересно, что даст тебе эта информация ? Ты всеравно не сможешь ей воспользоваться.
 
1,137
5
3
Посмотри в интернете. Хак таков: создаём простой класс с полем player и переопределяем какие-то методы. Нужно для того, чтобы после обфускации не пришлось вводить player.func_2332();
 
2,955
12
А вот и нет, не маленький хак. Совсем недавно писал логику жаба скриптов в рантайме. Пришлось написать утилиту, которая брала деобфуцированный фордж и генерировала стаб-классы с пустыми телами методов и нулловыми значениями полей. Почему? Да потому что для компиляции скриптов естественно нужны классы майна, а распространять его as is запрещено. Затем пришлось тащить с собой javac и маппинги + жарку со стабсами. Джавак был нужен для большинства юзверей без установленного JDK. Потом скрипты прогонялись через джавак с юзом библиотек майна и стабсов вместо самого майна. Затем они разбирались АСМом на байт-код и маппились с помощью тех маппингов под обфуцированный майн и получившийся байт-код напрямую дефайнился своим класс лоадером в рантайме, а потом в скриптах искался main() и они вызывались. На это дело мне потребовалась неделя, причём я успел перебрать кучу языков-паразитов JVM.
[merge_posts_bbcode]Added: 08.04.2016 04:09:02[/merge_posts_bbcode]

А ещё тот javac не поддерживает аннотации.
 
1,137
5
3
Глупо просто тратить на такое неделю. Я потратил минут 20, ибо все методы мне не нужны(2-3, лол). В стандартных скриптах можно сделать через интерфейс.(передаём интерфейс в конструктор предмета, переопределяем методы, внутри которых вызываем методы из интерфейса. Загружать так как-то IScriptItem scriptItem = inv.getInterface(obj(см. ниже), IScriptItem .class). А вообще, легче перебрать скрипт и заменить там все значения с помощью маппингов.
Код:
var obj = new Object();//этот самый объект
obj.onItemRightClick= function(args) { println(args); }
/**************************************/
Из джавы: Object obj = engine.get("obj");
 
2,955
12
Алло. Во-первых я делал скрипты на Жабе. Во-вторых я посмотрю, как ты там просто "пробежишься по сурсам и заменишь маппинги" без компиляции со стабами, удачи. Твоя идея зафейлится уже на коде
Код:
new Block(Material.stone).setBlockTextureName("123").setBlockUnbreakable();
просто потому, что возвращаемый методами тип тебе не известен и применить маппинги не получится.
[merge_posts_bbcode]Added: 10.04.2016 14:54:20[/merge_posts_bbcode]

А с JS будет еще хуже, там возвращаемый методами тип вообще никак не узнать без выполнения.
 
1,137
5
3
А зачем тогда в методах делать? Это надо делать там, где возможно(названия методов в основном). И, кстати, ты даже не скрипты написал, т.к. они компилируются.
[merge_posts_bbcode]Добавлено: 10.04.2016 12:15:05[/merge_posts_bbcode]

Хотя бы:var obj = new Object();//этот самый объект
obj.func_228= function(args) { println(args); }
[merge_posts_bbcode]Добавлено: 10.04.2016 12:41:56[/merge_posts_bbcode]

Либо же "адаптер" в виде интерфейса.
 
2,955
12
Я еще раз тебе повторяю, нормальную обфускацию нежабы по маппингам ты сделать не сможешь, как и нормальный скриптинг. А в моем случае понятие скрипт означает, что скрипты юзверь пишет сам и они подгружаются динамически.
 
1,137
5
3
Конечно, ведь аргументы там без типов(просто имена). Но вызов функций..  Ведь мы пишем так, к примеру
function onUpdate(player, world){//func_229
player.kill()//func_228
}
А вообще, так можно все что угодно вставить, например, подсоединить программу к class path
 
Сверху