Скриптинг курилка

На дворе 2к19 уже.
Народ до сих пор пользуется strtok (WTF).
Взял бы сразу sscanf
Reply

Quote:
Originally Posted by OKStyle
Посмотреть сообщение
Можно было проще, делай всё по порядку. Лет 6 назад я писал:
pawn Код:
if(strcmp(cmd, "/ban", true, 4) == 0)
{
    new tmp[128]; // создали новую переменную для хранения параметров
    tmp = strtok(cmdtext, idx); // засунули в неё параметры до следующего пробела
    if(strlen(tmp) < 1) return SendClientMessage(playerid, 0xFF0000FF, "Синтаксис: /ban  [playerid][reason]"); // если нет аргументов
    new targetid = strval(tmp); // взяли ID игрока из параметров
    new pos = strfind(cmdtext, " ", true, 4); // ищем пробел после ID
    if(pos == -1) return SendClientMessage(playerid, 0xFF0000FF, "Синтаксис: /ban  [playerid][text]"); // если больше аргументов нет
    format(tmp, sizeof(tmp), "Администратор %s забанил игрока %s. Причина: %s", PlayerInfo[playerid][pName], PlayerInfo[targetid][pName], cmdtext[pos + 1]); // форматируем с причиной, полученной из параметров после следующего пробела (важно: причина может быть с пробелами, т.е. в несколько слов).
    SendClientMessage(targetid, 0xFF0000FF, tmp);
    Ban(playerid);
    return 1;
}
Добавляешь ещё один strtok только для цифрового параметра, а потом уже strfind.
А если например с параметром еще одним для тектового, получается так ?
то есть 1 параметр число и два текстовых ? в таком случае как будет работать проверка на пробел ?
Код:
strfind(cmdtext, " ", true, 4);
ведь если я укажу в причине текст с пробелами то получатся что он пойдет в следующий параметр верно ?

Синтаксис: /ban [playerid][text1][text2]





Quote:
Originally Posted by Mutha_X
Посмотреть сообщение
На дворе 2к19 уже.
Народ до сих пор пользуется strtok (WTF).
Взял бы сразу sscanf
Дело не в том что проще, дело в том что для меня это интересно.
В sscanf там понятно задал количество параметров то есть , int, sntring ,float грубо говоря и ты уже от них отталкиваешься. А вот тут для меня была задача. почему именно так работает код, ведь изначально не указывается как бы количество запрашиваемых параметров они все идут в коде по очередно. просто я такой человек могу сутками сидеть и разбираться в коде что и как работает. что бы потом не было проблем.
Reply

Для второго текстового параметра задаёшь длину первого и второго параметров, и после неё уже ищешь проблем. Точнее пробел)))
Reply

Quote:
Originally Posted by OKStyle
Посмотреть сообщение
Для второго текстового параметра задаёшь длину первого и второго параметров, и после неё уже ищешь проблем. Точнее пробел)))
Хм, саму функцию я понял как работает, но вот не очень понял с определение длины двух первых параметров.

То есть сама функция работает так
мы вводим ид игрока.
после проверяем его
Далее что команда нам дала ввести следующий параметр мы делаем проверку.
new pos = strfind(cmdtext, " ", true, 4);
Где на 4 позиции должен быть пробел. ?
то есть следущий парамер который я буду вводить , как на примере твоей команды
/ban [id] [text1] [text2]
должен считать все параметры первого значения [id] и второго значение [text2]
но как узначить какое значение будет ? ведь например значение id может иметь до 999( то есть 3 символа) а может и 1. плюсь параметр text1 будет иметь текс например . "Забанен за использования чита".
Ни совсем могу понять как работает параметр последний функции strfind
Reply

strlen в помощь.
Reply

Quote:
Originally Posted by OKStyle
Посмотреть сообщение
strlen в помощь.
Вот по этому лучше использовать sscanf

Теперь так же вопрос.
В моде использовалась функция
Quote:

SendMes

