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

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

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

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

5211.gif
5211 - Maiden Hat [1]
(DEF +2. MDEF +7. STR +1. INT +1. ATK +2%. MATK +2%. Эффективность от Heal +5%. При заточке на +7 и выше добавляются +1% к АТК, МАТК, эффективности Heal.

30 - Rose Quartz - 7293
1 - Magican Hat - 5045
1 - Big Ribbon - 2244
1 - Joker Card - 4139
10.000.000 zeny
________________________________

5286.gif
5286 - Peco Peco Hairband
(DEF +3. Увеличивает скорость передвижения на 25%. Увеличивает скорость атаки на 5%. Увеличивает время каста на 25%)

1000 - Peco Peco Feather - 7101
1 - Peco Peco Card - 4031
1 - Peco Peco Egg Card - 4007
1 - Grand Peco Card - 4161
1 - Joker Card - 4139
10.000.000 zeny
________________________________

5138.gif
5138 - Magic Eyes
(DEF +1. MDEF +5. Уменьшает время каста 10%. Увеличивает затрату SP на скилы на 20%.)
Applicable Job: Mage Class, Soul Linker.

10 - Cat's Eye - 7263
1 - Eye of Hellion - 7337
1 - Wizard Hat - 2252
1 - Bathory Card - 4119
1 - Joker Card - 4139
10.000.000 zeny
________________________________

5389.gif
5389 - Angel of Ghost
(HIT +15. STR +2)

100 - Soft Feather - 7063
1 - Angel Glasses - 2276
1 - Angel Wing Ears - 5074
1 - Joker Card - 4139
10.000.000 zeny
________________________________

5288.gif
5288 - Red Glasses [1]
(DEF +1. INT +1.)

10 - Scarlet Dyestuff - 975
1 - Sunglasses [] - 2202
1 - Elder Willow Card - 4052
1 - Joker Card - 4139
10.000.000 zeny
________________________________

5361.gif
5361 - Ganster Scarf
(ATK +5.)

200 - Red Muffler - 7216
1 - Red Scarf - 10019
1 - Joker Card - 4139
10.000.000 zeny
________________________________

5181.gif
5181 - Helm of Darkness [1]
(DEF +3. STR +2.)
Applicable Job: Swordman Class, Thief Class, Merchant Class.

200 - Darkness Rune - 7511
1 - Joker Card - 4139
5.000.000 zeny

________________________________

5282.gif
5282 - Europe Baseball Cap [1]
(DEF +3.)

100 - Blue Hair - 1034
1 - Joker Card - 4139
5.000.000 zeny
________________________________

5257.gif
5257 - Soul Ring
(DEF +2. MDEF +2. Шанс 1% автокаста Level 1 Assumptio, когда игрок получает физический урон.)
Applicable Job: Every Job Except Novice.

1 - Gold - 969
1 - Halo - 2282
1 - Joker Card - 4139
5.000.000 zeny
________________________________

5188.gif
5188 - Wandering Minstrel Hat [1]
(DEF +2. DEX +3. INT +1.)

1 - Ulle's Cap [1] - 5123
1 - Darkgreen Dyestuff - 979
1 - Joker Card - 4139
5.000.000 zeny
 
это то тут причем, шляпник - болтающий нпс, а мне они наф не нужны пока, не в этом загвоздка. 

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

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

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


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



это был оффтоп в постскриптуме. просто про шляпникак помнится тему создавали, вот и написал))
Тут половина шапок из шопа ...
 
Сегодня точно не будет последней версии скрипта, только без этой проверки есть, поэтому или завтра или в ближайшее время. Или если в городе буду, то попробую написать эту часть заново.
 
Код:
//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;
}


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

Вот добралась до дома, но приатачить чара не очень получилось, да и не очень понятно к чему он атаччится. Вот если понять как связать друг с другом моба и чара проблем будет меньше...
 
 Что, думаете забила я на этого поринга? А фиг вам)))) Я потихоньку продвигаюсь, и прошлая ночь была очень удачной для скрипта. Теперь он работает 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:  
 
Кароче к Новому году вряд ли успею( У меня еще 4 контрольных висит и сдать их надо на этой недели(((

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

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

Проблема 1

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

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

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

про сетд думала, в скором времени попробую с ней повозиться.
 
вот например массив участников
set $@char$[getarraysize($@char$)],strcharinfo(0);

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


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

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


}

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





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

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

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

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

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

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

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