Назад

ПЛЗ помогите дописать кусочек скрипта!!!!

Автор: Yeg0R: Дата: 03.19.2010

Смысл такой, я хочу чтобы в чате нпц пвп арены показывало: если на ней 0 человек - На арене 0 игроков, если 1 - На арене 1 игрок, если 2 - 4 - На арене n игрока, и если 5 - ∞ - На арене n игроков.

Вот что я пытался сделать, но у меня не получилось:

OnInit:
do{
delwaitingroom;
waitingroom "На арене: "+getmapusers("pvp_n_1-5")+" игрок"{
if(getmapusers("pvp_n_1-5") > 2) goto If(getmapusers("pvp_n_1-5") > 5) $a=ов
$a=а
}
"$a",1,"PvP-Arena::OnLeave",1;
sleep 1000;
}while(1);
end;

OnLeave:
warpwaitingpc "pvp_n_1-5",0,0;
end;
}

Автор: Yeg0R: Дата: 03.19.2010

В твоём скрипте только 2 варианта и я его видел, а я хочу чтобы были все...

Автор: DiS[IP]: Дата: 03.19.2010

[FONT=Lucida Console]Ололо,изучи кусок кода получше :lol:.Тебе всего лишь нужно добавить еще 1 условие,если оно тебе так необходимо.
[/FONT]

Автор: Gremlin: Дата: 03.19.2010

Цитата Yeg0R;21163:
Смысл такой, я хочу чтобы в чате нпц пвп арены показывало: если на ней 0 человек - На арене 0 игроков, если 1 - На арене 1 игрок, если 2 - 4 - На арене n игрока, и если 5 - ∞ - На арене n игроков.

Вот что я пытался сделать, но у меня не получилось:

OnInit:
do{
delwaitingroom;
waitingroom "На арене: "+getmapusers("pvp_n_1-5")+" игрок"{
if(getmapusers("pvp_n_1-5") > 2) goto If(getmapusers("pvp_n_1-5") > 5) $a=ов
$a=а
}
"$a",1,"PvP-Arena::OnLeave",1;
sleep 1000;
}while(1);
end;

OnLeave:
warpwaitingpc "pvp_n_1-5",0,0;
end;
}

Я на месте афины тебя заругал и в угол поставил:D Если собираешься учесть
один-игрок
2-игрока
3-игрока
5-игроков
и т.п.-дохлый номер, т.к. есть и 51 игрок, 62 игрока и т.д.
Сделай так:
"Игроков на арене: "+getmapusers("pvp_n_1-5")

Автор: Yeg0R: Дата: 03.19.2010

ыыыыыыыыыыыыыыы чет я об этом не подумал XD

Автор: Yeg0R: Дата: 03.19.2010

у тебя дис 1 условие которое добовляет в конец 2 буквы, а мне надо чтобы заменяло, я не знаю как, может поможеш?

"Игроков на арене: "+getmapusers("pvp_n_1-5") - эт не удобно, нужно направить мышку на нпц чтобы увидеть сколько онлайн, а игроков на арене не будет больше 100 и писать не долго.

Автор: Gremlin: Дата: 03.19.2010

OnInit:
L_arenka:
waitingroom "На арене : "+getmapusers("pvp_n_1-5"),1,"PvP-Arena::OnLeave",1;
sleep 1000;
delwaitingroom;
goto L_arenka;
end;
OnLeave:
warpwaitingpc "pvp_n_1-5",0,0;
end;
}

Вроде набросал нужный тебе кусок. Выложи весь скрипт, а то вслепую как-то получается

Автор: Yeg0R: Дата: 03.19.2010

//===== eAthena Script =======================================
//= PvP/GvG/Бранч арена/Клон арена/Без спидов и потов/1vs1/
//===== By: ==================================================
//= Yeg0R
//============================================================

pvp_n_1-5 mapflag pvp
pvp_n_1-5 mapflag nomemo
pvp_n_1-5 mapflag nosave
pvp_n_1-5 mapflag noexp
pvp_n_1-5 mapflag nopenalty
pvp_n_1-5 mapflag noteleport
pvp_n_1-5 mapflag nowarp
pvp_n_1-5 mapflag noreturn
pvp_n_1-5 mapflag nobranch
pvp_n_1-5 mapflag noloot
pvp_n_1-5 mapflag nogo
pvp_n_1-5 mapflag nodrop

