Назад

Проблема с NPC

Автор: ll Daggerfall ll: Дата: 02.21.2011

Добрый день. Взял на себя смелость подредактировать NPC
Получилость вот это:

// Получение Год-Лайк вещей, подписанных ником покупателя! 
// Кахи и Валя не подписываются!
// by unded


prontera,164,169,4 script GodLike 405,{

mes "[GodLike]";
mes "Добрый день.";
mes "Я продаю веши которые обладают силой богов!!!";
next;

switch(select("Lord Kaho's Horn(12 TCG)","Valkyrie Helmet(14 TCG)","Mjolnir(11 TCG)","Sleipnir(16 TCG)","Brisingamen(12 TCG)","STR Megingjard(15 TCG)","Scarf (8)","INT Megingjard(15 TCG)","DEX Megingjard(15 TCG)","VIT Megingjard(15 TCG)"))
{
case 1:
mes "[GodLike]";
mes "STR +5 INT +5";
mes "VIT +10 AGI +10";
mes "LUK +10 MDEF +10";
mes "Принеси мне 12 TCG.";

if(countitem(7227)<12) goto L_no_tcg;
delitem 7227,12;
next;
getitem 5013,1;
mes "[GodLike]";
mes "Ты получил Lord Kaho's Horn!";
close;

break;

case 2:
mes "[GodLike]";
mes "Все статы +15.";
mes "Принеси мне 14 TCG.";


if(countitem(7227)<14) goto L_no_tcg;
delitem 7227,14;
next;
getitem 5013,1;
mes "[GodLike]";
mes "Ты получил Valkyrie Helmet!";
close;
break;

case 3:
mes "[GodLike]";
mes "Гигантский молот бога грома Тора,";
mes "который всегда возвращается к своему владельцу.";
mes "Уничтожает врагов молниями.";
mes "Сноровка + 40";
mes "Сила + 15.";
mes "Постоянно увеличена Скорость атаки.";

callfunc "it",7227,11,1530;
break;

case 4:
mes "[GodLike]";
mes "Сапоги, названные в честь боевого коня бога Одина.";
mes "Max HP/SP + 20%.";
mes "Восстановление SP + 15%";
mes "Магическая защита + 10.";
mes "Постоянно увеличена Скорость передвижения.";

callfunc "it",7227,16,2410;
break;

case 5:
mes "[GodLike]";
mes "Легендарное ожерелье богини красоты Фрейи.";
mes "Сила + 6";
mes "Ловкость + 6";
mes "Интеллект + 6";
mes "Живучесть + 6";
mes "Удача +10";
callfunc "it",7227,12,2630;
break;

case 6:
mes "[GodLike]";
mes "Легендарный пояс бога грома Тора,";
mes "увеличивающий силу своего владельца.";
mes "Сила + 40";
mes "Магическая защита + 7";

callfunc "it",7227,15,2629;
break;

case 7:
mes "[GodLike]";
mes "Шарф настоящего гангстера.";
mes "+5 ко всем статам, слот";
mes "Принеси мне 8 TCG Card!";


if(countitem(7227)<8) goto L_no_tcg;
delitem 7227,8;
next;
getitem 5361,1;
mes "[GodLike]";
mes "Ты получил Scarf!";
close;
break;

case 8:
mes "[GodLike]";
mes "Легендарный пояс бога грома Тора,";
mes "увеличивающий интеллект своего владельца.";
mes "Интеллект + 40";
mes "Магическая защита + 7";

callfunc "it",7227,15,20060;
break;

case 9:
mes "[GodLike]";
mes "Легендарный пояс бога грома Тора,";
mes "увеличивающий сноровку своего владельца.";
mes "Сноровка + 40";
mes "Магическая защита + 7";

callfunc "it",7227,15,20061;
break;

case 10:
mes "[GodLike]";
mes "Легендарный пояс бога грома Тора,";
mes "увеличивающий живучесть своего владельца.";
mes "Живучесть + 40";
mes "Магическая защита + 7";

callfunc "it",7227,15,20059;
break;
}


}


function script it {

set @TCG, getarg(0);
set @numTCG, getarg(1);
set @getIt, getarg(2);

if (countitem(@TCG) < @numTCG) goto L_no_tcg;

getnameditem @getIt,strcharinfo(0);
delitem @TCG,@numTCG;
close;
end;

L_no_tcg:
mes "[GodLike]";
mes "Нехватает TCG!!";
close;
}


Мапсерв пишет: unknown error in line '6'
Помогите найти ошибку, пожалуйста



И еще 1 вопросик: почему при рестарте сервера некоторые кастомные нпц подгружаются, а некоторые нет? Я проверял, они рабочие, просто подгружаю сам...

Автор: ll Daggerfall ll: Дата: 02.21.2011