Код:
stock SendMes(playerid, color, fstring[], {Float, _}:...)
{
    static const
        STATIC_ARGS = 3;
    new
        n = (numargs() - STATIC_ARGS) * BYTES_PER_CELL;
    if (n)
    {
        new
            message[128],
            arg_start,
            arg_end;
        #emit CONST.alt        fstring
        #emit LCTRL          5
        #emit ADD
        #emit STOR.S.pri        arg_start

        #emit LOAD.S.alt        n
        #emit ADD
        #emit STOR.S.pri        arg_end
        do
        {
            #emit LOAD.I
            #emit PUSH.pri
            arg_end -= BYTES_PER_CELL;
            #emit LOAD.S.pri      arg_end
        }
        while (arg_end > arg_start);

        // Push the static format parameters.
        #emit PUSH.S          fstring
        #emit PUSH.C          128
        #emit PUSH.ADR         message

        n += BYTES_PER_CELL * 3;
        #emit PUSH.S          n
        #emit SYSREQ.C         format

        n += BYTES_PER_CELL;
        #emit LCTRL          4
        #emit LOAD.S.alt        n
        #emit ADD
        #emit SCTRL          4

        return SendClientMessage(playerid, color, message);
    }
    else
    {
        return SendClientMessage(playerid, color, fstring);
    }
}
Почитав на форуме, понял что данная функция не стабильна и может возникнуть проблемы с ней в плане когда буду вызывать в данной функции более 2 аргументов. и вот по этому сижу и переписываю на стандартный formart.
Но для меня не понятно как возвращать его то есть по примеру:
Код:
if(GetPlayerMoneyEx(playerid) < VEH_COLOR) return SendMes(playerid, COLOR_GREY,"Перекраска машины стоит $%d.",VEH_COLOR);
а мне надо использовать format
получается будет Так :
Код:
if(GetPlayerMoneyEx(playerid) < VEH_COLOR)
{
	format(string, sizeof(string),"Перекраска машины стоит $%d.",VEH_COLOR);
	SendClientMessage(playerid, COLOR_GREY,string);
	return 1;
}
Верно ?
Reply

Верно.
Reply

Как работает PlayerPlaySound?

Он проигрывает определённый звук на нужном координате или в каком-то радиусе от него?
Reply

Quote:
Originally Posted by OKStyle
Посмотреть сообщение
https://sampforum.blast.hk/showthread.php?tid=665621 полетели головешки? Почти всех из темы забанили.
Если это та тема о которой я думаю, то сами виноваты. Подняли шумиху из-за того что парочка человек перестали быть бета тестерами. Экая невидаль...
Reply

Quote:
Originally Posted by Jaaaar
View Post
В 2011 тут и 20к не играло, а самые большие проекты и 300 человек не собирали, или тогда еще 200 слотов было? В любом случае
Шта? В 11 году был пик интереса к игре: лиги, кланы, клан-вары, турниры... В том числе произошёл расцвет скриптинга. Все игроки на серверах были живыми, которые заходили туда из-за интереса, а не из-за того, что какой-то недалёкий, дорвавшийся до вебкамеры, прорекламил какой-то сервер. Забавно, что за это ещё и начали им платить. Вот тогда и скатилась аудитория, которой втирали дичь в роликах, навешивая лапшу на уши по поводу "крутости" сервера.
Reply

Quote:
Originally Posted by Jaaaar
View Post
дело не в сампе, а в самой сан андреас, абсолютно устаревшая игра, которая даже на смартфонах уже выглядит так себе
Да дело как раз по большому счёту сейчас только в сампе, игра здесь как была феноменом среди всех остальных частей, так и остаётся (в подтверждение этому см. онлайн в мультиплеерах gta 3, gta vc, gta 4. Спойлер: они все мертвы, даже у более новой части). Абсолютно устаревшая игра даже на смартфонах это одна из самых проработанных и богатых на возможности и функционал из всех устаревших игр, отсюда интерес играть по мультиплееру именно в неё, причем её устаревшесть или нет здесь играет минимальную роль, как с той же cs или чем там ещё.

