Перейти к содержанию

Запорол немного, Подскажите пожалуйста


Рекомендуемые сообщения

Вопрос такой, Я хотел что бы нпц брал на 500к меньше зени с того у кого есть предмет 7056, вот скрипт


doubrius,44,55,4 script Волшебник Сардар 494,{
function checkcountstats;

mes .npc$;
mes "Привет, ^ff0000" +strcharinfo(0)+ "^000000. Хочешь Что бы я добавил статов или скилов?";
next;
mes "Если у тебя есть премиум Карточка То покупка будет дешевле на 500к Зени!";
next;
if (select("Да:Нет") - 1) close;
mes .npc$;
mes "А что именно Будешь покупать?";
next;
if( prompt( "Статы", "Очки навыков", "Ничего") == 3 ) close;
else if( @menu == 1 ) { // stats points
mes .npc$;
mes "Сколько очков ты хочешь? За каждое добавленное очко, я буду забирать 1.000.000 Зени";
next;
input .@amount;
if ( Zeny < ( .@amount * .cost ) || .@amount <= 0 ) {
mes .npc$;
mes "У тебя нет столько денег!";
close;

}
else {
mes .npc$;
mes "А куда именно " +.@amount+ " очков мы будем добавлять??";
next;
.@s = select("СТР:АГИ:ВИТ:ИНТ:ДЕКС:ЛАК:Ничего") -1;
if( .@s == 6 ) close;
else if( checkcountstats( .@s ) ) { // can't bypass the max stats def in player.conf
mes .npc$;
mes "У тебя уже достигнут лимит данного Стата!.";
close;
}
mes .npc$;
mes "Удачи!";
statusup2 .stat_up[.@s], .@amount;
set Zeny, Zeny - ( .@amount * .cost );
close;
}
}
// skills points
mes .npc$;
mes "Сколько очков вы хотите? За каждое добавленное очко, я буду забирать 1.000.000 Зени";
next;
input .@amount;
if ( Zeny < ( .@amount * .cost ) || .@amount <= 0 ) {
mes .npc$;
mes "У Вас недостаточно средств!";
close;
} else {
set Zeny, Zeny - ( .@amount * .cost );
set SkillPoint, SkillPoint + .@amount;
mes .npc$;
mes "Удачно Куплено " +.@amount+ " Очков навыков.";
close;
}

function checkcountstats {
.@eac = eaclass();
.@s = getarg(0);
if( .@eac&EAJL_BABY && .@eac&EAJL_THIRD ) {
if( readparam( .stat_up[.@s] ) >= .max_param_baby_3 )
return 1;
else
return 0;
}
else if( .@eac&EAJL_BABY ) {
if( readparam( .stat_up[.@s] ) >= .max_param_baby )
return 1;
else
return 0;
}
else if( .@eac&EAJL_THIRD ) {
if( readparam( .stat_up[.@s] ) >= .max_param_3 )
return 1;
else
return 0;
}
else {
if( readparam( .stat_up[.@s] ) >= .max_param )
return 1;
else
return 0;
}
}

OnInit:
set .npc$,"[ " +strnpcinfo(1)+ " ]"; // NPC Name
if (countitem(7056) > 1){
set .cost,1000000;
}
set .cost,1500000; // Zeny amount needed
//
setarray .stat_up, bStr, bAgi, bVit, bInt, bDex, bLuk;
.max_param = getbattleflag( "max_parameter" );
.max_param_3 = getbattleflag( "max_third_parameter" );
.max_param_baby = getbattleflag( "max_baby_parameter" );
.max_param_baby_3 = getbattleflag( "max_baby_third_parameter" );
end;
}

Но мап поругал меня



[Error]: script_rid2sd: fatal error ! player not attached!
[Debug]: Function: countitem (1 parameter):
[Debug]: Data: number value=7056
[Debug]: Source (NPC): ┬юы°хсэшъ ╤рЁфрЁ at doubrius (44,55)

