MM API и его использование в модах

Сообщения
2,143
Реакции
1,223
Помог
44 раз(а)
SNauPeR, а что за квар и где он зарегистрирован?
 
Сообщения
315
Реакции
104
Помог
2 раз(а)
Minni, квар ВЫ делаете, в вашем плагина. Квар вызова функции - из моего плагина. Выше же написал про mm_startvote
 
Сообщения
2,143
Реакции
1,223
Помог
44 раз(а)
SNauPeR, а как квар узнает об этой функции, если к ней нет доступа?
 
Сообщения
315
Реакции
104
Помог
2 раз(а)
Minni,
то "ты", то "вы". Вы уж определитесь хД
Ну значит надо добавить квар, со значением названия плагина, который будет отвечать за смену карты (название моего плагина - 4-ех колесный велосипед:D)
 
Сообщения
2,143
Реакции
1,223
Помог
44 раз(а)
Странно. Вроде бы квар запилил и название указал, но к функции все равно нет доступа. Почему же?
Я тупой. Не понимаю. Покажи каким-то плагином, как нужно реализовать такую связь. Только без ReGG.
 
Сообщения
315
Реакции
104
Помог
2 раз(а)
Minni, нет доступа? Как плагином реализоваывается такая связь? А ничего, что это ВАША проблема, ведь мой плагин как "связь\мост" между MM modular и вашим плагином? В котором есть УСЛОВИЕ для смены карты. Делаете максимум 2 квара (и код под них) - квар названия плагина, который отвечает за смену карты в нужное время (когда выполнено условие) + квар вызова функции смены карты.
Я еще должен сам пилить плагины и показывать ВАМ как пользоваться? ReGG в примере же есть. Криво оптимизированный, как я понял, с точки зрения смены карты. Но он как пример имеет место быть.
По итогу (и который раз) я понимаю, что вам просто смешно. Но опять же - низость (по человечески) проявляете уже КОТОРЫЙ раз ?
 
Сообщения
2,491
Реакции
2,790
Помог
61 раз(а)
SNauPeR, я понимаю почему бомбит, но вы не правы. Как буду за компом обьясню по пальцам. И шуточки тут как раз не шутили.
Minni, хватит. Человек не догадается к чему ты клонишь и это продолжается уже достаточно долго. Либо сразу пиши прямо, либо просто промолчи и дождись пока поймет.
 
Сообщения
2,143
Реакции
1,223
Помог
44 раз(а)
Да блин. Вечно обламывают меня. Ну да ладно, я немного развлекся и уже хорошо. Хоть как-то скоротал свою бессмысленную жизнь.
А ничего, что это ВАША проблема, ведь мой плагин как "связь\мост" между MM modular и вашим плагином?
Моя проблема в том, что нет никакой связи и никогда не было?! Да блин, парень, почему до тебя никак не дойдет, что если ты и сделал функции, то её нужно как-то вызывать?! Твоя функция не является нативом или форвардом, не вызывается в каких-то хуках или командах. Она просто существует в загруженной памяти и висит, ничего не делая никогда и ни при каких обстоятельствах.
 
Сообщения
2,491
Реакции
2,790
Помог
61 раз(а)
SNauPeR, А теперь, как и обещал, по полочкам.
Как я понимаю в вашем понимании API это такое (пример из РеГГ)
Код:
StartMapVote()
{
    if(callfunc_begin(g_szVoteFunction, g_szCallPluginName) == 1)
    {
        //callfunc_push_int(0);
        callfunc_end();
    }
}
Смею вас разочаровать, но нет. Это не АПИ, а костыль как и говорили все мы раньше.
Вы в вашем же плагине как раз таки используете апи ММ вызывая натив map_scheduler_start_vote из инклуда. Я ошибся сказав, что это паттерн (программирования) прокси. На самом деле это адаптер. Если вы хотите использовать ММ Mistrick-а, то вам нужно вызывать не паблик функцию, а именно map_scheduler_start_vote. Пример
Код:
StartMapVote()
{
    map_scheduler_start_vote(VOTE_BY_CMD);
}
Тогда это будет более правильно. Если хотите поддержку разных ММ, то есть дефайны, модули и прочие техники.
И та же ситуация с вашим примером. Зачем какому то плагину Х знать о какой то паблик функции в плагине У, если он может напрямую вызвать старт голосования нативом их ММ. У вас получается лишняя прослойка, которая способствует усложнению дебага и понимании что творится в коде. А также не дает никаких гарантий успешного исполнения. В случае если вы будете вызывать натив, у вас АМХХ в самом начале проверить есть ли такой плагин, который зарегистрировал данный натив, сможет обработать исключение. В логах получите более адекватное представление, что пошло не так. И чисто архитектурно это более грамотно. Что в случаее с нативом, что в случае с паблик функцие плагину использущему их нужно знать их название. Только в случаи с использованием паблик функции, плагину еще нужно знать имя другого плагина. А вы думали что будет, если кто-то захочет его переименовать в mm_fix.amxx например? Ему придется указывать новое имя. А учитывая общий уровень умений серверодержателей, то вы получите тонну сообщений (не багрепортов), о том, что ничего не работает.
Постараюсь навести аналогию. Есть электроприбор в котором есть предохранитель. И вот ваш плагин, это то же самое, если бы вы взяли и вынули предохранитель и соединили провода напрямую. Результат один и тот же. Прибор работает. Но правильно ли это? Думаю сами понимаете. Так что лучше если уж и так форкаете РеГГ, то добавьте в него сразу поддержку ММ мистрика (даже тем же дефайном).