С игрой ясно, было ещё что-то по поводу более лучших аналогов, так вот: MTA как мультиплеер именно для gta sa многих не устраивает из-за своей перегруженности всяким калом вроде встроенного браузерного движка, надобности грузить от серверов кучу данных, ожидая при этом по пол часа при входе и иным вещам, превращающим игру в полный цирк. Мультиплеер(ы) для GTA V, куда сейчас как раз немало кто уходит, ещё довольно сырые и нестабильные. Выходит, не так то много у сампа и аналогов достойных.
Reply

Quote:

игра здесь как была феноменом среди всех остальных частей, так и остаётся (в подтверждение этому см. онлайн в мультиплеерах gta 3, gta vc, gta 4

Дак 3, вс, 4 не интересные, для мультиплеера вообще не приспособлены. Вот пятерка другое дело

Quote:

как с той же cs или чем там ещё.

В 1.6 одни подпивасы после смены на заводе играют уже, ты о чем? 90% в го ушли или вообще из кс

Quote:

MTA как мультиплеер именно для gta sa многих не устраивает из-за своей перегруженности всяким калом вроде встроенного браузерного движка

мта уже самп по онлайну обгоняет, и это при учете, что там нет десятка ютуберов, как на какой нибудь одной лишь аризоне в сампе

Quote:

Мультиплеер(ы) для GTA V, куда сейчас как раз немало кто уходит, ещё довольно сырые и нестабильные

Что значит нестабильные? Да там нет синхры тачек без водителя, например, её предполагается сделать самому. Кстати интересный факт - за всё время разработки под рейдж у меня ни разу не крашнулась игра, даже если я неправильно что то использовал. В сампе даже неправильный компонент тюнинга игру крашит

Quote:

В 11 году был пик интереса к игре: лиги, кланы, клан-вары, турниры

Пик интереса был лично у тебя. График онлайна в сампе говорит о другом

Помню еще время, когда в сампе можно было всего лишь спамом по игровым форумам набрать 500 онлайна, а то и больше. Сейчас даже влив пол миллиона тыщу не наберешь наверное
Reply

Quote:
Originally Posted by Jaaaar
View Post
Дак 3, вс, 4 не интересные, для мультиплеера вообще не приспособлены. Вот пятерка другое дело
Почему? 4 вполне заслуживала достойного мультиплеера с более-менее достойным онлайном.

Quote:
Originally Posted by Jaaaar
View Post
В 1.6 одни подпивасы после смены на заводе играют уже, ты о чем? 90% в го ушли или вообще из кс
А в сампе совсем дети сейчас основной массой играют, и что? Онлайн есть онлайн, речи о его классификации не идёт же.

Quote:
Originally Posted by Jaaaar
View Post
мта уже самп по онлайну обгоняет, и это при учете, что там нет десятка ютуберов, как на какой нибудь одной лишь аризоне в сампе
Ну, собстно, потому именно сейчас и обгоняет, что на обновы сампа разработчик забил. Пока самп развивался, мта даже и не снилось ничего подобного в перспективе.

Quote:
Originally Posted by Jaaaar
View Post
Что значит нестабильные? Да там нет синхры тачек без водителя, например, её предполагается сделать самому. Кстати интересный факт - за всё время разработки под рейдж у меня ни разу не крашнулась игра, даже если я неправильно что то использовал. В сампе даже неправильный компонент тюнинга игру крашит
Насчёт компонентов: крашит неправильный тюнинг-компонент не самп, а игру. А насчёт нестабильности и сырости мп к пятой части - в fivem, касаемо сырости, всего 64 слота и это ни в какие ворота, а в rage:mp по словам многих, кто с ним работает, функционал на уровне сампа 0.2 и ещё много чего предстоит допиливать. И ещё одно, что утверждать конечно не буду, т.к. лично не проверял, но что-то много инфы по этим мультиплеерам проскакивает, что для игры в них обязательно (ну или по крайней мере гораздо менее геморно) наличие лицензионной игры. И если это действительно так, то перспектив у них гораздо меньше, чем могло бы быть.
Reply

Quote:

4 вполне заслуживала достойного мультиплеера с более-менее достойным онлайном.

В нее даже в сингл играть скучно, мп её не вывез бы. V сейчас реально первая игра, с выходом рейджа, которая может похоронить самп. Я конечно не говорю, что все 100% людей уйдут из сампа туда, но больше половины точно, не сразу, но через некоторое время, другая половина в мта уйдет

Quote:

функционал на уровне сампа 0.2 и ещё много чего предстоит допиливать

Я бы сказал там функционал к МТА приближается. Есть весь функционал, что есть в самой игре, а если чего то нет, то можно прямо из скрипта к памяти игры обращаться. Ну и клиент / сервер конечно же

Quote:

наличие лицензионной игры. И если это действительно так, то перспектив у них гораздо меньше, чем могло бы быть.

В гта 5 полно игроков уже и так есть. Так то по честному, никакому игровому серверу не нужна неплатежеспособная аудитория, только слоты и время администраторов забирают

Quote:

Онлайн есть онлайн, речи о его классификации не идёт же.

Он есть, но там остались уже только уже какие то фанаты, все ушли в более современные игры
Reply

Quote:
Originally Posted by Jaaaar
View Post
В нее даже в сингл играть скучно, мп её не вывез бы. V сейчас реально первая игра, с выходом рейджа, которая может похоронить самп. Я конечно не говорю, что все 100% людей уйдут из сампа туда, но больше половины точно, не сразу, но через некоторое время, другая половина в мта уйдет
Насчёт четвёрки и скучности/не скучности это лично твоё субъективное мнение. У пятой же ещё очень не скоро в силу разных причин (включая сырость мультиплееров и мощности компьютеров многих игроков) сможет серьёзно прибавиться онлайн именно за счёт сампа.

Quote:
Originally Posted by Jaaaar
View Post
Я бы сказал там функционал к МТА приближается. Есть весь функционал, что есть в самой игре, а если чего то нет, то можно прямо из скрипта к памяти игры обращаться. Ну и клиент / сервер конечно же
Ну если там, как ты говоришь, на данный момент даже некоторых базовых синхр не хватает, то о чём тут ещё говорить можно?)

