Break Posted July 7, 2012 Group: Members Topic Count: 28 Topics Per Day: 0.01 Content Count: 158 Reputation: 14 Joined: 07/07/12 Last Seen: 19 hours ago Share Posted July 7, 2012 (edited) Написал глобальный эвент, но возникла одна проблема, топ-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; } } Edited July 7, 2012 by mrboob Quote Link to comment Share on other sites More sharing options...
Lilith Posted July 7, 2012 Group: Members Topic Count: 14 Topics Per Day: 0.00 Content Count: 407 Reputation: 159 Joined: 11/18/11 Last Seen: November 15, 2014 Share Posted July 7, 2012 К чему такое количество глобальных переменных? Почему бы тебе не использовать массивы? Всё это можно скомпоновать в одного НИПа. case 3: mes "Вы уже сдали всего "+loot2+" лута."; close; case 4: mes "Вам необходимо сдавать следующий лут: "+getitemname(.item)+". Игрок, сдавший наибольшее кол-во лута (лидер) - побеждает."; close; case 5: mes "Последний срок сдачи лута - 11 июля. Не опоздайте!"; close; А где break; ? set $leaderchar$,strcharinfo(0); set $leaderchar2$,strcharinfo(0); set $leaderchar3$,strcharinfo(0); Все места занимает один игрок? оО Quote Link to comment Share on other sites More sharing options...
Break Posted July 7, 2012 Group: Members Topic Count: 28 Topics Per Day: 0.01 Content Count: 158 Reputation: 14 Joined: 07/07/12 Last Seen: 19 hours ago Author Share Posted July 7, 2012 (edited) Мне подсказали методом переноса сделать позиции, но не фурычит всё равно... Изначально было так: 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); } Edited July 7, 2012 by mrboob Quote Link to comment Share on other sites More sharing options...
Lilith Posted July 7, 2012 Group: Members Topic Count: 14 Topics Per Day: 0.00 Content Count: 407 Reputation: 159 Joined: 11/18/11 Last Seen: November 15, 2014 Share Posted July 7, 2012 И кто тебе такое подсказал... Я бы в твоём случае скрипт переписал, используя массив, и не обязательно глобальный. Quote Link to comment Share on other sites More sharing options...
Break Posted July 7, 2012 Group: Members Topic Count: 28 Topics Per Day: 0.01 Content Count: 158 Reputation: 14 Joined: 07/07/12 Last Seen: 19 hours ago Author Share Posted July 7, 2012 (edited) И кто тебе такое подсказал... Я бы в твоём случае скрипт переписал, используя массив, и не обязательно глобальный. С массивами я особо не дружу, лучше подскажи как без них решить мою проблему, а то я уже много чего перепробывал, а толку никакого либо показывает всех чаров на 3 местах, либо на 2 или показывает вроде бы нормально сначала, но до тех пор пока кто нибудь не тыкнет и не сдаст лут и всё собьется и хрен знает в каком порядке встанет. Edited July 7, 2012 by mrboob Quote Link to comment Share on other sites More sharing options...
ReSp Posted October 7, 2017 Group: Members Topic Count: 15 Topics Per Day: 0.00 Content Count: 47 Reputation: 0 Joined: 10/23/15 Last Seen: Yesterday at 07:24 AM Share Posted October 7, 2017 А что надо в этом скрипте переделать чтобы отображалось просто общее чисто сданных предметов? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.