Ну и еще пару слов о примере с переключением при достижении количества килов, пока идет поток мыслей в моей голове. Если забыть, что данный функционал уже есть в самом ММ и это чисто как пример, то ваш плагин тут попросту не нужен. Примерный код будет выглядеть так
Код:
if (kills > 1000)
{
    map_scheduler_start_vote(VOTE_BY_CMD);
}
Так как вы говорите это будет выглядеть так

Код:
if (kills > 1000)
{
    if(callfunc_begin("mm_startvote", "map_manager_changer.amxx") == 1)
    {
        callfunc_end();
    }
}
Выводы делайте сами. Во втором случае +1 плагин, + 1 прослойка, +1 непредсказуемое поведение. А результат один и тот же
 
Сообщения
315
Реакции
104
Помог
2 раз(а)
Minni,
вам бы только поржать над новичками, как я и писал...)
fantom, благодарю, буду разбираться!
 
Сообщения
2,143
Реакции
1,223
Помог
44 раз(а)
SNauPeR, так веселая же игра была. Не так ли?!
 
Сообщения
315
Реакции
104
Помог
2 раз(а)
Minni, для меня, скорее, удивительная - насколько забавны могут быть люди, когда речь идет об попытках отдаленно втолковать СВОЮ ЖЕ мысль новичкам)
Написал Minni : объяснений 0, понтов 100 - догадайся че надо сделать САМ) Не так ли?! :rofl:
Написал fantom: объяснений 100, понтов 0 - все в общем понятно (Еще раз - большое СПАСИБО!)?
 
Сообщения
576
Реакции
1,003
Помог
18 раз(а)
SNauPeR, только часто запоминается первое, а второе вылетает в трубу.
 
Сообщения
2,143
Реакции
1,223
Помог
44 раз(а)
Minni, для меня, скорее, удивительная - насколько забавны могут быть люди, когда речь идет об попытках отдаленно втолковать СВОЮ ЖЕ мысль новичкам)
Написал Minni : объяснений 0, понтов 100 - догадайся че надо сделать САМ) Не так ли?! :rofl:
Написал fantom: объяснений 100, понтов 0 - все в общем понятно (Еще раз - большое СПАСИБО!)?
А голова тебе зачем? Чтобы свистеть через уши или мозгами шевелить? Не, я понимаю, списывать тупняк на то, что ты якобы новичок или тупой мужлан - это проще всего, но ты полез в это болото, где нужно головой думать. Если ты готов все больше погружаться в это дремучее болото, то будь готов встретить реально тупых людей или отбитых, которые и пару слов не смогут связать в предложение, дабы описать суть проблемы. Они еще будут называться твоими клиентами)))
 
Сообщения
315
Реакции
104
Помог
2 раз(а)
Minni, а я за 1 месяц должен быть стать на уровень с вами? Никогда не был программистов и не дружил с информатикой в школе. Вы бы лучше ГНОБИЛИ людей вашего уровня и выше, а не новичков. Чисто по человечески - уже не 1 раз вам об это писал, низко поступаете )
но кого это волнует, как и кого обучила жизнь?
Вы меряете одной линейкой всех, теперь ясно) Слава Богу, что меня обучают скриптингу другие люди.. Которые понимают, что ЛЮДИ РАЗНЫЕ)
Угу, полез в ботов и встретился с... :rofl::rofl::rofl:
 
Сообщения
2,143
Реакции
1,223
Помог
44 раз(а)
Но я ведь не гнобил никого...
1597002846541.png
 
Сообщения
694
Реакции
472
Помог
10 раз(а)
Minni, фу, токсик, бан тебе! :bad:
 
Сообщения
2,143
Реакции
1,223
Помог
44 раз(а)
BalbuR, да я и не обязан любезничать с людьми. Да и вообще я их ненавижу, как вид. Хуже животных)
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу