Re: Написание плагинов -
Diman777 - 13.02.2017
Quote:
Originally Posted by ZiGGi
Сейчас активно развивается C# и Java плагины.
|
Впервые вижу такое.
Quote:
Originally Posted by ZiGGi
Язык очень сложный и громоздкий для скриптинга.
|
Я это почувствовал когда писал ф-ию для перевода регистра. Всё-таки Pawn отличается от CPP сильно (взять тот же
switch, суть одна, но синтаксис другой).
Re: Написание плагинов -
ZiGGi - 13.02.2017
Quote:
Originally Posted by stabker
Есть что-то такое, что следует знать перед тем, как начать юзать jit?
|
Возможны проблемы с кодом, использующим emit.
Re: Написание плагинов -
Diman777 - 13.02.2017
А могут возникнуть проблемы с плагином, который уже на Линуксе скомпилированный?
Т.е. нужно ли будет что-то прописывать в исходном коде, чтобы на Лине не было проблем?
Например на винде моя ф-ия UpperToLower работает норм, и это же не факт что на Лине будет норм работать. Эти тонкости важно знать, поэтому просьба знающих - рассказать что да как.
Re: Написание плагинов -
joker2020pro - 14.02.2017
Думаю будет интересно:
тык.
Re: Написание плагинов -
White_116 - 14.02.2017
Quote:
Originally Posted by Mutha_X
Жду от тебя реализацию ColAndreas на павне.
|
Я поехавший чтоле? Там без указателей никак, да и дело не в них... Я говорил про мелочные функции которые пользователь вызывает из плагина, время будет уходить на прослойку амх, передача аргументов... и т.д. В то время эквивалентный код уже выполняется на амх машине.
Re: Написание плагинов -
Diman777 - 14.02.2017
Quote:
Originally Posted by joker2020pro
Думаю будет интересно: тык.
|
Раньше исходники лежали на гугл коде кстати)
Re: Написание плагинов -
Mutha_X - 14.02.2017
Quote:
Originally Posted by White_116
Я поехавший чтоле? Там без указателей никак, да и дело не в них... Я говорил про мелочные функции которые пользователь вызывает из плагина, время будет уходить на прослойку амх, передача аргументов... и т.д. В то время эквивалентный код уже выполняется на амх машине.
|
Quote:
Originally Posted by White_116
В любом эквивалентном варианте плагин будет отставать на чуть чуть, связанно это из-за прокладки ввиде амх.
|
Нет, ты как раз говорил про
любой случай.
Re: Написание плагинов -
White_116 - 14.02.2017
Quote:
Originally Posted by Mutha_X
Нет, ты как раз говорил про любой случай.
|
В любом
эквивалентном случае...
Re: Написание плагинов -
ZiGGi - 14.02.2017
Quote:
Originally Posted by Diman777
Нормально ли в наше время писать те же плагины в MVS 2010 года выпуска? Обновляться не особо хочется, сроднился с 2010))
Советуют обновиться из-за новых стандартов, но в планах нет, что-то писать в виде большого проэкта, поэтому хз, стоит ли. И вообще кто где пишет свои плагины?
|
Пиши где удобно. Лично я использую Sublime Text 3, а VS 2015 использую только для компиляции под винду. Хотя иногда и в VS пишу, когда отлаживать приходится.
Re: Написание плагинов -
Diman777 - 14.02.2017
Заново провёл тест для короткой и длинной строки. Вообщем результаты забавные.
См. причину редактирования.
Re: Написание плагинов -
Mutha_X - 14.02.2017
Quote:
Originally Posted by White_116
В любом эквивалентном случае...
|
Строго говоря вопрос ты ведешь в двум стульям и аксиоме эскобара: один с ..., другой с ... , - выбирай на какой сам сядешь.
Рассматриваются именно равносильные программы как скрипт и как плаг. В этом смысле, в любом случае, код будет эквивалентен (по результату). А с точки зрения конечной реализации или выполнения в машинном коде всегда (за редкими исключениями) (и учитывая, что плагин может быть скомпилирован различными версиями компиляторов по разному) будет неэквивалентным, даже твои "мелочные функции".
Re: Написание плагинов -
Stepashka - 15.02.2017
Quote:
Originally Posted by Diman777
Заново провёл тест для короткой и длинной строки. Вообщем результаты забавные.
См. причину редактирования.
|
Напиши систему на которой проверял. И приложи в архиве сборку для тестов. Будет интересно сравнить на других платформах.
Re: Написание плагинов -
MIASO - 15.02.2017
Quote:
Originally Posted by joker2020pro
Думаю будет интересно: тык.
|
https://github.com/zhepa/gta-paradis...elop_tools.cpp
там есть тест скорости вызова нативов и к нему коммент:
Тестирование производительности вызовов нативов. В самом простом случае получаем падение производительности 40%, по сравнению с павном
Re: Написание плагинов -
Diman777 - 15.02.2017
Quote:
Originally Posted by MIASO
|
Стоп, не понял. Т.е. примерно на 40 процентов быстрее работают нативы плагина, чем павн? Расжуй)
Re: Написание плагинов -
MIASO - 16.02.2017
Вызовы нативов сампа из плагина работают на 40% медленнее, чем из amx, но существенно на работе мода это не сказывается.
Re: Написание плагинов -
Diman777 - 16.02.2017
Quote:
Originally Posted by MIASO
Вызовы нативов сампа из плагина
|
Т.е. будет медленно на 40 процентов если я вызову в своём плагине родную функцию сампа (не плагинскую функцию), например IsPlayerConnected. Я это понял так.
Re: Написание плагинов -
Bombo - 16.02.2017
Для реализации данного плагина (по переводу строки из одного регистра в другой) на С существует как минимум два более коротких способа. Первый: макросы tolower() и toupper() из стандартной библиотеки ctype.h. И второй способ: прибавить 0x20 к значению кода буквы (для понижения регистра); и отнять 0x20 из значения кода буквы (для повышения регистра).
И насчёт редактора: сложно найти что-то лучше, чем mcedit !
Re: Написание плагинов -
Diman777 - 16.02.2017
Через
tolower из этой библиотеки я пробывал уже, кирилицу почему-то она не переводит, а если заюзать перед её вызовом какой-нить
setlocale(LC_ALL, "") - сработало, но после тестов производительности из-за этой локали скорость упала 'прилично'. А 2-ой способ хз, я слабо умею работать с байтами, пока что))
Re: Написание плагинов -
DartfoL - 17.02.2017
setlocale нужно разово вызывать, если что
Re: Написание плагинов -
Diman777 - 17.02.2017
Это и было сделано, до цикла
for в моём примере. Или её можно было ещё где-то вызвать в плагине, например при старте (но наверно это мой бред)?