Quote:
Originally Posted by Jaaaar
View Post
В гта 5 полно игроков уже и так есть. Так то по честному, никакому игровому серверу не нужна неплатежеспособная аудитория, только слоты и время администраторов забирают
±5 тысяч есть и в крмп, но это вообще не ровня сампу. Если говорить о таких перспективах, чтобы пренебрегать охватом аудитории в угоду "платёжеспособной", то это попросту глупо, потому что само наличие лицензии никак не гарантирует донат от игрока, как и наоборот (а вот отсекание её большей части как раз тормозит и распространение, и донаты как итог). Более того, лично я бы даже из принципов не стал покупать игру ради какого-то левого мп, когда купив её я и так получу официальный, при том что на пиратке его бы в конкурентах не было.
Reply

Уж лучше никакой синхры машин без водителя, чем вот это: https://sampforum.blast.hk/showthread.php?tid=667153
Ну а если свою написать можно, то еще лучше.

>само наличие лицензии никак не гарантирует донат от игрока
У редэйджа с 1500 онлайном судя по сливу , если это правда, доната было по 1.5кк в месяц. В сампе сервер с 1500 онлайном и трети от этого никогда не принесет. Не будет прибыли, не будет и серверов для игры, очевидно.
Reply

Quote:
Originally Posted by Jon_De
View Post
Уж лучше никакой синхры машин без водителя, чем вот это: https://sampforum.blast.hk/showthread.php?tid=667153
Ну а если свою написать можно, то еще лучше.

