Назад

В чём ошибка?

Автор: KensyWhim: Дата: 12.27.2009

Где я допустил ошибку, понять не могу... :huh:

prontera,146,165,6	script	Max LvL Rank	718,{

mes "[Constantin]";
mes "Hello, I'm Constantin, I'm the person";
mes "Who have access to all the Rune Midgard Registries";
mes "Are you interested in something ?";
if(select("I want see the Top Level Ranking: No, Nothing.")==1) {
mes "This rank shows the first 10 people who reached the";
mes "Maximum Level.";
next;
mes "[Constantin]";
for(set @i, 0; $Rank$[@i]; set @i, @i + 1) mes @i+"є"+$Rank$[@i]."; }
else {
mes "Ok, no problems.";
}

close;
}


Мап серв "матерится":
    Unexpected newline at string.
75 : mes "This rank shows the first 10 people who reached the
";
76 : mes "Maximum Level.";
77 : next;
78 : mes "[Constantin]";
79 : for(set @i, 0; $Rank$[@i]; set @i, @i + 1) mes @i+"║"+$R
ank$[@i]."; }
* 80 : else {
81 : mes "Ok, no problems.";
82 : }
83 :
84 : close;
85 : }

Автор: KensyWhim: Дата: 12.27.2009

Попробывал сейчас твоим вариантом, всёравно почему то мап ругается.

    Unexpected newline at string.
76 : mes "This rank shows the first 10 people who reached the
";
77 : mes "Maximum Level.";
78 : next;
79 : mes "[Constantin]";
80 : for(set @i, 0; $Rank$[@i]; set @i, @i + 1) mes @i+"║"+$R
ank$[@i].";
* 81 : close;
82 : Case 2:
83 : mes "Ok, no problems.";
84 : close;
85 : }


Пробывал вместо close; ставить end; и пробывал вообще убрать, всёравно ругается на эту строчку, даже если там ничего нет. :bang:

З.ы. Кстате, в блокноте 81 строчка это вот эта:
79 : mes "[Constantin]";
в мапе почему то она 79 о_О

Автор: 879546: Дата: 12.27.2009

Предположу, что тогда ему чем-то не нравится

for(set @i, 0; $Rank$[@i]; set @i, @i + 1) mes @i+"║"+$Rank$[@i].";

Автор: KensyWhim: Дата: 12.27.2009

Цитата 879546;17220]Предположу, что тогда ему чем-то не нравится
for(set @i, 0; $Rank$[@i:
; set @i, @i + 1) mes @i+"║"+$Rank$[@i].";


Тогда можешь посмотреть весь скрипт...
Оригинал:
/*	    ___       ___       ___       ___       ___       ___       ___       ___       ___       ___       ___
/\ \ /\ \ /\ \ /\__\ /\ \ /\ \ /\ \ /\ \ /\__\ /\__\ /\ \
\:\ \ /::\ \ /::\ \ /:| _|_ /::\ \ /::\ \ /::\ \ /::\ \ /:| _|_ /:/ _/_ /::\ \
/::\__\ /::\:\__\ /:/\:\__\ /::|/\__\ /:/\:\__\ /:/\:\__\ /::\:\__\ /:/\:\__\ /::|/\__\ /:/_/\__\ /\:\:\__\
/:/\/__/ \:\:\/ / \:\ \/__/ \/|::/ / \:\/:/ / \:\ \/__/ \;:::/ / \:\/:/ / \/|::/ / \:\/:/ / \:\:\/__/
\/__/ \:\/ / \:\__\ |:/ / \::/ / \:\__\ |:\/__/ \::/ / |:/ / \::/ / \::/ /
\/__/ \/__/ \/__/ \/__/ \/__/ \|__| \/__/ \/__/ \/__/ \/__/

*----------------------------------------- eAthena Script ---------------------------------------------*
* Maximum Level Announce *
*----------------------------------------------- By: --------------------------------------------------*
* TecnoCronus *
*----------------------------------------- Current Version: -------------------------------------------*
* 1.0 *
*----------------------------------------- Compatible With: -------------------------------------------*
* eAthena *
*------------------------------------------- Description: ---------------------------------------------*
* A NPC that announce the 10th firsts persons who got the maximum level *
*----------------------------------------- Additional Comments: ---------------------------------------*
* It give a item as reward, the item ids of reward are keeped at $@Glob_Array_Item array *
* The index of array will be get randomly. *
*-------------------------------------------- Changelog -----------------------------------------------*
*- http://trac.xp-dev.com/TC_Scripts/log/scripts/EN/MaxLvLAnnouncer.txt *
*------------------------------------------------------------------------------------------------------*/

- script MaxLvLAn -1,{

end;

OnPCBaseLvUpEvent:

if(.numMaxLevel == 10)
disablenpc "MaxLvLAn";
else if (BaseLevel==.MaxLvl) {
// Check if the player for some reason, reached to Maximum level again
if(Rew > 0) end;

// Keep the player name on array
setarray $Rank$[.numMaxLevel], strcharinfo(0);

announce strcharinfo(0)+", you are the "+.places$[.numMaxLevel]+" person to reach the level "+.MaxLvl+", you will receive a reward",0;

//give prize
set @Rnd_Item, rand(0,(getarraysize(".Global_Array_Item")-1));
getitem .Global_Array_Item[@Rnd_Item],1;

// set this variable, to don't take rewards again
set Rew, 1;

// Keep the last array index
set .numMaxLevel,.numMaxLevel+1;

if(.numMaxLevel == 9) // Should be 9 now because the array index start in 0 (Thanks to ToastOfDoom)
disablenpc "MaxLvLAn";
}
end;

OnInit:
// Set here the maximum level of your server
set .MaxLvl, 99;

// Array with the item id rewards
setarray .Global_Array_Item[0],504,505;

//array lookup for place names
setarray .places$[0], "First", "Second", "Third", "Fourth", "Fifth", "Sixth", "Seventh", "Eighth", "Ninth", "Tenth";
}

prontera,146,165,6 script MaxLvLRank 718,{

mes "[Constantin]";
mes "Hello, I'm Constantin, I'm the person";
mes "Who have access to all the Rune Midgard Registries";
mes "Are you interested in something ?";
if(select("I want see the Top Level Ranking: No, Nothing.")==1) {
mes "This rank shows the first 10 people who reached the";
mes "Maximum Level.";
next;
mes "[Constantin]";
for(set @i, 0; $Rank$[@i]; set @i, @i + 1) mes @i+"є"+$Rank$[@i]".";
} else {
mes "Ok, no problems.";
}

close;
}


З.ы. Просто подобные комбинации для меня сложные. :(

Автор: nomn: Дата: 12.27.2009

вфф, криво реализованный нпс. что он должен делать?

Автор: Мяфк: Дата: 12.27.2009

Написано же:

* A NPC that announce the 10th firsts persons who got the maximum level

Автор: Хитрюга Джэк: Дата: 12.27.2009

)) пишет о первых 10ти людях достигших максимального уровня.