guild_vs1 mapflag pvp off
guild_vs1 mapflag gvg
guild_vs1 mapflag nomemo
guild_vs1 mapflag nosave
guild_vs1 mapflag noexp
guild_vs1 mapflag nopenalty
guild_vs1 mapflag noteleport
guild_vs1 mapflag nowarp
guild_vs1 mapflag noreturn
guild_vs1 mapflag nobranch
guild_vs1 mapflag noloot
guild_vs1 mapflag nogo
guild_vs1 mapflag nodrop

guild_vs5 mapflag nogo
guild_vs5 mapflag noteleport
guild_vs5 mapflag nowarp
guild_vs5 mapflag nopenalty
guild_vs5 mapflag nomemo

pvp_n_1-3 mapflag pvp
pvp_n_1-3 mapflag nomemo
pvp_n_1-3 mapflag nosave
pvp_n_1-3 mapflag noexp
pvp_n_1-3 mapflag nopenalty
pvp_n_1-3 mapflag noteleport
pvp_n_1-3 mapflag nowarp
pvp_n_1-3 mapflag noreturn
pvp_n_1-3 mapflag nobranch
pvp_n_1-3 mapflag noloot
pvp_n_1-3 mapflag nogo
pvp_n_1-3 mapflag nodrop

guild_vs4 mapflag pvp
guild_vs4 mapflag nomemo
guild_vs4 mapflag nosave
guild_vs4 mapflag noexp
guild_vs4 mapflag nopenalty
guild_vs4 mapflag noteleport
guild_vs4 mapflag nowarp
guild_vs4 mapflag noreturn
guild_vs4 mapflag nobranch
guild_vs4 mapflag noloot
guild_vs4 mapflag nogo
guild_vs4 mapflag nodrop
guild_vs4 mapflag restricted 5

pvp_n_5-5 mapflag pvp
pvp_n_5-5 mapflag nomemo
pvp_n_5-5 mapflag nosave
pvp_n_5-5 mapflag noexp
pvp_n_5-5 mapflag nopenalty
pvp_n_5-5 mapflag noteleport
pvp_n_5-5 mapflag nowarp
pvp_n_5-5 mapflag noreturn
pvp_n_5-5 mapflag nobranch
pvp_n_5-5 mapflag noloot
pvp_n_5-5 mapflag nogo
pvp_n_5-5 mapflag nodrop


prontera,167,186,4 script PvP-Arena#h1-1::PvP-Arena 751,{
mes "[PvP Мастер]";
mes "Приветствую тебя юный воин!";
mes "У нас 6 арен.";
mes "На какую арену хочеш попасть?";
switch(select("PvP (^FF0000"+getmapusers("pvp_n_1-5")+"^000000/100):GvG (^FF0000"+getmapusers("guild_vs1")+"^000000/100):Бранч арена (^FF0000"+getmapusers("guild_vs5")+"^000000/50):Клон арена (^FF0000"+getmapusers("pvp_n_1-3")+"^000000/100):PvP Без спидов и потов (^FF0000"+getmapusers("guild_vs4")+"^000000/100):PvP 1vs1 (^FF0000"+getmapusers("pvp_n_5-5")+"^000000/2):Выход")) {
case 1:
if(getmapusers("pvp_n_1-5.gat") >= 100 ) goto LError;
warp "pvp_n_1-5",0,0;
close;
case 2:
if(getmapusers("guild_vs1.gat") >= 100 ) goto LError;
warp "guild_vs1",0,0;
close;
case 3:
if(getmapusers("guild_vs5.gat") >= 50 ) goto LError;
warp "guild_vs5",0,0;
close;
case 4:
if(getmapusers("pvp_n_1-3.gat") >= 100 ) goto LError;
warp "pvp_n_1-3",0,0;
close;
case 5:
if(getmapusers("guild_vs4.gat") >= 100 ) goto LError;
warp "guild_vs4",0,0;
close;
case 6:
if(getmapusers("pvp_n_5-5.gat") >= 2 ) goto LError;
warp "pvp_n_5-5",0,0;
close;
case 7:
mes "Если захочешь попасть на арену,обращайся.";
mes "Досвидание.Приятной игры.";
close;
}

