Break Опубликовано 3 ноября, 2012 Жалоба Поделиться Опубликовано 3 ноября, 2012 (изменено) БГ уже не актуально...Что делать, если персонажей на карте нечетное кол-во? А то один всегда в пролёте получается =/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;} Изменено 4 ноября, 2012 пользователем mrboob Ссылка на комментарий Поделиться на другие сайты Поделиться
Break Опубликовано 4 ноября, 2012 Автор Жалоба Поделиться Опубликовано 4 ноября, 2012 ап Ссылка на комментарий Поделиться на другие сайты Поделиться
Break Опубликовано 7 ноября, 2012 Автор Жалоба Поделиться Опубликовано 7 ноября, 2012 (изменено) Возникла ещё одна проблема. Подскажите как правильно проверить в данном случае персонажа при смерти и после этого вычитать его из общего кол-ва при условии, что он состоит в одной из групп(пати) Мой вариант не хочет работать Нужный кусок выделил тегом prontera,0,0,0 script pvpLadder2 -1,{OnPCDieEvent:if (getmapxy($@killer_map$,@mapx,@mapy,0,strcharinfo(0))!=0) end;if ( ($@killer_map$=="pvp_n_1-5") && ($@MeveSNS==2) ){attachrid(killedrid);warp "prontera",180,160;[b]if($@sns_group1[0]){set $@sns_pt1,$@sns_pt1-1;}if($@sns_group2[0]){set $@sns_pt2,$@sns_pt2-1;}[/b]if($@sns_pt1 == 0 && $@sns_pt2 == 0) {mapannounce "pvp_n_1-5","[Стенка на Стенку] бой завершен!!!",17;enablenpc "SNS Prize";set $@MeveSNS, 0;cleararray $@mapusersid[0],0,getarraysize($@mapusersid);cleararray $@sns_group1[0],0,getarraysize($@sns_group1);cleararray $@sns_group2[0],0,getarraysize($@sns_group2);set $@sns_member,0;end;}mapannounce "pvp_n_1-5","Выживших - Команда Синих: "+$@sns_pt1+" Команда Красных: "+$@sns_pt2,1;end;}} Изменено 7 ноября, 2012 пользователем mrboob Ссылка на комментарий Поделиться на другие сайты Поделиться
Jarek Опубликовано 7 ноября, 2012 Жалоба Поделиться Опубликовано 7 ноября, 2012 Проверять принадлежит ли игрок списку нужно через циклЗачем аттачиться к убитому в событии OnPCDie? Масло с маслом 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Break Опубликовано 7 ноября, 2012 Автор Жалоба Поделиться Опубликовано 7 ноября, 2012 (изменено) Проверять принадлежит ли игрок списку нужно через циклЗачем аттачиться к убитому в событии OnPCDie? Масло с масломСпасибо! Помогло)Осталось теперь только разобраться с нечетным кол-во игроков на карте... Изменено 7 ноября, 2012 пользователем mrboob Ссылка на комментарий Поделиться на другие сайты Поделиться
Jarek Опубликовано 8 ноября, 2012 Жалоба Поделиться Опубликовано 8 ноября, 2012 Дак вы скажите точно, что вам нужно: кикать лишнего или засунуть его в какую-нибудь из команд? Ссылка на комментарий Поделиться на другие сайты Поделиться
Break Опубликовано 8 ноября, 2012 Автор Жалоба Поделиться Опубликовано 8 ноября, 2012 Дак вы скажите точно, что вам нужно: кикать лишнего или засунуть его в какую-нибудь из команд?Лучше засунуть в одну из команд Ссылка на комментарий Поделиться на другие сайты Поделиться
Jarek Опубликовано 8 ноября, 2012 Жалоба Поделиться Опубликовано 8 ноября, 2012 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;наmapusersid("pvp_n_1-5");leaveparty($@mapusersid[0],getarraysize($@mapusersid));set .@flag, getmapusers("pvp_n_1-5")%2;set $@sns_member,(getmapusers("pvp_n_1-5")/2);copyarray $@sns_group1[0],$@mapusersid[0], ((.@flag)?($@sns_member+rand(2)):$@sns_member);copyarray $@sns_group2[0],$@mapusersid[getarraysize($@sns_group1)], getmapusers("pvp_n_1-5") - getarraysize($@sns_group1);Только у меня ощущение, что я сделал слишком сложно (= Ссылка на комментарий Поделиться на другие сайты Поделиться
Break Опубликовано 8 ноября, 2012 Автор Жалоба Поделиться Опубликовано 8 ноября, 2012 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;наmapusersid("pvp_n_1-5");leaveparty($@mapusersid[0],getarraysize($@mapusersid));set .@flag, getmapusers("pvp_n_1-5")%2;set $@sns_member,(getmapusers("pvp_n_1-5")/2);copyarray $@sns_group1[0],$@mapusersid[0], ((.@flag)?($@sns_member+rand(2)):$@sns_member);copyarray $@sns_group2[0],$@mapusersid[getarraysize($@sns_group1[0])], getmapusers("pvp_n_1-5") - getarraysize($@sns_group1[0]);Только у меня ощущение, что я сделал слишком сложно (=3 человека на карте, 1 закинуло в пати и варпнуло, 2 остальных остались по центру без изменений Ссылка на комментарий Поделиться на другие сайты Поделиться
Jarek Опубликовано 8 ноября, 2012 Жалоба Поделиться Опубликовано 8 ноября, 2012 if(getmapusers("pvp_n_1-5")>2 && getmapusers("pvp_n_1-5")<4) {inviteparty($@sns_group2[0],$@sns_member);}А изначально же скрипт обрабатывал ситуацию, когда 3 человека. Тоже не работает? Ссылка на комментарий Поделиться на другие сайты Поделиться
Break Опубликовано 8 ноября, 2012 Автор Жалоба Поделиться Опубликовано 8 ноября, 2012 (изменено) if(getmapusers("pvp_n_1-5")>2 && getmapusers("pvp_n_1-5")<4) {inviteparty($@sns_group2[0],$@sns_member);}А изначально же скрипт обрабатывал ситуацию, когда 3 человека. Тоже не работает?Неа Изменено 9 ноября, 2012 пользователем mrboob Ссылка на комментарий Поделиться на другие сайты Поделиться
Break Опубликовано 9 ноября, 2012 Автор Жалоба Поделиться Опубликовано 9 ноября, 2012 Ап! Есть ещё варианты? Ссылка на комментарий Поделиться на другие сайты Поделиться
Incubus Опубликовано 11 ноября, 2012 Жалоба Поделиться Опубликовано 11 ноября, 2012 Сильно не вникал в скрипт, если проблема все еще в том что остается в центре последний игрок, попробуй так:if(getarraysize($@mapusersid)%2>0){ и тут уже делаешь с этим игроком ($@mapusersid[getarraysize($@mapusersid-1)]), что хочешь} Ссылка на комментарий Поделиться на другие сайты Поделиться
Break Опубликовано 11 ноября, 2012 Автор Жалоба Поделиться Опубликовано 11 ноября, 2012 (изменено) Сильно не вникал в скрипт, если проблема все еще в том что остается в центре последний игрок, попробуй так:if(getarraysize($@mapusersid)%2>0){ и тут уже делаешь с этим игроком ($@mapusersid[getarraysize($@mapusersid-1)]), что хочешь}Допустим его нужно добавить в одну из пати, как правильно записать? мои варианты не катят( Изменено 11 ноября, 2012 пользователем mrboob Ссылка на комментарий Поделиться на другие сайты Поделиться
Incubus Опубликовано 11 ноября, 2012 Жалоба Поделиться Опубликовано 11 ноября, 2012 (изменено) как вариант из первого поста замени строку copyarray $@sns_group2[0],$@mapusersid[$@sns_member],$@sns_member;наcopyarray $@sns_group2[0],$@mapusersid[$@sns_member],(getarraysize($@mapusersid)%2>0?($@sns_member+1):$@sns_member);если я правильно понял команду inviteparty.В этом случае будет последнего игрока всегда добавлять в $@sns_group2В твоем первом посте всегда последний игрок отметался, потому как при делении в афине округление идет в меньшую сторону, т.е. 5/2 будет 2. Изменено 11 ноября, 2012 пользователем Incubus 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Break Опубликовано 11 ноября, 2012 Автор Жалоба Поделиться Опубликовано 11 ноября, 2012 Неа, не работает Ссылка на комментарий Поделиться на другие сайты Поделиться
botka4aet Опубликовано 11 ноября, 2012 Жалоба Поделиться Опубликовано 11 ноября, 2012 Может после срабатывания варпа включить еще одного нпц, который ontouch будет добавлять к одной из групп? Ссылка на комментарий Поделиться на другие сайты Поделиться
Incubus Опубликовано 11 ноября, 2012 Жалоба Поделиться Опубликовано 11 ноября, 2012 (изменено) Предлагаю проверить будет ли сумма двух массивов: $@sns_group2 и $@sns_group1 равна размеру массива $@mapusersid, когда количество игроков не четное.В этом куске ты наверное не изменил ничего?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";}не проще ли варпать командой warpparty раз ты уже всех раскидал по пати?А также тут внимательно посмотри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);}думаю лучше будет писать типа такого:inviteparty($@sns_group2[0],getarraysize($@sns_group2)); Изменено 11 ноября, 2012 пользователем Incubus 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Break Опубликовано 11 ноября, 2012 Автор Жалоба Поделиться Опубликовано 11 ноября, 2012 (изменено) Спасибо, помогло. Правда теперь 1 нюанс появился, когда убиваешь этого игрока, то статистика его не учитывает и эвент криво работает, ну я думаю разберусь, если что не получится то еще отпишусь Изменено 11 ноября, 2012 пользователем mrboob Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения