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

Flitemaster

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

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

  • Посещение

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

    3

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

  1. Вообщем переписал абру, теперь не должна выбивать ошибки... кому надо добавляй свои эффекты , свою локацию и свой приз.

    за 4 часа тестов не одной ошибки не выбило.

     

    Цитата

     

    prontera,136,204,5    script    Abracadabra    924,{
    if(getgmlevel()<99){
    if ( .event == 2 || .event == 0 ) end;
    for(set .@i,0;.@i<getarraysize(.aid);set .@i, .@i+1){
    if(getcharid(3)==.aid[.@i]){
    end;
    }
    }
    if ( .event == 1 ) {
    set .aid[ getarraysize(.aid) ], getcharid(3);
    mapannounce "event", strcharinfo(0) +" joined the game", 8;
    sc_end sc_ALL;
    warp "event",101,109;
    end;
    }
    }


    OnClock1925:


    if ( .event == 1 || .event == 2){end;}
    announce "Event 'Abracadabra' Begins! NPC to the left of the fountain.", 8;
    announce "You have 60 seconds to register",0;
    set .event, 1;
    deletearray .aid;
    sleep 60000;
    set .event, 2;
    if ( getarraysize(.aid) < 2 ){
    announce "Event canceled, because it did not have enough people", 8;
    mapwarp "event","prontera",156,181;
    deletearray .aid[.@i], 1;
    set .event,0;
    end;
    }
    announce "Registration is complete. The event started.", 8;
    while ( getarraysize(.aid) > 1 ) {
    if (!isloggedin(.aid[.@i])){
    deletearray .aid[.@i], 1;
    set .@i, .@i -1;
    }
    sleep 1000;
    mapannounce "event", "~ "+ rid2name(.aid[.@i]), 8;
    attachrid .aid[.@i];
    switch ( rand(25,32) ) {
    case 25:
    specialeffect2 380;
    set sp, 0;
    break;
    case 26:
    sc_start SC_STONE,10000,0;
    specialeffect2 23;
    break;
    case 27:
    sc_start SC_FREEZE,10000,0;
    break;
    case 28:
    sc_start SC_Poison,10000,0;  
    break;
    case 29:
    sc_start SC_SLEEP,10000,0;  
    break;
    case 30:
    sc_start SC_CURSE,10000,0;  
    break;
    case 31:
    sc_start SC_COMA,10000,0;  
    break;
    case 32:
    specialeffect2 30;
    if ( hp - 1000000 < 0 ) {
    unitkill getcharid(3);
    deletearray .aid[.@i], 1;
    set .@i, .@i -1;
    }
    else
    set hp, hp - 1000000;
    break;
    }
    set .@i, .@i +1 ;
    if ( .@i == getarraysize(.aid) ) {
    set .@i, 0;
    set .@round, .@round +1 ;
    mapannounce "event", "Round ? "+ .@round, 8;
    }
    }
    if ( .aid == 0 )
    announce "No winners", 8;
    else {
    announce "Event won "+ rid2name(.aid) , 8;
    attachrid .aid;
    getitem 25112, 1;   // Свой приз сюда
    atcommand "@raisemap";
    mapwarp "event","prontera",156,181;
    }
    set .event, 0;
    end;
    }


    event    mapflag    nowarp
    event    mapflag    nowarpto
    event    mapflag    noteleport
    event    mapflag    noreturn
    event    mapflag    nosave
    event    mapflag    nomemo
    event    mapflag    nobranch
    event    mapflag    nodrop
    event    mapflag    noloot
    event    mapflag    noskill
    event    mapflag    nopenalty
    event    mapflag    nogo

     

     

    • Upvote 4
  2. у меня не геркулес, и у меня по прежнему выбивало ошибку, но я переписал его и теперь всё норм.

    кому нужен вот мой новый вариант. Только замените локацию Event и приз на свой.

    Вот тут скрипт!

     

  3. Вообщем есть эвент абры, вроде работает , но иногда выбивает ошибку, помогите..

     

    Цитата

     

    [Warning]: script:getelementofarray: index out of range (-1)
    [Debug]: Data: variable name='.aid' index=0
    [Debug]: Source (NPC): Abracadabra at prontera (136,204)

     

     

    вот сам скрипт

    prontera,136,204,5    script    Abracadabra    924,{
    if(getgmlevel()<20){
    if ( .event == 2 || .event == 0 ) end;
    for(set .@i,0;.@i<getarraysize(.aid);set .@i, .@i+1){
    if(getcharid(3)==.aid[.@i]){
    end;
    }
    }
    if ( .event == 1 ) {
    set .aid[ getarraysize(.aid) ], getcharid(3);
    mapannounce "prontera", strcharinfo(0) +" joined the game", 8;
    warp "event",101,109;
    end;
    }
    }

    OnClock2025:
    //OnMinute55:
    if ( .event == 1 || .event == 2){end;}
    announce "Event 'Abracadabra' Begins! NPC to the left of the fountain.", 8;
    announce "You have 120 seconds to register",0;
    set .event, 1;
    deletearray .aid;
    sleep 120000;
    set .event, 2;
    if ( getarraysize(.aid) < 2 ){
    announce "Abracadabra Event canceled, because it did not have enough people", 8;
    mapwarp "event","prontera",156,181;
    deletearray .aid[.@i], 1;
    set .event,0;
    end;
    }
    announce "Registration is complete. The event started.", 8;
    while ( getarraysize(.aid) > 1 ) {
    if (!isloggedin(.aid[.@i])){
    deletearray .aid[.@i], 1;
    set .@i, .@i -1;
    }
    sleep 1000;
    mapannounce "prontera", "next player "+ rid2name(.aid[.@i]), 8;
    attachrid .aid[.@i];
    switch ( rand(25,32) ) {
    case 25:
    specialeffect2 25;
    if ( hp - 100000 < 0 ) {
    unitkill getcharid(3);
    deletearray .aid[.@i], 1;
    set .@i, .@i -1;
    }
    else
    set hp, hp - 100000;
    case 26:
    specialeffect2 26;
    if ( hp - 100000 < 0 ) {
    unitkill getcharid(3);
    deletearray .aid[.@i], 1;
    set .@i, .@i -1;
    }
    else
    set hp, hp - 100000;
    break;
    case 27:
    specialeffect2 27;
    if ( hp - 100000 < 0 ) {
    unitkill getcharid(3);
    deletearray .aid[.@i], 1;
    set .@i, .@i -1;
    }
    else
    set hp, hp - 100000;
    break;
    case 28:
    specialeffect2 28;
    if ( hp - 100000 < 0 ) {
    unitkill getcharid(3);
    deletearray .aid[.@i], 1;
    set .@i, .@i -1;
    }
    else
    set hp, hp - 100000;
    break;
    case 29:
    specialeffect2 29;
    if ( hp - 100000 < 0 ) {
    unitkill getcharid(3);
    deletearray .aid[.@i], 1;
    set .@i, .@i -1;
    }
    else
    set hp, hp - 100000;
    break;
    case 30:
    specialeffect2 30;
    sc_start SC_INCMATKRATE, 30000, -50;
    break;
    case 31:
    specialeffect2 31;
    if ( hp - 100000 < 0 ) {
    unitkill getcharid(3);
    deletearray .aid[.@i], 1;
    set .@i, .@i -1;
    }
    else
    set hp, hp - 100000;
    // .... all positive buff
    break;
    case 32:
    specialeffect2 32;
    if ( hp - 10000000 < 0 ) {
    unitkill getcharid(3);
    deletearray .aid[.@i], 1;
    set .@i, .@i -1;
    }
    else
    set hp, hp - 10000000;
    break;
    }
    set .@i, .@i +1 ;
    if ( .@i == getarraysize(.aid) ) {
    set .@i, 0;
    set .@round, .@round +1 ;
    mapannounce "prontera", "Round ยน "+ .@round, 8;
    }
    }
    if ( .aid == 0 )
    announce "No winners", 8;
    else {
    announce "Event won "+ rid2name(.aid) , 8;
    attachrid .aid;
    getitem 25112, 1;
    atcommand "@raisemap";
    mapwarp "event","prontera",156,181;
    }
    set .event, 0;
    end;
    }

    event    mapflag    nowarp
    event    mapflag    nowarpto
    event    mapflag    noteleport
    event    mapflag    noreturn
    event    mapflag    nosave
    event    mapflag    nomemo
    event    mapflag    nobranch
    event    mapflag    noloot
    event    mapflag    noskill
    event    mapflag    nopenalty
    event    mapflag    nogo

     

  4. Тема хоть и старенькая, но я вот сделал вот так вот для вайпа базы, выбираешь базу, клацаешь на кнопочку SQL и вводишь вот этот текст. только ещё добавлял дополнительные базы которые ставил отдельно.

    TRUNCATE TABLE `auction`;
    TRUNCATE TABLE `cart_inventory`;
    TRUNCATE TABLE `char`;
    ALTER TABLE `char` AUTO_INCREMENT=150000;
    TRUNCATE TABLE `charlog`;
    TRUNCATE TABLE `friends`;
    TRUNCATE TABLE `elemental`;
    TRUNCATE TABLE `global_reg_value`;
    TRUNCATE TABLE `guild`;
    TRUNCATE TABLE `guild_alliance`;
    TRUNCATE TABLE `guild_castle`;
    TRUNCATE TABLE `guild_expulsion`;
    TRUNCATE TABLE `guild_member`;
    TRUNCATE TABLE `guild_position`;
    TRUNCATE TABLE `guild_skill`;
    TRUNCATE TABLE `guild_storage`;
    TRUNCATE TABLE `homunculus`;
    TRUNCATE TABLE `hotkey`;
    TRUNCATE TABLE `interlog`;
    TRUNCATE TABLE `inventory`;
    TRUNCATE TABLE `ipbanlist`;
    TRUNCATE TABLE `mail`;
    TRUNCATE TABLE `mapreg`;
    TRUNCATE TABLE `memo`;
    TRUNCATE TABLE `mercenary`;
    TRUNCATE TABLE `mercenary_owner`;
    TRUNCATE TABLE `party`;
    TRUNCATE TABLE `pet`;
    TRUNCATE TABLE `quest`;
    TRUNCATE TABLE `ragsrvinfo`;
    TRUNCATE TABLE `sc_data`;
    TRUNCATE TABLE `skill`;
    TRUNCATE TABLE `skill_homunculus`;
    TRUNCATE TABLE `sstatus`;
    TRUNCATE TABLE `storage`;

     

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

    подскажите пожалуйста не могу понять в чём дело.

     

    32111.png

     

    всё сделал сам : решение было , надо было создать нового юзера в базе и выдать полные права.

  6. Всем добрый вечер, помогите решить ньюанс с длиной текста, почемуто русский текст не длинный а англ как обычно.. как исправить?

     

    dinput.ini CodePage =65001 на CodePage =-1  вроде помогло...

    431.jpg

  7. Всем привет. искал плеер который будит играть музычку которая у вас в папке BGM в итоге написал свою версию...

    после окончания музыки , оригинальный трек начинает играть :)

    prontera,164,171,3    script    Music Player    857,{
    set @payitem,25112;  // add your own item
    set @payamt,1;  // ammount items will cost

     


        mes "[Music Player]";
        mes "I can play different songs";
        mes "You must have your Music and Sounds ON to hear it.";
        next;
        if((countitem(@payitem)<@payamt)) goto case_exit;
        mes "[Music Player]";
        mes "What Song Would you like to play?";
        mes "Each Track will cost you 1 Donation coin, even if its already ON.";   // add your own text
        switch(select("Track 1:Track 2:Track 3:Track 4:Track 5:Track 6:Track 7:Track 8:Track 9:None")) {
        case 1:
        delitem @payitem,@payamt;
            playBGMall "89","prontera"; // 89 is the name of the song in your BGM folder. // prontera is the town where it will play
            close;
        case 2:
        delitem @payitem,@payamt;
            playBGMall "130","prontera";
            close;
        case 3:
        delitem @payitem,@payamt;
            playBGMall "5010","prontera";
            close;
        case 4:
        delitem @payitem,@payamt;
            playBGMall "haunted","prontera";
            close;
        case 5:
        delitem @payitem,@payamt;
            playBGMall "105","prontera";
            close;
        case 6:
        delitem @payitem,@payamt;
            playBGMall "103","prontera";
            close;
        case 7:
        delitem @payitem,@payamt;
            playBGMall "102","prontera";
            close;
        case 8:
        delitem @payitem,@payamt;
            playBGMall "107","prontera";
            close;
        case 9:
        delitem @payitem,@payamt;
            playBGMall "129","prontera";
            close;
        case 10:
            mes "[Music Player]";
            mes "Okay Bye Cya Later";
            close;
            
        case_exit:
        mes "[Music Player]";
        mes "You need 1 Donation Coin per song.";  // add your own text
        mes "Come back when you have it.";
        close;
        }
    }


  8. Подскажите как исправить ошибку , когда посылаю запрос recovery Password он посылает на почту ссылку , тыкните чтобы обресетить пароль, но как только перехожу по ссылке он ничего не загружает..

    как исправить?

    Решение:

    application.php

    'ServerAddress'        => 'http://yourwebpage.com',   нужно было убрать http://

    • Upvote 1
  9. Господа, нужна помощ, есть готовый ехе, принцепи его настройки меня устраивают, кроме одной, тряска экрана , попытался прохексить , но не то вышло убрался спрайт ГМа а тряска осталась, снова продифать не вариант, я уже не помню какие настройки ставил на ехе, профаила не осталось..., возможно ли открыть готовый ехе и посмотреть какие галочки были расставлены? пробовал через NEMO там все настройки сброшены...

    дифалось вот тут

    пробовал хексить вот так

    Заменял это

    84 C0 0F 84 63 01 00 00

    на вот это

    90 90 E9 64 01 00 00 90

    в итоге не получилось... помогите

  10. Всем доброй ночи, доспода столкнулся вот стакой проблемой.

    Есть мвп ранк который посути работает,

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

    Проблема решена!! Кривые ручки забыли нажать в базе данных на базу а потом в sql ! сразу тыкалось на SQL ошибка нуба... тему можно закрывать.


    Вот нпц.

    Цитата

     

    -    script    Rank MvP    -1,{
    OnInit:

    setarray .mobid[0],1511,1647,1785,1630,1399,1039,1874,2068,1272,1719,1046,1389,1112,1115,1957,1418,1492,1871,1252,1768,1086,1688,1646,
                                    1373,1147,1059,1150,1956,2022,1087,1190,1038,1157,1159,1502,1623,1650,1583,1708,1312,1751,1685,1648,1917,1658,1832,1885,1916;
    set .a, 1;
    set $@top, 10;
    end;

    OnNPCKillEvent:
    for (set .@c, 0; .@c < getarraysize(.mobid); set .@c, .@c + 1)
        if (killedrid == .mobid[.@c])
            set .@s, 1; // If a MvP
    if (!.@s) end;
    if (.a)
    //    announce "Player [" +strcharinfo(0) +"] Killed [" +getmonsterinfo(killedrid,0) +"]",bc_Blue|bc_all;
    set MvP, MvP + 1;
    set .@new_mvp_killer, .@new_mvp_killer + 1;
    set .@Kill1erName$, strcharinfo(0);
    //query_sql "UPDATE `char` SET mvprat="+.@new_mvp_killer+" WHERE name='"+.@Kill1erName$+"'";
    callfunc ("MvPRank",MvP,strcharinfo(0));
    end;
    }
    prontera,161,169,3    script    MvP Rank    999,{


    mes "[^FF0000MvP ^0000FFRank ^00FF00Top ^FF0000" +$@top +"^000000]";
    for (set .@c, 0; .@c < $@top; set .@c, .@c + 1)
        mes "^FF0000" +(.@c + 1) +"^000000.^0000FF" +getd("$topmvp" +.@c +"$") +"^000000-Kill ^FF0000" +getd("$topmvp" +.@c) +"^000000 MvP.";
    close;
    }


    function    script    MvPRank    {
    set @mvptotal, getarg(0);
    set @nomb$, getarg(1);
    for (set .@c, 0; .@c < $@top; set .@c, .@c + 1) {
        if (@mvptotal >= getd("$topmvp" +.@c)) {
            if (strcharinfo(0) == getd("$topmvp" +.@c +"$")) {
                setd "$topmvp" +.@c, @mvptotal;
                setd "$topmvp" +.@c +"$", @nomb$;
                return;
            } else {
                    if (getd("$topmvp" +(.@c + 1) +"$") == "") {
                    setd "$topmvp" +.@c, @mvptotal;
                    setd "$topmvp" +.@c +"$", @nomb$;
                    return;
                } else {
                    setd "$topmvp" +(.@c + 1), getd("$topmvp" +.@c);
                    setd "$topmvp" +(.@c + 1) +"$", getd("$topmvp"+.@c+"$");
                    setd "$topmvp" +.@c, @mvptotal;
                    setd "$topmvp" +.@c +"$", @nomb$;
                    return;
                }
            }
        }
    }
    return;
    }  

     

     

     

    вот дополнительный нпц который делает ресет ранка , после нажатия на нпц, он сбрасывает настройки в самом нпц по нулям, но если снова убить мвп, то вместо 1 мвп он пишет уже на +1 больше того количества что было до сброса

     

    Цитата

     

    prontera,155,181,5    script    Sample    757,{
    for(set .@c, 0; .@c < $@top; set .@c, .@c+1) {
        setd "$topmvp" + .@c, 0;
        setd "$topmvp" + .@c + "$", "";
    }
    dispbottom "MVP Rank has been Reset.";
    end;
    }

     

     

     

    В самой базе заменял вот это, не помогло

     

    Цитата

     

    DROP TABLE IF EXISTS `ea`.`mvplog`;
    CREATE TABLE IF NOT EXISTS `mvplog` (
      `char_id` int(11) unsigned NOT NULL default '0',
      `str` varchar(255) NOT NULL default '',
      `value` varchar(255) NOT NULL default '0',
      `type` tinyint(1) NOT NULL default '3',
      `account_id` int(11) unsigned NOT NULL default '0',
      PRIMARY KEY  (`char_id`,`str`,`account_id`),
      KEY `account_id` (`account_id`)
    ) ENGINE=MyISAM;

    DROP TABLE IF EXISTS `ea`.`global_reg_value`;
    CREATE TABLE IF NOT EXISTS `global_reg_value` (
      `char_id` int(11) unsigned NOT NULL default '0',
      `str` varchar(255) NOT NULL default '',
      `value` varchar(255) NOT NULL default '0',
      `type` tinyint(1) NOT NULL default '3',
      `account_id` int(11) unsigned NOT NULL default '0',
      PRIMARY KEY  (`char_id`,`str`,`account_id`),
      KEY `account_id` (`account_id`)
    ) ENGINE=MyISAM;

     

     

     

  11. Подарите рабочего нпц Мвп рейтинг за плюсик

    Что то типо этого??

    - script Rank MvP -1,{

    OnInit:

    setarray .mobid[0],1511,1647,1785,1630,1399,1039,1874,2068,1272,1719,1046,1389,1112,1115,1957,1418,1492,1871,1252,1768,1086,1688,1646,

    1373,1147,1059,1150,1956,2022,1087,1190,1038,1157,1159,1502,1623,1650,1583,1708,1312,1751,1685,1648,1917,1658,1832,1885,1916; // мвп

    set .a, 1;

    set $@top, 10;

    end;

    OnNPCKillEvent:

    for (set .@c, 0; .@c < getarraysize(.mobid); set .@c, .@c + 1)

    if (killedrid == .mobid[.@c])

    set .@s, 1; // If a MvP

    if (!.@s) end;

    if (.a)

    announce "Player [" +strcharinfo(0) +"] Killed [" +getmonsterinfo(killedrid,0) +"]",bc_Blue|bc_all; // закоменть если не хочешь чтобы весь мир видел какого мвп убил определённый игрок.

    set MvP, MvP + 1;

    set .@new_mvp_killer, .@new_mvp_killer + 1;

    set .@Kill1erName$, strcharinfo(0);

    //query_sql "UPDATE `char` SET mvprat="+.@new_mvp_killer+" WHERE name='"+.@Kill1erName$+"'";

    callfunc ("MvPRank",MvP,strcharinfo(0));

    end;

    }

    prontera,161,169,3 script MvP Rank 999,{ // выстави свои кординаты

    mes "[^FF0000MvP ^0000FFRank ^00FF00Top ^FF0000" +$@top +"^000000]";

    for (set .@c, 0; .@c < $@top; set .@c, .@c + 1)

    mes "^FF0000" +(.@c + 1) +"^000000.^0000FF" +getd("$topmvp" +.@c +"$") +"^000000-Kill ^FF0000" +getd("$topmvp" +.@c) +"^000000 MvP.";

    close;

    }

    function script MvPRank {

    set @mvptotal, getarg(0);

    set @nomb$, getarg(1);

    for (set .@c, 0; .@c < $@top; set .@c, .@c + 1) {

    if (@mvptotal >= getd("$topmvp" +.@c)) {

    if (strcharinfo(0) == getd("$topmvp" +.@c +"$")) {

    setd "$topmvp" +.@c, @mvptotal;

    setd "$topmvp" +.@c +"$", @nomb$;

    return;

    } else {

    if (getd("$topmvp" +(.@c + 1) +"$") == "") {

    setd "$topmvp" +.@c, @mvptotal;

    setd "$topmvp" +.@c +"$", @nomb$;

    return;

    } else {

    setd "$topmvp" +(.@c + 1), getd("$topmvp" +.@c);

    setd "$topmvp" +(.@c + 1) +"$", getd("$topmvp"+.@c+"$");

    setd "$topmvp" +.@c, @mvptotal;

    setd "$topmvp" +.@c +"$", @nomb$;

    return;

    }

    }

    }

    }

    return;

    }

  12. Открываем ../src/map/guild.c и в функции guild_broken после:


    sd->status.guild_id = 0;

    добавляем:


    sd->state.gmaster_flag = 0;

    Сохраняем изменение и компилируем сервер.

    У вас есть скайп?

    Есть. По какому вопросу хотели обратится?

    Если за помощью, то я ее оказываю только на форуме.

    Если нет, то напишите в PM.

    Functor очередной низкий поклон вам! вы выручаете всегда! быстро и качественно :)

  13. если я правильно сделал дебаггинг то вот скрин

    Неправильно. Выкладывайте эмуль. Как появится свободное время, гляну.

    Спасибо огромное, скинул в приват.

    У вас есть скайп?

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