Написание плагинов
#21

Quote:
Originally Posted by ZiGGi
View Post
Сейчас активно развивается C# и Java плагины.
Впервые вижу такое.
Quote:
Originally Posted by ZiGGi
View Post
Язык очень сложный и громоздкий для скриптинга.
Я это почувствовал когда писал ф-ию для перевода регистра. Всё-таки Pawn отличается от CPP сильно (взять тот же switch, суть одна, но синтаксис другой).
Reply
#22

Quote:
Originally Posted by stabker
View Post
Есть что-то такое, что следует знать перед тем, как начать юзать jit?
Возможны проблемы с кодом, использующим emit.
Reply
#23

А могут возникнуть проблемы с плагином, который уже на Линуксе скомпилированный?
Т.е. нужно ли будет что-то прописывать в исходном коде, чтобы на Лине не было проблем?
Например на винде моя ф-ия UpperToLower работает норм, и это же не факт что на Лине будет норм работать. Эти тонкости важно знать, поэтому просьба знающих - рассказать что да как.
Reply
#24

Думаю будет интересно: тык.
Reply
#25

Quote:
Originally Posted by Mutha_X
View Post
Жду от тебя реализацию ColAndreas на павне.
Я поехавший чтоле? Там без указателей никак, да и дело не в них... Я говорил про мелочные функции которые пользователь вызывает из плагина, время будет уходить на прослойку амх, передача аргументов... и т.д. В то время эквивалентный код уже выполняется на амх машине.
Reply
#26

Quote:
Originally Posted by joker2020pro
View Post
Думаю будет интересно: тык.
Раньше исходники лежали на гугл коде кстати)
Reply
#27

Quote:
Originally Posted by White_116
View Post
Я поехавший чтоле? Там без указателей никак, да и дело не в них... Я говорил про мелочные функции которые пользователь вызывает из плагина, время будет уходить на прослойку амх, передача аргументов... и т.д. В то время эквивалентный код уже выполняется на амх машине.
Quote:
Originally Posted by White_116
View Post
В любом эквивалентном варианте плагин будет отставать на чуть чуть, связанно это из-за прокладки ввиде амх.
Нет, ты как раз говорил про любой случай.
Reply
#28

Quote:
Originally Posted by Mutha_X
View Post
Нет, ты как раз говорил про любой случай.
В любом эквивалентном случае...
Reply
#29

Quote:
Originally Posted by Diman777
View Post
Нормально ли в наше время писать те же плагины в MVS 2010 года выпуска? Обновляться не особо хочется, сроднился с 2010))
Советуют обновиться из-за новых стандартов, но в планах нет, что-то писать в виде большого проэкта, поэтому хз, стоит ли. И вообще кто где пишет свои плагины?
Пиши где удобно. Лично я использую Sublime Text 3, а VS 2015 использую только для компиляции под винду. Хотя иногда и в VS пишу, когда отлаживать приходится.
Reply
#30

Заново провёл тест для короткой и длинной строки. Вообщем результаты забавные.
См. причину редактирования.
Reply
#31

Quote:
Originally Posted by White_116
View Post
В любом эквивалентном случае...
Строго говоря вопрос ты ведешь в двум стульям и аксиоме эскобара: один с ..., другой с ... , - выбирай на какой сам сядешь.

Рассматриваются именно равносильные программы как скрипт и как плаг. В этом смысле, в любом случае, код будет эквивалентен (по результату). А с точки зрения конечной реализации или выполнения в машинном коде всегда (за редкими исключениями) (и учитывая, что плагин может быть скомпилирован различными версиями компиляторов по разному) будет неэквивалентным, даже твои "мелочные функции".
Reply
#32

Quote:
Originally Posted by Diman777
View Post
Заново провёл тест для короткой и длинной строки. Вообщем результаты забавные.
См. причину редактирования.
Напиши систему на которой проверял. И приложи в архиве сборку для тестов. Будет интересно сравнить на других платформах.
Reply
#33

Quote:
Originally Posted by joker2020pro
View Post
Думаю будет интересно: тык.
https://github.com/zhepa/gta-paradis...elop_tools.cpp
там есть тест скорости вызова нативов и к нему коммент:
Тестирование производительности вызовов нативов. В самом простом случае получаем падение производительности 40%, по сравнению с павном
Reply
#34

Quote:
Originally Posted by MIASO
View Post
https://github.com/zhepa/gta-paradis...elop_tools.cppполучаем падение производительности 40%, по сравнению с павном
Стоп, не понял. Т.е. примерно на 40 процентов быстрее работают нативы плагина, чем павн? Расжуй)
Reply
#35

Вызовы нативов сампа из плагина работают на 40% медленнее, чем из amx, но существенно на работе мода это не сказывается.
Reply
#36

Quote:
Originally Posted by MIASO
View Post
Вызовы нативов сампа из плагина
Т.е. будет медленно на 40 процентов если я вызову в своём плагине родную функцию сампа (не плагинскую функцию), например IsPlayerConnected. Я это понял так.
Reply
#37

Для реализации данного плагина (по переводу строки из одного регистра в другой) на С существует как минимум два более коротких способа. Первый: макросы tolower() и toupper() из стандартной библиотеки ctype.h. И второй способ: прибавить 0x20 к значению кода буквы (для понижения регистра); и отнять 0x20 из значения кода буквы (для повышения регистра).
И насчёт редактора: сложно найти что-то лучше, чем mcedit !
Reply
#38

Через tolower из этой библиотеки я пробывал уже, кирилицу почему-то она не переводит, а если заюзать перед её вызовом какой-нить setlocale(LC_ALL, "") - сработало, но после тестов производительности из-за этой локали скорость упала 'прилично'. А 2-ой способ хз, я слабо умею работать с байтами, пока что))
Reply
#39

setlocale нужно разово вызывать, если что
Reply
#40

Это и было сделано, до цикла for в моём примере. Или её можно было ещё где-то вызвать в плагине, например при старте (но наверно это мой бред)?
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)