>само наличие лицензии никак не гарантирует донат от игрока
У редэйджа с 1500 онлайном судя по сливу , если это правда, доната было по 1.5кк в месяц. В сампе сервер с 1500 онлайном и трети от этого никогда не принесет. Не будет прибыли, не будет и серверов для игры, очевидно.
В любом случае касаемо наличия лицы это моё мнение и я не отрицаю, что перспективы у этих мп в любом случае есть, ибо как бы там ни было, сама по себе GTA 5 даёт большие возможности и разработчики тамошних мп в отличие от калкора их сейчас активно развивают и обновляют. Просто возвращаясь к изначальной теме, сампу пока от этого не холодно и не жарко, и о его "смерти" даже и речи нет. Банальная статистика хорошо это показывает.
Reply

Quote:
Originally Posted by OstGot
View Post
В любом случае касаемо наличия лицы это моё мнение и я не отрицаю, что перспективы у этих мп в любом случае есть, ибо как бы там ни было, сама по себе GTA 5 даёт большие возможности и разработчики тамошних мп в отличие от калкора их сейчас активно развивают и обновляют. Просто возвращаясь к изначальной теме, сампу пока от этого не холодно и не жарко, и о его "смерти" даже и речи нет. Банальная статистика хорошо это показывает.
Какая статистика? По которой закрылись все иноязычные разделы, кроме русского и еще одного? Или по которой онлайн в сампе в 2 раза просел за последние пару лет?
В 2016 и ранее такого количества рекламы в сампе не было, а онлайн выше был. Сейчас пол ютуба куплено, но онлайн не растет вообще. Самп рп отличный пример - без особой рекламы набрали 10к онлайна, а аризона, у которой куплено вообще все что можно и нельзя, даже 8к стабильно не могут.
Reply

Quote:
Originally Posted by Jon_De
View Post
Какая статистика? По которой закрылись все иноязычные разделы, кроме русского и еще одного? Или по которой онлайн в сампе в 2 раза просел за последние пару лет?
В 2016 и ранее такого количества рекламы в сампе не было, а онлайн выше был. Сейчас пол ютуба куплено, но онлайн не растет вообще. Самп рп отличный пример - без особой рекламы набрали 10к онлайна, а аризона, у которой куплено вообще все что можно и нельзя, даже 8к стабильно не могут.
Нет. По той статистике, где у сампа стабильно 25к+ (причём "просад" с прошлыми годами можно обусловить в том числе как раз наконец-то начавшейся борьбой с ботоводами). В это же время средний онлайн rage:mp и cr:mp меньше в несколько раз, и единственный мп (причём на той же san andreas), который подобрался вплотную - мта.
Reply

Quote:
Originally Posted by Jaaaar
View Post
В 1.6 одни подпивасы после смены на заводе играют уже, ты о чем? 90% в го ушли или вообще из кс
Go - такое же гумно, как и Source. Я катаю в 1.6 иногда.

Quote:
Originally Posted by Jaaaar
View Post
мта уже самп по онлайну обгоняет, и это при учете, что там нет десятка ютуберов, как на какой нибудь одной лишь аризоне в сампе
Да мы часто тут слышим про этот МП, но что-то пока ничего путного там не реализовали, хотя козыряли возможностями.

Quote:
Originally Posted by Jaaaar
View Post
Пик интереса был лично у тебя. График онлайна в сампе говорит о другом
Quote:
Originally Posted by Jaaaar
View Post
Помню еще время, когда в сампе можно было всего лишь спамом по игровым форумам набрать 500 онлайна, а то и больше. Сейчас даже влив пол миллиона тыщу не наберешь наверное
А теперь перечитай моё сообщение снова. Пик интереса как раз был тогда, а вот пик купленного онлайна - год-два назад. Какой может быть интерес у купленного онлайна? Просто тупые владельцы серверов думают, будто можно купить себе онлайн. Они покупают себе донат, а не игроков, которым интересно играть на проекте.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)