LError:
mes "[PvP Мастер]";
mes "Извини, на этой арене нет места...";
close;



OnInit:
do{
delwaitingroom;
waitingroom ""+getmapusers("pvp_n_1-5")+" игроков на PvP арене.",1,"PvP-Arena::OnLeave",1;
sleep 1000;
}while(1);
end;

OnLeave:
warpwaitingpc "pvp_n_1-5",0,0;
end;
}

morocc,151,96,4 duplicate(PvP-Arena) PvP-Arena#h1-2 751
geffen,114,64,4 duplicate(PvP-Arena) PvP-Arena#h1-3 751
payon,169,234,4 duplicate(PvP-Arena) PvP-Arena#h1-4 751
alberta,189,149,4 duplicate(PvP-Arena) PvP-Arena#h1-5 751
izlude,134,114,4 duplicate(PvP-Arena) PvP-Arena#h1-6 751
aldebaran,136,130,4 duplicate(PvP-Arena) PvP-Arena#h1-7 751
xmas,144,137,4 duplicate(PvP-Arena) PvP-Arena#h1-8 751
comodo,208,147,4 duplicate(PvP-Arena) PvP-Arena#h1-9 751
yuno,163,51,4 duplicate(PvP-Arena) PvP-Arena#h1-10 751
amatsu,204,82,4 duplicate(PvP-Arena) PvP-Arena#h1-11 751
gonryun,167,119,4 duplicate(PvP-Arena) PvP-Arena#h1-12 751
umbala,85,160,4 duplicate(PvP-Arena) PvP-Arena#h1-13 751
louyang,222,48,4 duplicate(PvP-Arena) PvP-Arena#h1-14 751
jawaii,244,128,4 duplicate(PvP-Arena) PvP-Arena#h1-15 751
ayothaya,144,117,4 duplicate(PvP-Arena) PvP-Arena#h1-16 751
einbroch,71,201,4 duplicate(PvP-Arena) PvP-Arena#h1-17 751
lighthalzen,152,97,4 duplicate(PvP-Arena) PvP-Arena#h1-18 751
einbech,70,100,4 duplicate(PvP-Arena) PvP-Arena#h1-19 751
hugel,93,149,4 duplicate(PvP-Arena) PvP-Arena#h1-20 751
rachel,131,117,4 duplicate(PvP-Arena) PvP-Arena#h1-21 751
veins,220,127,4 duplicate(PvP-Arena) PvP-Arena#h1-22 751
moscovia,218,192,4 duplicate(PvP-Arena) PvP-Arena#h1-23 751

pvp_n_1-3,96,99,4 script Клонер 759,{

mes "[Клонер]";
mes "Здравствуй, я могу сделать твоего клона";
mes "но для этого мне нада 100 000 zeny.";
next;
menu "Да хочу.",Lyes,"Нет не хочу.",Lno,"Выход.",LCancel;

Lyes:
mes "[Клонер]";
if(zeny < 100000) goto nozeny;
atcommand "@evilclone "+strcharinfo(0);
set Zeny, Zeny - 100000;
mes "Вот твой клон!";
close;

Lno:
mes "[Клонер]";
mes "Как хочешь, если что обращайся.))";
close;

LCancel:
close;

nozeny:
mes "[Клонер]";
mes "У тебя нехватает Zeny.";
close;
}

pvp_n_1-5,119,95,2 script Выход#h1-1::Выход 751,{
mes "Испугался?";
next;
mes "Конечно испугался";
next;
mes "XD";
next;
mes "Зачем еще ко мне подходить";
next;
mes "Я так и знал!";
next;
mes "Я могу тебя проводить в пронтеру";
next;
mes "Хочеш?";
next;
if (select("Да:Нет") == 2) close;
warp "prontera",156,191;
end;

OnInit:
waitingroom "Выход",0;
end;

}

guild_vs1,73,45,2 duplicate(Выход) Выход#h1-2 751
guild_vs5,77,48,4 duplicate(Выход) Выход#h1-3 751
pvp_n_1-3,116,92,2 duplicate(Выход) Выход#h1-4 751
pvp_n_5-5,119,96,2 duplicate(Выход) Выход#h1-5 751
guild_vs4,73,46,2 duplicate(Выход) Выход#h1-6 751

