Перейти к содержанию

Oxxy

Проверенные
  • Постов

    111
  • Зарегистрирован

  • Посещение

  • Победитель дней

    8

Сообщения, опубликованные Oxxy

  1. Я имею введу серверную роботу, роботу над клиентом РО, роботу над сайтом и форумом, рекламой сервера в интернете, робота над скриптами, SRC...

    это какие такие роботы нужны?

  2. Помогло спасибо через грфу удалил, и еще вопрос как добавить кастом ,доболяю по старому но Unknown item,и как убрать каст на скилы в battle/skill не убирается.

    Дарю тебе:

    http://supportmii.com/ro1/JudasBible.pdf

    (полный сборник гайдов для начинающих, как добавить кастом, как включить и настроить сервер и т.д)

    https://rathena.org/wiki/Custom_weapons

    (добавление кастомных оружий)

    https://rathena.org/wiki/Custom_Items

    (добавление кастомных вещей)

    http://hercules.ws/board/topic/7526-guide-adding-new-status-icons/

    (добавление новой иконки статуса)

  3. Зачем тебе каждый раз выводить число игроков?

    И что за проверка в цикле?

    выше смотри, там все есть.

    Там ничего нет


    mes "^FF0000Всего игроков онлайн: "+getarraysize(.@names$)+"^000000";
    mes "["+(.@i+1)+"] "+.@names$[.@i]+": "+ .@loc$[.@i]+"";

    Тут 2 строки

    Потом деление на 1(Лолчто блиать)

    Какая-то проверка на пустоту(хотя в цикле есть проверка длины строки)

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

    XWgccaP0_JQ.jpg

    1) ((.@i + 1) % 10) == 0 Смотрим остаток от деления на 10 (проверяем является ли он каждым 10-м)

    2) .@names$[.@i + 1] != "" Смотрим, существует ли следующий элемент в списке (зачем? чтобы не было лишней кнопки некст если количество людей онлайн кратно 10)

    ПЛЕС. Сколько лет ты тут сидишь, а мозгов все не прибавилось, ага, я чекаю форумы часто C:

    Ладно бы я бездумно повторил, но я попросил объяснить, а ты видимо в глаза долбишься, раз не видишь, что написано.

    Ты в конечном скрипте ошибся. Вместо (.@i + 1) % 10) == 0 написал (.@i + 1) % 1) == 0 . Чуешь разницу? А он за это и зацепился.

    хмхмхмхм, а, это было для теста, ссорьки, кек

  4. Зачем тебе каждый раз выводить число игроков?

    И что за проверка в цикле?

    выше смотри, там все есть.

    Там ничего нет


    mes "^FF0000Всего игроков онлайн: "+getarraysize(.@names$)+"^000000";
    mes "["+(.@i+1)+"] "+.@names$[.@i]+": "+ .@loc$[.@i]+"";

    Тут 2 строки

    Потом деление на 1(Лолчто блиать)

    Какая-то проверка на пустоту(хотя в цикле есть проверка длины строки)

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

    XWgccaP0_JQ.jpg

    1) ((.@i + 1) % 10) == 0 Смотрим остаток от деления на 10 (проверяем является ли он каждым 10-м)

    2) .@names$[.@i + 1] != "" Смотрим, существует ли следующий элемент в списке (зачем? чтобы не было лишней кнопки некст если количество людей онлайн кратно 10)

    ПЛЕС.

  5. САБЖ.

    Как можно проверить, что игрок ввёл только цифры? если он ввел буквы - закрыть нпц

    Догадался.

    если input у нас не string переменная, то использование букв приведет к тому, что переменная будет равна 0, вот и сама проверка. клоуз.


    input @k;
    if(@k == 0) { mes "Число должно состоять только из цифр, оно также не может быть нулем."; close; }

    Введеное количество цифр можно как-то проверить?

    до этого тоже догнал


    input @k;
    if(@k < 1000 || >9999) { mes "Число должно быть четырехзначным."; close; }

    --клоуз тему.

  6. 1 запрос в секунду - это фигня. Ничего не будет.

    все тогда, решено, вот готовый нпц, если кому пригодится?


    celestiaj,60,71,6 script Players Online 100,{
    query_sql "SELECT `name`,`last_map` FROM `char` WHERE `online` > 0 ORDER BY `last_map`", .@names$, .@loc$;
    for(.@i = 0; .@i < getarraysize(.@names$); .@i++) {
    mes "^FF0000Всего игроков онлайн: "+getarraysize(.@names$)+"^000000";
    mes "["+(.@i+1)+"] "+.@names$[.@i]+": "+ .@loc$[.@i]+"";
    if ( ((.@i + 1) % 1) == 0 && .@names$[.@i + 1] != "" ) next;
    }
    close;

    OnInit:
    initnpctimer;
    end;

    OnTimer1000:
    delwaitingroom;
    query_sql "SELECT `name` FROM `char` WHERE `online` > 0 ORDER BY `last_map`", .@names$;
    waitingroom _("Игроки онлайн: "+getarraysize(.@names$)),0;
    stopnpctimer;
    initnpctimer;
    end;
    }

    Скобки после Waitingroom'а сделаны для того, чтобы сервер распозновал это как переводимую строчку (кто знает новую систему языков Геркулеса, тот поймет)

  7. 1) ((.@i + 1) % 10) == 0 Смотрим остаток от деления на 10 (проверяем является ли он каждым 10-м)

    2) .@names$[.@i + 1] != "" Смотрим, существует ли следующий элемент в списке (зачем? чтобы не было лишней кнопки некст если количество людей онлайн кратно 10)

    люблю тебя :D спасибо

    Можно еще спросить? Как правильно объединить эти два запроса в один:


    query_sql "SELECT `name`,`last_map` FROM `char` WHERE `online` > 0 ORDER BY `last_map`", .@names$, .@loc$;
    query_sql "SELECT COUNT(name) FROM `char` WHERE `online` > 0", .@online;

    попробовал так, в итоге выводит только 1 игрока онлайн(хотя их 2):


    query_sql "SELECT COUNT(name),`name`,`last_map` FROM `char` WHERE `online` > 0 ORDER BY `last_map`",.@online, .@names$, .@loc$;

    2mc0WtTfxsQ.jpg

    Зачем тебе второй запрос? Имена всех игроков онлайн у тебя в массиве .@names$, так? Соответственно количество элементов массива = количеству игроков в онлайне, так? Количество элементов в массиве у тебя в скрипте уже используется..

    ойойойой, как я протупил, правильно будет сделать getarraysize(.@names$), дыа?

    --UPDATE: все, сделал, спасибо всем C:

    Вопрос про нагрузку на базу и сервер:


    celestiaj,60,71,6 script Players Online 100,{
    query_sql "SELECT `name`,`last_map` FROM `char` WHERE `online` > 0 ORDER BY `last_map`", .@names$, .@loc$;
    mes "Всего игроков онлайн: "+getarraysize(.@names$);
    for(.@i = 0; .@i < getarraysize(.@names$); .@i++) {
    mes "["+(.@i+1)+"] "+.@names$[.@i]+": "+ .@loc$[.@i]+"";
    if ( ((.@i + 1) % 1) == 0 && .@names$[.@i + 1] != "" ) next;
    }
    close;

    OnInit:
    initnpctimer;
    end;

    OnTimer1000:
    delwaitingroom;
    query_sql "SELECT `name`,`last_map` FROM `char` WHERE `online` > 0 ORDER BY `last_map`", .@names$, .@loc$;
    waitingroom "Players Online: "+getarraysize(.@names$),0;
    stopnpctimer;
    initnpctimer;
    end;
    }

    будет ли сильно грузится сервер и база при таком виде нпц?

  8. 1) ((.@i + 1) % 10) == 0 Смотрим остаток от деления на 10 (проверяем является ли он каждым 10-м)

    2) .@names$[.@i + 1] != "" Смотрим, существует ли следующий элемент в списке (зачем? чтобы не было лишней кнопки некст если количество людей онлайн кратно 10)

    люблю тебя :D спасибо

    Можно еще спросить? Как правильно объединить эти два запроса в один:


    query_sql "SELECT `name`,`last_map` FROM `char` WHERE `online` > 0 ORDER BY `last_map`", .@names$, .@loc$;
    query_sql "SELECT COUNT(name) FROM `char` WHERE `online` > 0", .@online;

    попробовал так, в итоге выводит только 1 игрока онлайн(хотя их 2):


    query_sql "SELECT COUNT(name),`name`,`last_map` FROM `char` WHERE `online` > 0 ORDER BY `last_map`",.@online, .@names$, .@loc$;

    2mc0WtTfxsQ.jpg

  9. Жесть какая. За полтора года прям все приципы программирования поменялись настолько кардинально чтоли?

    Почитай, что такое цикл, как он организуется. Составь алгоритм своими словами. Потом это дело в скрипт уже переноси.

    Мой мозг перестал работать за полтора года, кекекек. На самом деле, забываешь очень много ;-)

    Заменить next;

    на if (!((.@i+1)%10) && .@names$[.@i+1]) next;

    Спасибо, проверю C:

    -- UPDATE: нпц виснет про твоем варианте, Джерек.

    4KMb6FdN4hU.jpg

    Проверь, что у тебя стоит &&, а не &. Если все так, то попробуй так:


    if ( ((.@i + 1) % 10) == 0 && .@names$[.@i + 1] != "" ) next;

    Спасибо, все работает :-*

    Бтв, я догадывался, что нужен еще один луп, можешь объяснить эту строку? Конкретно первую часть. (.@i + 1) % 10) Это сравнение?

  10. Жесть какая. За полтора года прям все приципы программирования поменялись настолько кардинально чтоли?

    Почитай, что такое цикл, как он организуется. Составь алгоритм своими словами. Потом это дело в скрипт уже переноси.

    Мой мозг перестал работать за полтора года, кекекек. На самом деле, забываешь очень много ;-)

    Заменить next;

    на if (!((.@i+1)%10) && .@names$[.@i+1]) next;

    Спасибо, проверю C:

    -- UPDATE: нпц виснет про твоем варианте, Джерек.

    4KMb6FdN4hU.jpg

  11. не знал, как объяснить правильно.


    http://upaste.me/f0b718789d23fc687

    скрипт, соответсвенно, я уже весь мозг сломал, убейте, не помню, как сделать чтобы показало, например, 10 игроков, появилась кнопка NEXT, пошел следующие 10 игроков и т.д. C:

    -- З.Ы: Всем привет, 1.5 года не занимался РОшечкой :]

  12. Не понравилась музыка - пиздуй, тема для тех, кому должно понравится/обсудить есть желание. У тебя мания величия. Твой пост был откровенной хуйней - я минусовал. problems?

    P.S Тем, кому без разницы - не отвечают дальше, однако, ты лишь можешь выебнуться этой фразой. И да, мне не похуй, что просто так минусуют.

×
×
  • Создать...
Яндекс.Метрика