-
Posts
158 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Posts posted by Break
-
-
Дело в том, что когда нечетное кол-во игроков на карте, то разделение идет между четным кол-вом, а нечетный остается в центре карты не попадая ни в одну из пати, что в таком случае нужно сделать?
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; }
-
WinHex используй
-
И кто тебе такое подсказал... Я бы в твоём случае скрипт переписал, используя массив, и не обязательно глобальный.
С массивами я особо не дружу, лучше подскажи как без них решить мою проблему, а то я уже много чего перепробывал, а толку никакого либо показывает всех чаров на 3 местах, либо на 2 или показывает вроде бы нормально сначала, но до тех пор пока кто нибудь не тыкнет и не сдаст лут и всё собьется и хрен знает в каком порядке встанет.
-
Мне подсказали методом переноса сделать позиции, но не фурычит всё равно... Изначально было так:
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); }
-
Написал глобальный эвент, но возникла одна проблема, топ-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; } }
Стенка на стенку
in Скрипты и Базы данных
Posted · Edited by mrboob
Что тут непонятного? Распределение игроков на карте идёт по ровну в две пати, если же игроков нечетное кол-во, то один всегда остаётся без пати... Допустим на карте 5 человек, из них 4 распределяет по 2 человека в каждую пати и 1 в пролёте получается =/