C Compiler&Interpreter for SA:MP
|
|
adamix | Дата: Понедельник, 23.04.2012, 19:05 | Сообщение # 1 |
Постоялец
Группа:
Продвинутые
Сообщений: 376
Награды: 14
Город: Ульяновск
Репутация: 884
Замечания: 0%
Статус:
| Данный плагин позволяет вам интерпретировать код на языке С в Pawn. http://adamix.ru/CVM_SAMP_v03.zip
С версии 02 поддерживается Linux. Инструкцию по установке смотрите в ридми. С версии 03 добавлена функция Unlock в С-API, с помощью которой можно сделать память перезаписываемой. Добавлен пример плагина AnyNick(работает на Win/Lin 0.3d-R2 800p)
Вы можете вызывать конструкции на языке С из Pawn, а затем получать возвращаемое значение. Описание API: Code /* returns current OS: 1 == Windows, 2 == Linux */ native CVMGetOS();
/* Creates compiler and interpreter. By default you should use CVMCreate(1, "samp-server.exe"); */ native CVMCreate(argc, argv[]);
/* Adds new path's for includes. By default theres only one path: <server dir>/include/ */ native CVMAddIncludePath(path[]);
/* Executes file in interpreter. */ native CVMLoadFile(path[]);
/* Executes string in interpreter. Second parameter: if res == 1 - then save returned data to buffer. 0 - do not save. */ native CVMProcess(input[], res);
/* Evaluates string in interpreter. if res == 1 - then save returned data to buffer. 0 - do not save.*/ native CVMEvaluate(input[], res);
/* Declares pre-processor definitions. Example: CVMDeclare("#include <stdio.h>"); */ native CVMDeclare(input[]);
/* Buffer operations. Use them after Processing a string with second param == 1. */ /* Returns int from buffer. */ native CVMGetInt();
/* Returns float from buffer. */ native Float:CVMGetFloat();
/* Returns bool from buffer. */ native CVMGetBool();
/* Copies string from buffer into variable. */ native CVMGetString(out[], len);
/* Returns pointer(may not work in some places, because pointer is long type, but Pawn doesn't support big numbers). */ native CVMGetPointer();
Для подробного примера использования смотрите filterscripts/CVM.pwn.
Для чего может пригодиться: различные мем-хаки сампа, ускорение выполнения трудоемких задач.
С++ НЕ ПОДДЕРЖИВАЕТСЯ!
Тысячи игроков SA-MP, как миллионы мух, конечно же не могут ошибаться. Законы математики, имеющие какое-либо отношение к реальному миру, ненадежны; а надежные математические законы не имеют отношения к реальному миру. © Альберт Эйнштейн.
Сообщение отредактировал adamix - Вторник, 24.04.2012, 10:39 |
|
|
|
Fus1 | Дата: Понедельник, 23.04.2012, 19:19 | Сообщение # 2 |
Группа:
Продвинутые
Сообщений: 2704
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус:
| Не плохо. Даже очень.
|
|
|
|
Alcoholik | Дата: Понедельник, 23.04.2012, 20:27 | Сообщение # 3 |
Мастер джэдай
Группа:
Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус:
| adamix, я тя обожаю Quote char * c = (char*)malloc(sizeof(char)*1024);
if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die(); Мониторинг sa:mp серверов Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги. Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
|
|
|
|
adamix | Дата: Понедельник, 23.04.2012, 20:31 | Сообщение # 4 |
Постоялец
Группа:
Продвинутые
Сообщений: 376
Награды: 14
Город: Ульяновск
Репутация: 884
Замечания: 0%
Статус:
| Quote (RoACh) adamix, я тя обожаю
Дык С++ то нету. Соответственно new char[1024] не работает. А вы как думали?!
Тысячи игроков SA-MP, как миллионы мух, конечно же не могут ошибаться. Законы математики, имеющие какое-либо отношение к реальному миру, ненадежны; а надежные математические законы не имеют отношения к реальному миру. © Альберт Эйнштейн.
|
|
|
|
Alcoholik | Дата: Понедельник, 23.04.2012, 20:33 | Сообщение # 5 |
Мастер джэдай
Группа:
Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус:
| adamix, причём тут с++?) Я на самом деле рад за маллок) Было много моментов, когда я жалел, что нет динамической памяти в PAWN
if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die(); Мониторинг sa:mp серверов Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги. Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
|
|
|
|
Молорище | Дата: Понедельник, 23.04.2012, 20:33 | Сообщение # 6 |
Молор
Группа:
Продвинутые
Сообщений: 427
Награды: 11
Город: Санкт Петербург
Замечания: 0%
Статус:
| [off] adamix, тогда он тя не обожает [/off]
По теме: Так и не понял даже по примеру, для чего это нужно вообще. "Интерпретировать" - What?
Мне нечего делать.
|
|
|
|
Alcoholik | Дата: Понедельник, 23.04.2012, 20:38 | Сообщение # 7 |
Мастер джэдай
Группа:
Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус:
| adamix, кстати что будет, если я сделаю так? Code CVMDeclare("#include <stdio.h>"); CVMProcess("int i;",0); CVMProcess("scanf("%d",&i);",0); Он будет чего-то ждать?)
if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die(); Мониторинг sa:mp серверов Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги. Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
|
|
|
|
adamix | Дата: Понедельник, 23.04.2012, 20:39 | Сообщение # 8 |
Постоялец
Группа:
Продвинутые
Сообщений: 376
Награды: 14
Город: Ульяновск
Репутация: 884
Замечания: 0%
Статус:
| Quote (Fiskar) По теме: Так и не понял даже по примеру, для чего это нужно вообще. "Интерпретировать" - What?
1. Например, для мем-хака сервера. Вот у меня есть плагин AnyNick. Теперь его можно реализовать в виде фильтрскрипта, с помощью этого плагина. Еще с помощью интерпретатора можно считать большие числа, к примеру. Выйдет куда быстрее чем в павне. В конце концов, многие плагины теперь можно реализовать тупо в виде фильтрскрипта.
2. Это значит, что код не компилируется в PE или ELF, а интерпретируется напрямую в памяти. На лету.Добавлено (23.04.2012, 20:39) ---------------------------------------------
Quote (RoACh) Он будет чего-то ждать?) Угу. Ввода циферки в окошке сервера
Тысячи игроков SA-MP, как миллионы мух, конечно же не могут ошибаться. Законы математики, имеющие какое-либо отношение к реальному миру, ненадежны; а надежные математические законы не имеют отношения к реальному миру. © Альберт Эйнштейн.
|
|
|
|
Великс | Дата: Понедельник, 23.04.2012, 20:42 | Сообщение # 9 |
Мастер джэдай
Группа:
Модераторы
Сообщений: 3931
Награды: 287
Город: Мухосранск
Репутация: 8429
Замечания: 0%
Статус:
| Отлично, спасибо большое!
[cut=freestyle] ПРИНЕСЛА СОРОКА В РОТЕ ПРИВОРОТ , СВЯЗАЛАСЬ НА ШЕЕ ЛОЗА И БЫЛ ПОЛНЫЙ ПИ**ЕЦ, ОСЕНЬ С ЗИМОЙ, ЛЕТО С ВЕСНОЙ, ГУСЬ С ЛИСОЙ, ЕБ**ИСЬ ВО ТЬМЕ НОЧНОЙ. УЗЕЛ ЗАВЯЗАЛСЯ, ПЕПЕЛ РАЗМЕТАЛСЯ И ЛИСА ЗАБЕРЕМЕНЕЛА. ВМЕСТЕ ВЕК ВЕКОВАТЬ, ПУТУ НЕ РАЗВЯЗАТЬ. ТРАВА ПЕРЕПЛЕТИСЬ, УЗЕЛ ЗАВОРОЖИСЬ. ЛЕНАРУ ДАЙ УМА И ЛЕНУ НА ВЕЛЕ НЕ ОТРАЗИСЬ,ЕБ*СЬ ЕБ*СЬ ЕБ*СЬ © Хасан [/cut]
|
|
|
|
SLICK | Дата: Понедельник, 23.04.2012, 21:06 | Сообщение # 10 |
Местный
Группа:
I'm V.I.P.
Сообщений: 603
Награды: 9
Город: Unknown
Репутация: 388
Замечания: 0%
Статус:
| А возможно ли например взять графическую библиотеку и что то нарисовать в игре?
My works: [GM] RTDM Advertising system Fuel System Artefacts Search (Динамическая сис-ма артефактов)
|
|
|
|
adamix | Дата: Понедельник, 23.04.2012, 21:06 | Сообщение # 11 |
Постоялец
Группа:
Продвинутые
Сообщений: 376
Награды: 14
Город: Ульяновск
Репутация: 884
Замечания: 0%
Статус:
| Нет, конечно же.
Тысячи игроков SA-MP, как миллионы мух, конечно же не могут ошибаться. Законы математики, имеющие какое-либо отношение к реальному миру, ненадежны; а надежные математические законы не имеют отношения к реальному миру. © Альберт Эйнштейн.
|
|
|
|
Andrejs | Дата: Понедельник, 23.04.2012, 21:40 | Сообщение # 12 |
Группа:
I'm V.I.P.
Сообщений: 1801
Награды: 37
Город: Tallinn
Репутация: 2282
Замечания: 20%
Статус:
| Quote (adamix) различные мем-хаки сампа Калкор же вроде запретил их использование? Или я не прав?)
|
|
|
|
adamix | Дата: Понедельник, 23.04.2012, 21:56 | Сообщение # 13 |
Постоялец
Группа:
Продвинутые
Сообщений: 376
Награды: 14
Город: Ульяновск
Репутация: 884
Замечания: 0%
Статус:
| Quote (Andrejs) Калкор же вроде запретил их использование? Или я не прав?)
А кого интересует мнение этого не совсем хорошего человека?
Тысячи игроков SA-MP, как миллионы мух, конечно же не могут ошибаться. Законы математики, имеющие какое-либо отношение к реальному миру, ненадежны; а надежные математические законы не имеют отношения к реальному миру. © Альберт Эйнштейн.
|
|
|
|
ignat | Дата: Понедельник, 23.04.2012, 22:17 | Сообщение # 14 |
Постоялец
Группа:
I'm V.I.P.
Сообщений: 335
Награды: 10
Город: Москва
Репутация: 438
Замечания: 60%
Статус:
| adamix, огромное тебе спасибо!
|
|
|
|
adamix | Дата: Вторник, 24.04.2012, 09:36 | Сообщение # 15 |
Постоялец
Группа:
Продвинутые
Сообщений: 376
Награды: 14
Город: Ульяновск
Репутация: 884
Замечания: 0%
Статус:
| Вышла вторая версия с поддержкой Linux. Инструкцию по установке смотрите в архиве. Добавлено (24.04.2012, 09:36) --------------------------------------------- С версии 03 добавлена функция Unlock в С-API, с помощью которой можно сделать память перезаписываемой. Добавлен пример плагина AnyNick(работает на Win/Lin 0.3d-R2 800p)
Тысячи игроков SA-MP, как миллионы мух, конечно же не могут ошибаться. Законы математики, имеющие какое-либо отношение к реальному миру, ненадежны; а надежные математические законы не имеют отношения к реальному миру. © Альберт Эйнштейн.
|
|
|
|