Автор: Gremlin: Дата: 03.19.2010

Из рассчёта, что всё работает

Находишь

OnInit:
do{
delwaitingroom;
waitingroom ""+getmapusers("pvp_n_1-5")+" игроков на PvP арене.",1,"PvP-Arena::OnLeave",1;
sleep 1000;
}while(1);
end;

OnLeave:
warpwaitingpc "pvp_n_1-5",0,0;
end;
}

Меняешь на

OnInit:
do{
delwaitingroom;
waitingroom "На арене : "+getmapusers("pvp_n_1-5")+"",1,"PvP-Arena::OnLeave",1;
sleep 1000;
}while(1);
end;

OnLeave:
warpwaitingpc "pvp_n_1-5",0,0;
end;
}

Автор: Yeg0R: Дата: 03.19.2010

И всётаки как я хотел не получилось, может ктонибуть ещё сможет помоч?

Автор: Gremlin: Дата: 03.19.2010

А что не так-то?

Автор: Yeg0R: Дата: 03.20.2010

Смысл такой, я хочу чтобы в чате нпц пвп арены показывало: если на ней 0 человек - На арене 0 игроков, если 1, 21, 31 ... 91 - На арене n, игрок, если 2 - 4, 22 - 24, 32 - 34 ... 92 - 94 - На арене n игрока, и если 5 - 20, 25 - 30, 35 - 40 ... 95 - ∞ На арене n игроков.

Дайте хоть образец, дальше я сам :)

Автор: Enjoy: Дата: 03.20.2010

"Арена [" + getmapusers("guild_vs2.gat") + " / 30]",war1,

" + getmapusers("guild_vs2.gat") + "
это нпц смотрит сколько на арене guild_vs2.gat игроков. если я так понял то это как раз то

Автор: Yeg0R: Дата: 03.20.2010

не,чтобы показывало число игроков - это я знаю, мне важна надпись: Игрок, игроков, игрока - чтобы она скронялась в зависемости от коичества.

Автор: unded: Дата: 03.20.2010

Просто сделай проверку на численность и выводи результат...

там например:

if (getmapusers("guild_vs2.gat") == 1 or getmapusers("guild_vs2.gat") == 21 or ... or getmapusers("guild_vs2.gat") == 91)
getmapusers("guild_vs2.gat") игрок.
elseif(getmapusers("guild_vs2.gat") == 2 or getmapusers("guild_vs2.gat") == 4 or ... or getmapusers("guild_vs2.gat") == 92 or getmapusers("guild_vs2.gat") == 94)
getmapusers("guild_vs2.gat") игрока.
elseif(getmapusers("guild_vs2.gat") == 5 or getmapusers("guild_vs2.gat") == 20 or ... or getmapusers("guild_vs2.gat") == 95 or getmapusers("guild_vs2.gat") == 100)
getmapusers("guild_vs2.gat") игроков.

ну можно еше проверить делением

если делится на 3 значит выводить ИГРОК
если делится на 2 значит выводить ИГРОКА
если делится на 5 значит выводить ИГРОКОВ
и проверять если есть остаток то идти дальше

Я так понял?

Автор: Yeg0R: Дата: 03.20.2010

я сделал вот так:


OnInit:
do{
delwaitingroom;
waitingroom "На арене"+getmapusers("pvp_n_1-5")+
if (getmapusers("pvp_n_1-5.gat") == 1 or getmapusers("pvp_n_1-5.gat") == 21 or getmapusers("pvp_n_1-5.gat") == 31 or getmapusers("pvp_n_1-5.gat") == 41 or getmapusers("pvp_n_1-5.gat") == 51 or getmapusers("pvp_n_1-5.gat") == 61 or getmapusers("pvp_n_1-5.gat") == 71 or getmapusers("pvp_n_1-5.gat") == 81 or getmapusers("pvp_n_1-5.gat") == 91)
getmapusers("pvp_n_1-5.gat") "игрок."
elseif(getmapusers("pvp_n_1-5.gat") == 2 or getmapusers("pvp_n_1-5.gat") == 3 or getmapusers("pvp_n_1-5.gat") == 4 or getmapusers("pvp_n_1-5.gat") == 22 or getmapusers("pvp_n_1-5.gat") == 23 or getmapusers("pvp_n_1-5.gat") == 24 or getmapusers("pvp_n_1-5.gat") == 32 or getmapusers("pvp_n_1-5.gat") == 33 or getmapusers("pvp_n_1-5.gat") == 34 or getmapusers("pvp_n_1-5.gat") == 42 or getmapusers("pvp_n_1-5.gat") == 43 or getmapusers("pvp_n_1-5.gat") == 44 or getmapusers("pvp_n_1-5.gat") == 52 or getmapusers("pvp_n_1-5.gat") == 53 or getmapusers("pvp_n_1-5.gat") == 54 or getmapusers("pvp_n_1-5.gat") == 62 or getmapusers("pvp_n_1-5.gat") == 63 or getmapusers("pvp_n_1-5.gat") == 64 or getmapusers("pvp_n_1-5.gat") == 72 or getmapusers("pvp_n_1-5.gat") == 73 or getmapusers("pvp_n_1-5.gat") == 74 or getmapusers("pvp_n_1-5.gat") == 82 or getmapusers("pvp_n_1-5.gat") == 83 or getmapusers("pvp_n_1-5.gat") == 84 or getmapusers("pvp_n_1-5.gat") == 92 or getmapusers("pvp_n_1-5.gat") == 93 or getmapusers("pvp_n_1-5.gat") == 94)
getmapusers("pvp_n_1-5.gat") "игрока."
elseif(getmapusers("pvp_n_1-5.gat") == 0 or getmapusers("pvp_n_1-5.gat") == 5 getmapusers("pvp_n_1-5.gat") == 6 getmapusers("pvp_n_1-5.gat") == 7 getmapusers("pvp_n_1-5.gat") == 8 getmapusers("pvp_n_1-5.gat") == 9 getmapusers("pvp_n_1-5.gat") == 10 getmapusers("pvp_n_1-5.gat") == 11 getmapusers("pvp_n_1-5.gat") == 12 getmapusers("pvp_n_1-5.gat") == 13 getmapusers("pvp_n_1-5.gat") == 14 getmapusers("pvp_n_1-5.gat") == 15 getmapusers("pvp_n_1-5.gat") == 16 getmapusers("pvp_n_1-5.gat") == 17 getmapusers("pvp_n_1-5.gat") == 18 getmapusers("pvp_n_1-5.gat") == 19 getmapusers("pvp_n_1-5.gat") == 20 getmapusers("pvp_n_1-5.gat") == 25 getmapusers("pvp_n_1-5.gat") == 26 getmapusers("pvp_n_1-5.gat") == 27 getmapusers("pvp_n_1-5.gat") == 28 getmapusers("pvp_n_1-5.gat") == 29 getmapusers("pvp_n_1-5.gat") == 30 getmapusers("pvp_n_1-5.gat") == 35 getmapusers("pvp_n_1-5.gat") == 36 getmapusers("pvp_n_1-5.gat") == 37 getmapusers("pvp_n_1-5.gat") == 38 getmapusers("pvp_n_1-5.gat") == 39 getmapusers("pvp_n_1-5.gat") == 40 getmapusers("pvp_n_1-5.gat") == 45 getmapusers("pvp_n_1-5.gat") == 46 getmapusers("pvp_n_1-5.gat") == 47 getmapusers("pvp_n_1-5.gat") == 48 getmapusers("pvp_n_1-5.gat") == 49 getmapusers("pvp_n_1-5.gat") == 50 getmapusers("pvp_n_1-5.gat") == 55 getmapusers("pvp_n_1-5.gat") == 56 getmapusers("pvp_n_1-5.gat") == 57 getmapusers("pvp_n_1-5.gat") == 58 getmapusers("pvp_n_1-5.gat") == 59 getmapusers("pvp_n_1-5.gat") == 60 getmapusers("pvp_n_1-5.gat") == 65 getmapusers("pvp_n_1-5.gat") == 66 getmapusers("pvp_n_1-5.gat") == 67 getmapusers("pvp_n_1-5.gat") == 68 getmapusers("pvp_n_1-5.gat") == 69 getmapusers("pvp_n_1-5.gat") == 70 getmapusers("pvp_n_1-5.gat") == 75 getmapusers("pvp_n_1-5.gat") == 76 getmapusers("pvp_n_1-5.gat") == 77 getmapusers("pvp_n_1-5.gat") == 78 getmapusers("pvp_n_1-5.gat") == 79 getmapusers("pvp_n_1-5.gat") == 80 getmapusers("pvp_n_1-5.gat") == 85 getmapusers("pvp_n_1-5.gat") == 86 getmapusers("pvp_n_1-5.gat") == 87 getmapusers("pvp_n_1-5.gat") == 88 getmapusers("pvp_n_1-5.gat") == 89 getmapusers("pvp_n_1-5.gat") == 90 getmapusers("pvp_n_1-5.gat") == 95 getmapusers("pvp_n_1-5.gat") == 96 getmapusers("pvp_n_1-5.gat") == 97 getmapusers("pvp_n_1-5.gat") == 98 getmapusers("pvp_n_1-5.gat") == 99 getmapusers("pvp_n_1-5.gat") == 100)
getmapusers("pvp_n_1-5.gat") "игроков.",1,"PvP-Arena::OnLeave",1;
sleep 1000;
}while(1);
end;