Цитата Mel9;34395:
prontera,164,169,4!TAB!script!TAB!GodLike!TAB!405,{


Спасибо!
Ступил, перенося из браузера(

Автор: ll Daggerfall ll: Дата: 02.21.2011

Еще проблема: выдает только не подписанные вещи. Меги/бризу/слипы/мьёлнир- не выдает.

Автор: Mel9: Дата: 02.21.2011

Вот это:
if(countitem(7227)<12) goto L_no_tcg;
delitem 7227,12;
next;
getitem 5013,1;
На это:
callfunc "it",7227,12,5013;
7227-TCG
12-кол-во
5013-ЛКХ
Вот так нужно.

Автор: ll Daggerfall ll: Дата: 02.21.2011

Нет, кахи не должны подписываться, они у меня слотовые.

На айди валькошлема внимание не обращайте, если что.

Все выдавалось идеально до ввода последних 4х вещей- шарфика и 3х мег.

Автор: Jarek: Дата: 02.21.2011

Цитата ll Daggerfall ll;34397:
Еще проблема: выдает только не подписанные вещи. Меги/бризу/слипы/мьёлнир- не выдает.


О Даг! Привет.
А ты смотрел, что тебе мап писал?
Полюбому, про отсутствующий лейбл, у тебя лейбл есть только в функции (хотя он там не нужен), а в самом нпц нет.

prontera,164,169,4	script	GodLike	405,{ 

mes "[GodLike]";
mes "Добрый день.";
mes "Я продаю веши которые обладают силой богов!!!";
next;

switch(select("Lord Kaho's Horn(12 TCG)","Valkyrie Helmet(14 TCG)","Mjolnir(11 TCG)","Sleipnir(16 TCG)","Brisingamen(12 TCG)","STR Megingjard(15 TCG)","Scarf (8)","INT Megingjard(15 TCG)","DEX Megingjard(15 TCG)","VIT Megingjard(15 TCG)"))
{
case 1:
mes "[GodLike]";
mes "STR +5 INT +5";
mes "VIT +10 AGI +10";
mes "LUK +10 MDEF +10";
mes "Принеси мне 12 TCG.";
if(countitem(7227)<12) goto L_no_tcg;
next;
delitem 7227,12;
getitem 5013,1;
mes "[GodLike]";
mes "Ты получил Lord Kaho's Horn!";
close;
break;
case 2:
mes "[GodLike]";
mes "Все статы +15.";
mes "Принеси мне 14 TCG.";
if(countitem(7227)<14) goto L_no_tcg;
next;
delitem 7227,14;
getitem 5013,1;
mes "[GodLike]";
mes "Ты получил Valkyrie Helmet!";
close;
break;
case 3:
mes "[GodLike]";
mes "Гигантский молот бога грома Тора,";
mes "который всегда возвращается к своему владельцу.";
mes "Уничтожает врагов молниями.";
mes "Сноровка + 40";
mes "Сила + 15.";
mes "Постоянно увеличена Скорость атаки.";
callfunc "it",7227,11,1530;
break;
case 4:
mes "[GodLike]";
mes "Сапоги, названные в честь боевого коня бога Одина.";
mes "Max HP/SP + 20%.";
mes "Восстановление SP + 15%";
mes "Магическая защита + 10.";
mes "Постоянно увеличена Скорость передвижения.";
callfunc "it",7227,16,2410;
break;
case 5:
mes "[GodLike]";
mes "Легендарное ожерелье богини красоты Фрейи.";
mes "Сила + 6";
mes "Ловкость + 6";
mes "Интеллект + 6";
mes "Живучесть + 6";
mes "Удача +10";
callfunc "it",7227,12,2630;
break;
case 6:
mes "[GodLike]";
mes "Легендарный пояс бога грома Тора,";
mes "увеличивающий силу своего владельца.";
mes "Сила + 40";
mes "Магическая защита + 7";
callfunc "it",7227,15,2629;
break;
case 7:
mes "[GodLike]";
mes "Шарф настоящего гангстера.";
mes "+5 ко всем статам, слот";
mes "Принеси мне 8 TCG Card!";
if(countitem(7227)<8) goto L_no_tcg;
next;
delitem 7227,8;
getitem 5361,1;
mes "[GodLike]";
mes "Ты получил Scarf!";
close;
break;
case 8:
mes "[GodLike]";
mes "Легендарный пояс бога грома Тора,";
mes "увеличивающий интеллект своего владельца.";
mes "Интеллект + 40";
mes "Магическая защита + 7";
callfunc "it",7227,15,20060;
break;
case 9:
mes "[GodLike]";
mes "Легендарный пояс бога грома Тора,";
mes "увеличивающий сноровку своего владельца.";
mes "Сноровка + 40";
mes "Магическая защита + 7";
callfunc "it",7227,15,20061;
break;
case 10:
mes "[GodLike]";
mes "Легендарный пояс бога грома Тора,";
mes "увеличивающий живучесть своего владельца.";
mes "Живучесть + 40";
mes "Магическая защита + 7";
callfunc "it",7227,15,20059;
break;
}
L_no_tcg:
next;
mes "[GodLike]";
mes "Нехватает TCG!!";
close;
}

function script it {

set @TCG, getarg(0);
set @numTCG, getarg(1);
set @getIt, getarg(2);

if (countitem(@TCG) < @numTCG){
next;
mes "[GodLike]";
mes "Нехватает TCG!!";
close;}

getnameditem @getIt,strcharinfo(0);
delitem @TCG,@numTCG;
close;
end;
}

Для красивости добавил некст в лейбл

И да, если планируется продавать только за тцг, то передавать 7227 через функцию необязательно, достаточно изменить саму функцию

Автор: ll Daggerfall ll: Дата: 02.21.2011

Привет Вов!
Ошибка выходит в том, что ты написал.

Автор: ll Daggerfall ll: Дата: 02.21.2011

Нашел в чем проблема, все работает.
Спасибо, Джаре!