Jump to content

Break

Members
  • Posts

    158
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Break

  1. Ещё раз - что? )

    На примере объясни.

    Что тут непонятного? Распределение игроков на карте идёт по ровну в две пати, если же игроков нечетное кол-во, то один всегда остаётся без пати... Допустим на карте 5 человек, из них 4 распределяет по 2 человека в каждую пати и 1 в пролёте получается =/

  2. Дело в том, что когда нечетное кол-во игроков на карте, то разделение идет между четным кол-вом, а нечетный остается в центре карты не попадая ни в одну из пати, что в таком случае нужно сделать?

    function script nashest36 {
    mapusersid("pvp_n_1-5");
    leaveparty($@mapusersid[0],getarraysize($@mapusersid));
    set $@sns_member,(getmapusers("pvp_n_1-5")/2);
    copyarray $@sns_group1[0],$@mapusersid[0],$@sns_member;
    copyarray $@sns_group2[0],$@mapusersid[$@sns_member],$@sns_member;
    
    sleep 2000;
    
    set $@random,rand(1,100);
    createparty("Blue "+$@random,$@sns_group1);
    set $@sns_pt1,getarraysize($@sns_group1);
    createparty("Red "+$@random,$@sns_group2);
    set $@sns_pt2,getarraysize($@sns_group2);
    
    sleep 2000;
    
    if(getmapusers("pvp_n_1-5")>2 && getmapusers("pvp_n_1-5")<4) {
    inviteparty($@sns_group2[0],$@sns_member);}
    
    else if (getmapusers("pvp_n_1-5")>3) {
    inviteparty($@sns_group1[0],$@sns_member);
    inviteparty($@sns_group2[0],$@sns_member);}
    
    for (set .i, 0; .i < $@sns_member; set .i, .i+1) {
    warpchar "pvp_n_1-5",66,100,$@sns_group1[.i];
    warpchar "pvp_n_1-5",136,100,$@sns_group2[.i];}
    pvpon "pvp_n_1-5";
    }
    
    pvp_n_1-5,99,103,5 script Stenka_test 800,{
    callfunc "nashest36";
    close;
    }

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

    С массивами я особо не дружу, лучше подскажи как без них решить мою проблему, а то я уже много чего перепробывал, а толку никакого либо показывает всех чаров на 3 местах, либо на 2 или показывает вроде бы нормально сначала, но до тех пор пока кто нибудь не тыкнет и не сдаст лут и всё собьется и хрен знает в каком порядке встанет.

  4. Мне подсказали методом переноса сделать позиции, но не фурычит всё равно... Изначально было так:

    if(loot2>$leaderloot){
    set $leaderloot,loot2;
    set $leaderchar$,strcharinfo(0);
    }
    if(loot2>$leaderloot2){
    set $leaderloot2,loot2;
    set $leaderchar2$,strcharinfo(0);
    }
    if(loot2>$leaderloot3){
    set $leaderloot3,loot2;
    set $leaderchar3$,strcharinfo(0);
    }

  5. Написал глобальный эвент, но возникла одна проблема, топ-3 рейтинг чаров сдавших лут не отображает правильно, т.е не так как надо. Подскажите в чём мой косяк?

    - script gxdcxs -1,{
    OnInit:
    if($ge!=0){end;}
    set $leaderchar$,0;
    set $leaderloot,0;
    set $leaderchar2$,0;
    set $leaderloot2,0;
    set $leaderchar3$,0;
    set $leaderloot3,0;
    set $ge,1;
    end;
    }
    
    - script begin -1,{
    //OnDay<month><day>:
    OnDay0705:
    set $leaderchar$,0;
    set $leaderloot,0;
    set $leaderchar2$,0;
    set $leaderloot2,0;
    set $leaderchar3$,0;
    set $leaderloot3,0;
    set $ge,1;
    announce "Глобальный эвент начался. Подробности у NPC в пронтере!",0;
    end;
    OnDay0712:
    set $ge,0;
    set $np,1;
    announce "Глобальный эвент окончен. Победитель: "+$leaderchar$+", поздравляем его!! Приз у NPC.",0;
    end;
    }
    
    prontera,162,194,3 script Глобальный эвент 709,{
    // 1097,7005,7449, 662
    if($ge!=1){
    mes "Для тебя у меня сейчас нет задания.";
    close;}
    set .item,7449;
    mes "[Глобальный эвент]";
    if(loot2>$leaderloot){
    set $leaderloot,loot2;
    set $leaderchar$,strcharinfo(0);}
    if($np==1){
    if($leaderchar$==strcharinfo(0)){
    if(select("Получить приз:Отмена")==2){close;}
    mes "Держи свой приз.";
    getitem 20197,1;
    getitem 7227,3;
    set $leaderchar$,0;
    set $leaderloot,0;
    set $np,0;
    close;
    }close;}
    set loot,countitem(.item);
    mes "Лидер дня: "+$leaderchar$+". Он сдал - "+$leaderloot+"x "+getitemname(.item)+".";
    mes "------------------------";
    switch(select("Топ-3","Сдать лут","Ваша Статистика","Задание","Последний срок")){
    case 1:
    if(loot2>$leaderloot){
    set $leaderloot3, $leaderloot2;
    set $leaderloot2, $leaderloot;
    set $leaderloot,loot2;
    set $leaderchar3$, $leaderchar2$;
    set $leaderchar2$, $leaderchar$;
    set $leaderchar$,strcharinfo(0);
    }
    if(loot2>$leaderloot2){
    set $leaderloot3, $leaderloot2;
    set $leaderloot, $leaderloot;
    set $leaderloot2,loot2;
    set $leaderchar3$, $leaderchar2$;
    set $leaderchar$, $leaderchar$;
    set $leaderchar2$,strcharinfo(0);
    }
    if(loot2>$leaderloot3){
    set $leaderloot2, $leaderloot2;
    set $leaderloot, $leaderloot;
    set $leaderloot3,loot2;
    set $leaderchar2$, $leaderchar2$;
    set $leaderchar$, $leaderchar$;
    set $leaderchar3$,strcharinfo(0);
    }
    mes "Место - ник - кол-во";
    mes "1. "+$leaderchar$+" "+$leaderloot+"";
    mes "2. "+$leaderchar2$+" "+$leaderloot2+"";
    mes "3. "+$leaderchar3$+" "+$leaderloot3+"";
    close;
    case 2:
    if(loot<1){mes "У тебя нет необходимого лута!";close;}
    delitem .item,loot;
    set loot2,loot2+loot;
    close;
    case 3:
    mes "Вы уже сдали всего "+loot2+" лута.";
    close;
    case 4:
    mes "Вам необходимо сдавать следующий лут: "+getitemname(.item)+". Игрок, сдавший наибольшее кол-во лута (лидер) - побеждает.";
    close;
    case 5:
    mes "Последний срок сдачи лута - 11 июля. Не опоздайте!";
    close;
    }
    }

×
×
  • Create New...