Апгрейд для поринг катчера

Тема в разделе "Предложения по работе сервера", создана пользователем Elmiria, 4 дек 2009.

  1. Elmiria

    Elmiria Helpers Team

    Когда понимаешь, что и как - мозг не спекается, тем более я на программюгу учусь, мне полезно мозг по напрягать. Как ты мог понять из предыдущих моих постов - скрипт почти закончен, то есть как буду лома обмозгую все еще раз и придумаю, как воплотить пару штук в скрипте или заменить на другие, но чтоб получить то, что я хочу.

    В общем я так понимаю тут нет никого, кто понимает скрипты, в таком случае, придется работать только своей головой. Бросить эту затею? Фигушки, если Егор одобрит, будет кавай =)
     
  2. bannedstatue

    bannedstatue New Member

    Ну, я немножко разбираюсь. Но я так, начинающий скриптер)) На данный момент я написал только 2 скрипта: шляпник и стилист)) Так а что тебе не удалось воплотить? мб смогу помочь))
    З.Ы. Шляпника могу скинуть если надо, но он делан под лоу рейт, так что надо поставить лут на шапки ~ в 10 раз больше.
    На данный момент шапки и лут таковы:
     
  3. Elmiria

    Elmiria Helpers Team

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

    Мне нужна проверка имени поринга, если он назван скриптом, у меня выдает значение 0. Если не получится Взять имя, то нужно думать над другим способом реализации, например присваивания каждому именованому порингу и его Именному"владельцу" номер и через номер поринга кикать владельца или давать ему пк. Или через Массивы, блин можно циклом, но я фиг знает еще как, все эти идеи работать не будут(потому что бред это), чувство скрипта у меня уже появилось, и нет альтернативы пока( В общем большой стопор, пока умные люди не подскажут хоть что нибудь подходящее...
     
  4. bannedstatue

    bannedstatue New Member

    это был оффтоп в постскриптуме. просто про шляпникак помнится тему создавали, вот и написал))

    Ну, попробую покаопать, мб чего и найду...
     
  5. Elmiria

    Elmiria Helpers Team

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

    strcharinfo(0)==strmobinfo(0,1002)


    Вроде так. Может вместо 0 другое поставить, но я уже многое перепробовала, 0 выводит и все тут( Надо немного поновому придумать эту проверку на имя чара==имя поринга... но как... ладно мож придумаю чего.



    Тут половина шапок из шопа ...
     
  6. bannedstatue

    bannedstatue New Member

    Не суть) Щас не об этом)) Жду скрипта...
     
  7. Elmiria

    Elmiria Helpers Team

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

    Elmiria Helpers Team

    Код:
    
    //pvp_n_1-1    mapflag    nopvp
    //pvp_y_8-1    mapflag    nopvp
    
    pvp_n_1-1    mapflag    noskill
    pvp_y_8-1    mapflag    noskill
    pvp_y_8-1    mapflag    nosave    SavePoint
    pvp_n_1-1    mapflag    nosave    SavePoint
    pvp_y_8-1    mapflag    pvp    off
    pvp_n_1-1    mapflag    pvp    off
    pvp_y_8-1    mapflag    nopenalty
    pvp_n_1-1    mapflag    nopenalty
    pvp_y_8-1    mapflag    nomemo
    pvp_n_1-1    mapflag    nomemo
    pvp_y_8-1    mapflag    noloot
    pvp_n_1-1    mapflag    noloot
    pvp_y_8-1    mapflag    noexp
    pvp_n_1-1    mapflag    noexp
    pvp_y_8-1    mapflag    nobranch
    pvp_n_1-1    mapflag    nobranch
    pvp_y_8-1    mapflag    noteleport
    pvp_n_1-1    mapflag    noteleport
    
    prontera,1,1,0    script    Event_warper    -1,{
    
    //OnClock <2><00>:
    
    
    OnInit:
    
    
    //while(1)
    
        initnpctimer;
        setnpctimer 0;
        //donpcevent "#Event_warp::OnHide";
        disablenpc "#Event_warp";
        disablenpc "#Event_warp2";
        end;
    OnTimer1000:
        announce " 1",16;
        end;
    
    OnTimer5000:
        announce "2",16;
        end;
    
    OnTimer10000:
        announce "3",16;
        end;
    
    OnTimer15000:
        announce  "4.",16;
        end;
    
    OnTimer20000:
        set $@event,1;
        enablenpc "#Event_warp";
        donpcevent "#Event_warp::OnUnhide";
        announce "Варп открыт на 15 секунд. Спешите!",16;
        end;
    
    OnTimer35000:
        set $@event,0;
        donpcevent "#Event_warp::OnHide";
        disablenpc "#Event_warp";
        end;
    
    OnTimer36000:
        set $@event,2;
        enablenpc "#Event_warp2";
        donpcevent "#Event_warp2::OnUnhide";
        mapannounce "pvp_n_1-1","Варп открыт на 15 секунд. Спешите!",bc_map;
        end;
    
    OnTimer51000:
        set $@event,0;
        donpcevent "#Event_warp2::OnHide";
        disablenpc "#Event_warp2";
        end;
    
    
    
    //}
    //pvp_y_8-1,1,1,0    script    Event#summoner    -1,{
        //initnpctimer;
    
        set $PoringMastKilled, mobcount("pvp_y_8-1","Event_warper::OnRealPoringDead");
    
    OnTimer52000:
        mapannounce "pvp_y_8-1","Обьявление правил игры",bc_map;
        end;
    OnTimer57000:
        mapannounce "pvp_y_8-1","Обьявление правил игры2",bc_map;
        end;
    OnTimer62000:
        mapannounce "pvp_y_8-1","Обьявление правил игры3",bc_map;
        end;
    OnTimer67000:
        mapannounce "pvp_y_8-1","Все понятно? Тогда начинаем!",bc_map;
        end;
    OnTimer68000:
    
        monster "pvp_y_8-1",0,0,"Pori Pori Pori",1002,1000,"Event_warper::OnFakePoringDead";
        monster "pvp_y_8-1",0,0,"Poring",1002,1000,"Event_warper::OnRealPoringDead";
        //monster "pvp_y_8-1",0,0,@strcharinfo,1002,1000,"Event_warper::OnNamedPoringDead";    
        end;
    
    //announce "Hey, "+strcharinfo(0)+" just killed a Poring!",bc_blue|bc_all;
    
    
    
    
    
    
    OnTimer90000:
        mapannounce "pvp_y_8-1","Время вышло!",bc_map;
        end;
    OnTimer99000:
        mapannounce "pvp_y_8-1","Надеюсь Вам было весело! Приходите ещё!",bc_map;
        end;
    OnTimer100000:
        areawarp "pvp_y_8-1",1,1,255,255,"prontera",156,189;
        end;
    OnTimer102000:
        killmonsterall "pvp_y_8-1";
        end;
    OnTimer103000:
        stopnpctimer;
        end;
    
    
    OnFakePoringDead:
        percentheal -5,0;
        end;
    OnNamedPoringDead:
        getitem 7538,1;
    //    mapannounce "pvp_y_8-1","Hey, "+strcharinfo(0)+" just killed "+strmobinfo(OnNamedPoringDead,1002)+" Poring!",bc_blue|bc_all;
        
            if("strcharinfo(0)"=="strnpcinfo(0)")
            {
                getitem 7539,1;
                mapannounce "pvp_y_8-1","Hey, "+strcharinfo(0)+" just killed a Self Poring!",bc_blue|bc_all;    
            }
            else
            {
                mapannounce "pvp_y_8-1","Hey, "+strcharinfo(0)+" just "+strnpcinfo(0)+" killed a "+strmobinfo(2,1002)+" Canny! ",bc_blue|bc_all;
    //            warp "prontera",156,189;
            }
            end;
        end;
    
    OnRealPoringDead:
        getitem 7539,1;
        mapannounce "pvp_y_8-1","Hey, "+strcharinfo(0)+" just killed a Poring!",bc_blue|bc_all;
         set $PoringKilled,$PoringKilled+1;
                if ($PoringKilled==$PoringMastKilled) areawarp "pvp_y_8-1",1,1,255,255,"prontera",156,189;
        end;
    }
    
    
    prontera,165,167,0    script    #Event_warp    45,2,2,{
    OnInit:
    OnTouch:
        if($@event==1)warp "pvp_n_1-1",17,130;
        end;
    OnHide:
        misceffect 16;
        end;
    OnUnhide:
        misceffect 215;
        end;
    }
    
    pvp_n_1-1,13,188,0    script    #Event_warp2    45,2,2,{
    OnInit:
    OnTouch:
        if($@event==2)warp "pvp_y_8-1",156,189;
        monster "pvp_y_8-1",0,0,strcharinfo(0),1002,1000,"Event_warper::OnNamedPoringDead";
        end;
    OnHide:
        misceffect 16;
        end;
    OnUnhide:
        misceffect 215;
        end;
    }
    
    
    
    

    Вот скриптик самый работоспособный. И пока,конечно, пустой))
     
  9. Elmiria

    Elmiria Helpers Team

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

    Вот добралась до дома, но приатачить чара не очень получилось, да и не очень понятно к чему он атаччится. Вот если понять как связать друг с другом моба и чара проблем будет меньше...
     
  10. Elmiria

    Elmiria Helpers Team

     Что, думаете забила я на этого поринга? А фиг вам)))) Я потихоньку продвигаюсь, и прошлая ночь была очень удачной для скрипта. Теперь он работает 100%, но только для 1 чара)) Просто не могу я приатачить чара, ну фз как это делается, еслиб смогла - перешла бы на другой тип переменных и все было б ок) Вот - Выкладываю свой нубский скриптик)))

    Код:
    
    
    //-----------------------------------------------------------------------------------------------------------------------------------------------
    //-----------------------------------------------------------------------------------------------------------------------------------------------
    
    pvp_n_1-1    mapflag    noskill
    pvp_y_8-1    mapflag    noskill
    pvp_y_8-1    mapflag    nosave    SavePoint
    pvp_n_1-1    mapflag    nosave    SavePoint
    pvp_y_8-1    mapflag    pvp    off
    pvp_n_1-1    mapflag    pvp    off
    pvp_y_8-1    mapflag    nopenalty
    pvp_n_1-1    mapflag    nopenalty
    pvp_y_8-1    mapflag    nomemo
    pvp_n_1-1    mapflag    nomemo
    pvp_y_8-1    mapflag    noloot
    pvp_n_1-1    mapflag    noloot
    pvp_y_8-1    mapflag    noexp
    pvp_n_1-1    mapflag    noexp
    pvp_y_8-1    mapflag    nobranch
    pvp_n_1-1    mapflag    nobranch
    pvp_y_8-1    mapflag    noteleport
    pvp_n_1-1    mapflag    noteleport
    
    //-----------------------------------------------------------------------------------------------------------------------------------------------
    //-----------------------------------------------------------------------------------------------------------------------------------------------
    
    prontera,165,167,0    script    #Event_warp    45,2,2,{
    
    //OnInit:
    OnTouch:
        if($@event==1)warp "pvp_n_1-1",17,130;
        end;
    OnHide:
        misceffect 16;
        end;
    OnUnhide:
        misceffect 215;
        end;
    }
    
    
    
    //-----------------------------------------------------------------------------------------------------------------------------------------------
    //-----------------------------------------------------------------------------------------------------------------------------------------------
    
    
    
    pvp_n_1-1,13,188,0    script    #Event_warp2    45,2,2,{
    
        //set .@namedporing$,StrCharInfo(0);
        //GetChaRid(0,.bot$))
        //attachrid(getcharid(0,.@namedporing$));
        //DoNPCEvent "Event_warper::OnPlayerIsAttached";
    
    
    //OnInit:
        //monster "pvp_y_8-1",0,0,strcharinfo(0),1002,1000,"Event_warper::OnNamedPoringDead";
        //end;
        
    OnTouch:
        
        //monster "pvp_y_8-1",0,0,strcharinfo(0),1002,1000,"Event_warper::OnNamedPoringDead";
        if($@event==2)warp "pvp_y_8-1",156,189;
        set $@namedporing$,StrCharInfo(0);
        DoNPCEvent "Event_warper::OnPlayerIsAttached";
                //getcharid(0);
                //set @crarid==getcharid(0),"strcharinfo";
                //mobcount("pvp_y_8-1","Event_warper::OnNamedPoringDead");
    
                //monster "pvp_y_8-1",0,0,playerattached(),1002,1000,"Event_warper::OnNamedPoringDead";
                //monster "pvp_y_8-1",0,0,getcharid(0),1002,1000,"Event_warper::OnNamedPoringDead";
        end;
    OnHide:
        misceffect 16;
        end;
    OnUnhide:
        misceffect 215;
        end;
    }
    
    
    //-----------------------------------------------------------------------------------------------------------------------------------------------
    //-----------------------------------------------------------------------------------------------------------------------------------------------
    
    
    
    
    
    prontera,1,1,0    script    Event_warper    -1,{
    
    //set @namenumber,0;
    
    
    //OnClock <2><00>:
    
    //set .@namedporing$,StrCharInfo(0);
    
    //set .gm$,strcharinfo(0);
    OnInit:
    
    
    //while(1)
    
        initnpctimer;
        setnpctimer 0;
        //donpcevent "#Event_warp::OnHide";
        disablenpc "#Event_warp";
        disablenpc "#Event_warp2";
        end;
    OnTimer1000:
        announce " 1",16;
        end;
    
    OnTimer5000:
        announce "2",16;
        end;
    
    OnTimer10000:
        announce "3",16;
        end;
    
    OnTimer15000:
        announce  "4.",16;
        end;
    
    OnTimer20000:
        set $@event,1;
        enablenpc "#Event_warp";
        donpcevent "#Event_warp::OnUnhide";
        announce "Варп открыт на 15 секунд. Спешите!",16;
        end;
    
    OnTimer35000:
        set $@event,0;
        donpcevent "#Event_warp::OnHide";
        disablenpc "#Event_warp";
        end;
    
    OnTimer36000:
        set $@event,2;
        enablenpc "#Event_warp2";
        donpcevent "#Event_warp2::OnUnhide";
        mapannounce "pvp_n_1-1","Варп открыт на 15 секунд. Спешите!",bc_map;
        end;
    
    OnTimer51000:
        set $@event,0;
        donpcevent "#Event_warp2::OnHide";
        disablenpc "#Event_warp2";
        end;
    
    
    
    //}
    //pvp_y_8-1,1,1,0    script    Event#summoner    -1,{
        //initnpctimer;
    
        //set $PoringMastKilled, mobcount("pvp_y_8-1","Event_warper::OnRealPoringDead");
    
    OnTimer52000:
        mapannounce "pvp_y_8-1","Обьявление правил игры",bc_map;
        end;
    OnTimer57000:
        mapannounce "pvp_y_8-1","Обьявление правил игры2",bc_map;
        end;
    OnTimer62000:
        mapannounce "pvp_y_8-1","Обьявление правил игры3",bc_map;
        end;
    OnTimer67000:
        mapannounce "pvp_y_8-1","Все понятно? Тогда начинаем!",bc_map;
        end;
    OnTimer68000:
    
        monster "pvp_y_8-1",0,0,"Pori Pori Pori",1002,1000,"Event_warper::OnFakePoringDead";
        monster "pvp_y_8-1",0,0,"Poring",1002,1000,"Event_warper::OnRealPoringDead";
        //monster "pvp_y_8-1",0,0,@strcharinfo,1002,1000,"Event_warper::OnNamedPoringDead";    
        end;
    
    //announce "Hey, "+strcharinfo(0)+" just killed a Poring!",bc_blue|bc_all;
    
    
    OnTimer90000:
        mapannounce "pvp_y_8-1","Время вышло!",bc_map;
        end;
    OnTimer99000:
        mapannounce "pvp_y_8-1","Надеюсь Вам было весело! Приходите ещё!",bc_map;
        end;
    OnTimer100000:
        areawarp "pvp_y_8-1",1,1,255,255,"prontera",156,189;
        end;
    OnTimer102000:
        killmonsterall "pvp_y_8-1";
        end;
    OnTimer103000:
        stopnpctimer;
        end;
    
    
    OnFakePoringDead:
        percentheal -5,0;
        end;
    
    OnNamedPoringDead:
        getitem 7538,1;
            //mapannounce "pvp_y_8-1","Hey, "+strcharinfo(0)+" just killed "+strmobinfo(OnNamedPoringDead,1002)+" Poring!",bc_blue|bc_all;
        
            if($@namedporing$==strcharinfo(0)) {
                getitem 7539,1;
                mapannounce "pvp_y_8-1","Hey, "+strcharinfo(0)+" just killed a Self Poring!",bc_blue|bc_all;    
            }
            else {
                mapannounce "pvp_y_8-1","Hey, "+strcharinfo(0)+" just "+$@namedporing$+" killed a "+strmobinfo(2,1002)+" Canny! ",bc_blue|bc_all;
                //warp "prontera",156,189;
                warpchar "prontera",156,189,GetChaRid(0,$@namedporing$);
                end;
            }
        end;
    
    OnRealPoringDead:
        getitem 7539,1;
        mapannounce "pvp_y_8-1","Hey, "+strcharinfo(0)+" just killed a Poring!",bc_blue|bc_all;
        set $PoringKilled,$PoringKilled+1;
        if ($PoringKilled==mobcount("pvp_y_8-1","Event_warper::OnRealPoringDead")) areawarp "pvp_y_8-1",1,1,255,255,"prontera",156,189;
        end;
    
    OnPlayerIsAttached:
        
            //setarray @charnames$[0],"$@namedporing{:content:}quot;;
        AttachRid (GetChaRid(0,@namedporing$));
            //set $@namedporing$,StrCharInfo(0);
            //set @namenumber,@namenumber+1;
        monster "pvp_y_8-1",0,0,$@namedporing$,1002,1000,"Event_warper::OnNamedPoringDead";
    
    
        end;
    
    }
    
    //-----------------------------------------------------------------------------------------------------------------------------------------------
    //-----------------------------------------------------------------------------------------------------------------------------------------------
    
    
    
    Забыла проверить варпает ли хоть кого-нить после последней правки, но сейчас это не существенно, поэтому займусь этим позже.

    Поползала по афине, почитала посты Акруса, почувствовала себя так глупо... зачем я стараюсь, Егор все и сам в 1000 раз круче сделает, а мя так и будет игнорить... ну не ужели действительно все впустую?  :cry:  
     
  11. Elmiria

    Elmiria Helpers Team

    Кароче к Новому году вряд ли успею( У меня еще 4 контрольных висит и сдать их надо на этой недели(((

    Вчера верерком чуток повозилась с переменными и получила одну переменную оторая в себя 2 имени вписала и проверки для 2х(ну возможно и больее) чаров прошла)))))я офигиваю над афинскими скриптами))

    Лан, я ведь даж не знаю можно ли не создавая кучи переменных(для каждого чара) сделать этот скрипт рабочим..... ладно, идеи пока есть, но всеж от помощи я не откажусь, может все таки есть умные люди, которым не влом пару слов написать....
     
  12. DemoH

    DemoH New Member

    Не очень понял суть эвента, но впринцепе могу попробовать написать.
     
  13. Elmiria

    Elmiria Helpers Team

    Скрипт почти готов.

    Проблема 1

    присвоить порингу имя игрока(это просто) чтобы потом можно было это имя сравнить с именем игрока(вот тут проблемы)

    Хм, а собственно все) Только без массивов, у них все же лимит на 127 хначений, маловато будет(хотя смотря как реализуешь)

    Если придумаешь как обойти эту проблему, будет тру, я с переменными еще не подружилась. Остальное все есть.
     
  14. DemoH

    DemoH New Member

    если я правильно понял, то может тебе поможет setd, циклом каждому игроку создать массив?
     
  15. Elmiria

    Elmiria Helpers Team

    зачем? мне нужно прикрепить к порингу имя через переменную а не через strcharinfo(0) но чтобы эта переменная неперезаписывалась, в ней было имя ТОЛЬКО 1 игрока, чтобы сравнить ее с strcharinfo(0) игрока убившего этого поринга.

    про сетд думала, в скором времени попробую с ней повозиться.
     
  16. DemoH

    DemoH New Member

    вот например массив участников
    set $@char$[getarraysize($@char$)],strcharinfo(0);

    далее к конкретному игроку(позиция в массиве) делаем массив


    for(set .i,0;.i<getarraysize($@char$);set .i, .i+1){
    setd "$@"+.i+"$",...;
    записываем в этот массив нужных порингов

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


    }

    сравнение
    OnKillMob:     // название лейбла
    ну и тут сравнение с нужным массивом
    end;





    если неправильно понял извеняйте   :rolleyes:
     
  17. Elmiria

    Elmiria Helpers Team

    в массиве 127 элементов всего. Тем более зачем, если поринг 1 на каждого игрока??? Нужна всего 1 переменная, но как я понимаю совсем не глобальная. с глобальной у меня не прокатило.
     
  18. DemoH

    DemoH New Member

    А зачем тогда 1к порингов? 1 на каждого чара, остальные левые?

    Также у меня вопрос, если у каждого чара по 1 порингу(я так понял у них будут имена такие же как у чаров), у остальных порингов имена будут просто poring?
     
  19. Elmiria

    Elmiria Helpers Team

    1000 левых порингов, похожие имена на поринг

    N порингов с именем поринг

    N порингов именных   (N- количество игроков)

    На каждом из этих поригнов вистит лейбл он моб дед в вариациях. Со всеми обычными понингами  разобралась.

    Но на именных лежит ответсявенность варпнуть игрока с другим именем в пронту, а игроку с таким же именем дать вкусняшку, от сюда и идет проверка имя поринга==имени игрока, который его пришиб.

    Которая у меня не получается. У мяня либо последний чар собирает со всех порингов вкусняшки, а остальным фиг; Либо все чары собирают со всех порингов вкусняшки)) А надо не так((
     
  20. Elmiria

    Elmiria Helpers Team

    а как ты поринга в массив загонишь оО
     

Поделиться этой страницей