Из-за чего?

Сразу скажу что пробовал уже

if (countitem(7056) < 1){

if (countitem(7056) == 1){

Ето еффекта не дало) Может я не туда ставлю, Если кто подскажет верный путь будет отлично просто)

Изменено пользователем Fizik
Ссылка на комментарий
Поделиться на другие сайты


doubrius,44,55,4 script Волшебник Сардар 494,{
function checkcountstats;
function cost;

mes .npc$;
mes "Привет, ^ff0000" +strcharinfo(0)+ "^000000. Хочешь Что бы я добавил статов или скилов?";
next;
mes "Если у тебя есть премиум Карточка То покупка будет дешевле на 500к Зени!";
next;
if (select("Да:Нет") - 1) close;
mes .npc$;
mes "А что именно Будешь покупать?";
next;
if( prompt( "Статы", "Очки навыков", "Ничего") == 3 ) close;
else if( @menu == 1 ) { // stats points
mes .npc$;
mes "Сколько очков ты хочешь? За каждое добавленное очко, я буду забирать 1.000.000 Зени";
next;
input .@amount;
if ( Zeny < ( .@amount * cost() ) || .@amount <= 0 ) {
mes .npc$;
mes "У тебя нет столько денег!";
close;

}
else {
mes .npc$;
mes "А куда именно " +.@amount+ " очков мы будем добавлять??";
next;
.@s = select("СТР:АГИ:ВИТ:ИНТ:ДЕКС:ЛАК:Ничего") -1;
if( .@s == 6 ) close;
else if( checkcountstats( .@s ) ) { // can't bypass the max stats def in player.conf
mes .npc$;
mes "У тебя уже достигнут лимит данного Стата!.";
close;
}
mes .npc$;
mes "Удачи!";
statusup2 .stat_up[.@s], .@amount;
set Zeny, Zeny - ( .@amount * cost() );
close;
}
}
// skills points
mes .npc$;
mes "Сколько очков вы хотите? За каждое добавленное очко, я буду забирать 1.000.000 Зени";
next;
input .@amount;
if ( Zeny < ( .@amount * cost() ) || .@amount <= 0 ) {
mes .npc$;
mes "У Вас недостаточно средств!";
close;
} else {
set Zeny, Zeny - ( .@amount * cost() );
set SkillPoint, SkillPoint + .@amount;
mes .npc$;
mes "Удачно Куплено " +.@amount+ " Очков навыков.";
close;
}

function checkcountstats {

.@eac = eaclass();
.@s = getarg(0);
if( .@eac&EAJL_BABY && .@eac&EAJL_THIRD ) {
if( readparam( .stat_up[.@s] ) >= .max_param_baby_3 )
return 1;
else
return 0;
} else if( .@eac&EAJL_BABY ) {
if( readparam( .stat_up[.@s] ) >= .max_param_baby )
return 1;
else
return 0;
} else if( .@eac&EAJL_THIRD ) {
if( readparam( .stat_up[.@s] ) >= .max_param_3 )
return 1;
else
return 0;
} else {
if( readparam( .stat_up[.@s] ) >= .max_param )
return 1;
else
return 0;
}

}

function cost {

if (countitem(7056)){
return 1000000;
} else {
return 1500000;
}

}

OnInit:
set .npc$,"[ " +strnpcinfo(1)+ " ]"; // NPC Name
setarray .stat_up, bStr, bAgi, bVit, bInt, bDex, bLuk;
.max_param = getbattleflag( "max_parameter" );
.max_param_3 = getbattleflag( "max_third_parameter" );
.max_param_baby = getbattleflag( "max_baby_parameter" );
.max_param_baby_3 = getbattleflag( "max_baby_third_parameter" );
end;

}

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

вот Спасибо))) Что-то я совсем уже забыл что как делается))) поставить функцию действительно простое ведь решение)))) Спасибо ещё раз вам!)

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...
Яндекс.Метрика