OnLeave:
warpwaitingpc "pvp_n_1-5",0,0;
end;
}


Но эт не првельно, пожете?

Автор: Yeg0R: Дата: 03.20.2010

Как сделать проверку на деление?

Автор: Enjoy: Дата: 03.20.2010

попробуй переменной, мб чушь сказал

Автор: Yeg0R: Дата: 03.20.2010

уже пробовал с переменной но я ей плохо умею пользоваться.

Кароче я уже всё сделал всем спасибо.

Автор: unded: Дата: 03.20.2010

Ты в проверке ставь OR после каждой проверки getmapusers("pvp_n_1-5.gat") == хх


getmapusers("pvp_n_1-5.gat") == 0 or getmapusers("pvp_n_1-5.gat") == 5 getmapusers("pvp_n_1-5.gat") == 6 getmapusers("pvp_n_1-5.gat") == 7 getmapusers("pvp_n_1-5.gat") == 8 getmapusers("pvp_n_1-5.gat") == 9 getmapusers("pvp_n_1-5.gat") == 10 getmapusers("pvp_n_1-5.gat") == 11 getmapusers("pvp_n_1-5.gat") == 12 getmapusers("pvp_n_1-5.gat") == 13 getmapusers("pvp_n_1-5.gat") == 14 getmapusers("pvp_n_1-5.gat") == 15 getmapusers("pvp_n_1-5.gat") == 16 getmapusers("pvp_n_1-5.gat") == 17 getmapusers("pvp_n_1-5.gat") == 18 getmapusers("pvp_n_1-5.gat") == 19 getmapusers("pvp_n_1-5.gat") == 20 getmapusers("pvp_n_1-5.gat") == 25 getmapusers("pvp_n_1-5.gat") == 26 getmapusers("pvp_n_1-5.gat") == 27 getmapusers("pvp_n_1-5.gat") == 28 getmapusers("pvp_n_1-5.gat") == 29 getmapusers("pvp_n_1-5.gat") == 30 getmapusers("pvp_n_1-5.gat") == 35 getmapusers("pvp_n_1-5.gat") == 36 getmapusers("pvp_n_1-5.gat") == 37 getmapusers("pvp_n_1-5.gat") == 38 getmapusers("pvp_n_1-5.gat") == 39 getmapusers("pvp_n_1-5.gat") == 40 getmapusers("pvp_n_1-5.gat") == 45 getmapusers("pvp_n_1-5.gat") == 46 getmapusers("pvp_n_1-5.gat") == 47 getmapusers("pvp_n_1-5.gat") == 48 getmapusers("pvp_n_1-5.gat") == 49 getmapusers("pvp_n_1-5.gat") == 50 getmapusers("pvp_n_1-5.gat") == 55

Автор: Yeg0R: Дата: 03.20.2010

я сделал так : (getmapusers("pvp_n_1-5.gat") == 1 ? " игрок":(getmapusers("pvp_n_1-5.gat") == 21 ? " игрок":(getmapusers("pvp_n_1-5.gat") == 31 ? " игрок": ...

Может както мутарно - зато работает =)