Автор: KensyWhim: Дата: 12.27.2009

Цитата Raff;17222:
вфф, криво реализованный нпс. что он должен делать?


Объявляет на весь мир "Грац с макс лвлом бла бла бла"^_^, и в пронте стоит непись, что то типа Ранг, топ лвлов.

Автор: dimjke: Дата: 12.27.2009

- script MaxLvLAn -1,{
end;
OnInit:
OnPCBaseLvUpEvent:
setarray $priz[0],504,505,506,507,508,509,510,511,512,513;
setarray $places1[0], "Первым", "Вторым", "Третьим", "Четвертым", "Пятым", "Шестым", "Седьмым", "Восьмым", "Девятым", "Десятым";
setarray $places2[0],"Первой", "Второй", "Третьей", "Четвертой", "Пятой", "Шестой", "Седьмой", "Восьмой", "Девятой", "Десятой";
set $lvl,$lvl+1;
set $win,$win+1;
set $place,$place+1;
if ($lvl == 10){end;}
if ($place > 10){end;}
if ($win > 10){end;}
if (sex == 1){
announce ""+ strcharinfo(0)+" взял лампу "+$places1[$place]+"!";
getitem $priz[$win],1;
}else{
announce ""+ strcharinfo(0)+" взяла лампу "+$places2[$place]+"!";
getitem $priz[$win],1;
end;
}}

Попробуй так.

Автор: KensyWhim: Дата: 12.27.2009

Цитата dimjke;17237:
Попробуй так.


Не катит. :(

Автор: dimjke: Дата: 12.27.2009

Убери анонсы и будет работать. Только что проверил..

Автор: 879546: Дата: 12.27.2009

Цитата KensyWhim;17226:
Объявляет на весь мир "Грац с макс лвлом бла бла бла"^_^, и в пронте стоит непись, что то типа Ранг, топ лвлов.

Тут уж велосипед точно не нужно изобретать
-	script	OnPCBaseLvUpEvent	-1,{
if(BaseLevel > 98)
announce "Поздравляем "+strcharinfo(0)+" с получением 99 уровня!!!",8;
else
end;
}

Но с рейтингом - смотря как тебе нужно. Первые 10 человек, достигшие макс. лвл, или как?

Автор: KensyWhim: Дата: 12.27.2009

Цитата 879546;17245:
Тут уж велосипед точно не нужно изобретать
-	script	OnPCBaseLvUpEvent	-1,{
if(BaseLevel > 98)
announce "Поздравляем "+strcharinfo(0)+" с получением 99 уровня!!!",8;
else
end;
}

Но с рейтингом - смотря как тебе нужно. Первые 10 человек, достигшие макс. лвл, или как?


Про велосипед: Это я знаю, я вообще изначально же создал тему, и задал вопрос про другое, я просто ответил было Раффу.

С лвлами: Изначально я вообще искал скрипт, пвп, мвп, лвл лидеров, но что не находил всё какое то багнутое, или через БД.

Автор: nomn: Дата: 12.27.2009

можно переписать, как будет время может займусь.

Автор: dimjke: Дата: 12.27.2009

Возьмите мой код и допишите, там делов на 15 минут не больше..=)

Автор: dimjke: Дата: 12.27.2009

for(set @i, 0; @i < getarraysize($Rank$); set @i, @i+1){mes @i+1+"."+$Rank$[@i]+".";close;}

Замени ;) и всё будет ок