Назад

Немогу понять

Автор: gmden: Дата: 03.08.2011

Пытаюсь сделать мульти НПС но почемуто не получается

prontera,160,160,4 script Шапки 402,{
mes "[Шапочник]";
mes "Приветствую тебя. Я могу продать тебе любую шапку.";
mes "Что нибудь интересует?";
next;
menu "Шапки",sha,"Очки, ушки",och,"Крылья, шарфы",kri,"Ботинки",bot,"Кольца",kol,"Выход",L_close;
L_close:
close;
sha:
menu "Валя Шлем",wal,"Лорд кахи",lor,"Шлем Бога",bog,"Фезер беретта",fez,"Орк херо шлем",ork,"Выход",L_close;
wal:
- shop quest_shop1 -1,501:50
set @i,0;
mes "[Shop Quest NPC]";
mes "Что ты хочешь получить?";
mes "Выбери только одно";
callshop "quest_shop1",1;
npcshopattach "quest_shop1";
end;

OnBuyItem:
if(.BuildQuest) {
for(set .e,0; !compare(getarg(.e+1),"Zeny"); set .e,.e+2) {}
npcshopadditem "quest_shop1",getarg(.e+2),getarg(.e)*compare(getarg(.e+1),"SZeny");
setarray .Shop[.i],getarg(.e+2);
set .i,.i+1;
goto Quest_Setup;
}
if(.Shop[@i]!=@bought_nameid) for(set @i,1; 1; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set .i,@i; callsub Quest_Setup; }
for(set @i,1; !@e; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set @e,1; set .i,@i; callsub Quest_Setup; }
mes "[Shop Quest NPC]";
mes "Принеси мне";
for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) mes "^FF0000" + ((countitem(getarg(@i))>=getarg(@i+1))? "^00FF00":"") + "" + getarg(@i+1) + " " + getitemname(getarg(@i)) + " [" + countitem(getarg(@i)) + "/" + getarg(@i+1) + "]";
if(getarg(@i)) mes "^FF0000" + ((Zeny>=getarg(@i))? "^00FF00":"") + "" + getarg(@i) + " Zeny";
mes "^000000В замен я дам тебе:^0000FF";
for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) mes getarg(@i+1) + " " + getitemname(getarg(@i));
switch(select("Обменять:" + (((((getiteminfo(@bought_nameid,5) & 1) || (getiteminfo(@bought_nameid,5) & 256) || (getiteminfo(@bought_nameid,5) & 512)) && @equip==0))? "Примерить":"") + ":Нет спасибо")) {
case 1:
for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) if(countitem(getarg(@i)) < getarg(@i+1)) {
next;
mes "У тебя есть " + countitem(getarg(@i)) + " " + getitemname(getarg(@i)) + ", но мне нужно " + getarg(@i+1) + ".";
mes "Приобретите еще ^FF0000" + (getarg(@i+1)-countitem(getarg(@i))) + " " + getitemname(getarg(@i)) + "^000000.";
close;
}
if(Zeny < getarg(@i)) {
next;
mes "У тебя недостаточно зени";
mes "Принеси еще ^FF0000" + (getarg(@i)-Zeny) + " Zeny^000000.";
close;
}
for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) delitem getarg(@i),getarg(@i+1);
set Zeny,Zeny-getarg(@i);
for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) getitem getarg(@i),getarg(@i+1);
if (compare(getarg(@i,0),"announce")) announce strcharinfo(0) + " только что приобрел " + getitemname(@bought_nameid) + "!",bc_all;
close;
case 2:
set @bottomview, getlook(3);
set @topview, getlook(4);
set @midview, getlook(5);
addtimer 1000, strnpcinfo(3)+"::On_Leave";
set @equip,getiteminfo(@bought_nameid, 5);
set @view, getiteminfo(@bought_nameid, 11);
if(@equip != -1 && @view > 0) {
if(@equip & 1) atcommand "@changelook 3 " + @view;
if(@equip & 256) atcommand "@changelook 1 " + @view;
if(@equip & 512) atcommand "@changelook 2 " + @view;
}
next;
goto OnBuyItem;
case 3:
close;
}
On_Leave:
atcommand "@changelook 1 " + @topview;
atcommand "@changelook 2 " + @midview;
atcommand "@changelook 3 " + @bottomview;
set @equip,0;
set @view,0;
set @topview,0;
set @midview,0;
set @bottomview,0;
end;
OnInit:
npcshopitem "quest_shop1",0,0;
set .BuildQuest,1;
set .i,1;
Quest_Setup:
switch(.i) {
default: set .BuildQuest,0; set .e,0; set .i,0; end;
case 1: callsub OnBuyItem,7227,13,0,"SZeny",30111,1,"announce";
case 2: callsub OnBuyItem,7227,13,0,"SZeny",30112,1,"announce";
case 3: callsub OnBuyItem,7227,13,0,"SZeny",30113,1,"announce";
}
}
lor:
next;
close;
bog:
next;
close;
fez:
next;
close;
ork:
next;
close;
och:
menu "Очки",ochki,"Ушки",ysh,"Выход",L_close;
oca:
next;
close;
ysh:
next;
close;
kri:
menu "Крылья",Kril,"Шарфы",sharf,"Выход",L_close;
Kra:
next;
close;
sharf:
next;
close;
bot:
next;
close;
kol:
next;
close;
}

Скрипты отдельно работают
- shop quest_shop1 -1,501:50
prontera,160,160,4 script Шапки 402,{
set @i,0;
mes "[Shop Quest NPC]";
mes "Что ты хочешь получить?";
mes "Выбери только одно";
callshop "quest_shop1",1;
npcshopattach "quest_shop1";
end;

OnBuyItem:
if(.BuildQuest) {
for(set .e,0; !compare(getarg(.e+1),"Zeny"); set .e,.e+2) {}
npcshopadditem "quest_shop1",getarg(.e+2),getarg(.e)*compare(getarg(.e+1),"SZeny");
setarray .Shop[.i],getarg(.e+2);
set .i,.i+1;
goto Quest_Setup;
}
if(.Shop[@i]!=@bought_nameid) for(set @i,1; 1; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set .i,@i; callsub Quest_Setup; }
for(set @i,1; !@e; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set @e,1; set .i,@i; callsub Quest_Setup; }
mes "[Shop Quest NPC]";
mes "Принеси мне";
for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) mes "^FF0000" + ((countitem(getarg(@i))>=getarg(@i+1))? "^00FF00":"") + "" + getarg(@i+1) + " " + getitemname(getarg(@i)) + " [" + countitem(getarg(@i)) + "/" + getarg(@i+1) + "]";
if(getarg(@i)) mes "^FF0000" + ((Zeny>=getarg(@i))? "^00FF00":"") + "" + getarg(@i) + " Zeny";
mes "^000000В замен я дам тебе:^0000FF";
for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) mes getarg(@i+1) + " " + getitemname(getarg(@i));
switch(select("Обменять:" + (((((getiteminfo(@bought_nameid,5) & 1) || (getiteminfo(@bought_nameid,5) & 256) || (getiteminfo(@bought_nameid,5) & 512)) && @equip==0))? "Примерить":"") + ":Нет спасибо")) {
case 1:
for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) if(countitem(getarg(@i)) < getarg(@i+1)) {
next;
mes "У тебя есть " + countitem(getarg(@i)) + " " + getitemname(getarg(@i)) + ", но мне нужно " + getarg(@i+1) + ".";
mes "Приобретите еще ^FF0000" + (getarg(@i+1)-countitem(getarg(@i))) + " " + getitemname(getarg(@i)) + "^000000.";
close;
}
if(Zeny < getarg(@i)) {
next;
mes "У тебя недостаточно зени";
mes "Принеси еще ^FF0000" + (getarg(@i)-Zeny) + " Zeny^000000.";
close;
}
for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) delitem getarg(@i),getarg(@i+1);
set Zeny,Zeny-getarg(@i);
for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) getitem getarg(@i),getarg(@i+1);
if (compare(getarg(@i,0),"announce")) announce strcharinfo(0) + " только что приобрел " + getitemname(@bought_nameid) + "!",bc_all;
close;
case 2:
set @bottomview, getlook(3);
set @topview, getlook(4);
set @midview, getlook(5);
addtimer 1000, strnpcinfo(3)+"::On_Leave";
set @equip,getiteminfo(@bought_nameid, 5);
set @view, getiteminfo(@bought_nameid, 11);
if(@equip != -1 && @view > 0) {
if(@equip & 1) atcommand "@changelook 3 " + @view;
if(@equip & 256) atcommand "@changelook 1 " + @view;
if(@equip & 512) atcommand "@changelook 2 " + @view;
}
next;
goto OnBuyItem;
case 3:
close;
}
On_Leave:
atcommand "@changelook 1 " + @topview;
atcommand "@changelook 2 " + @midview;
atcommand "@changelook 3 " + @bottomview;
set @equip,0;
set @view,0;
set @topview,0;
set @midview,0;
set @bottomview,0;
end;
OnInit:
npcshopitem "quest_shop1",0,0;
set .BuildQuest,1;
set .i,1;
Quest_Setup:
switch(.i) {
default: set .BuildQuest,0; set .e,0; set .i,0; end;
case 1: callsub OnBuyItem,7227,13,0,"SZeny",30111,1,"announce";
case 2: callsub OnBuyItem,7227,13,0,"SZeny",30112,1,"announce";
case 3: callsub OnBuyItem,7227,13,0,"SZeny",30113,1,"announce";
}
}

Автор: Renegade: Дата: 03.08.2011

как что? вот портянка говнокода, отдебагьте за меня.

Автор: Kill Spirit: Дата: 03.08.2011

Если что-то не получается, что-нибудь сделай.

Автор: gmden: Дата: 03.08.2011

Ну вы просто ППЦ. Я по русски сказал Бля Скрипт отдельно работает. Но когда его вставляешь через меню (menu "Шапки",sha; Почему то перестает работать.)

Я уже сутки экспериментирую над этим не выходит ВОТ и Спросил.

А ВЫ ЕСЛИ НЕ ЗНАЕТЕ НЕНАДО ОБСЕРАТЬ!!!

Человек помощи попросил а вы херню городите.

Автор: Kill Spirit: Дата: 03.08.2011

Покажи мне пожалуйста, где ты об этом:

Но когда его вставляешь через меню (menu "Шапки",sha; Почему то перестает работать.)

В первом посте писал? Неуч
Замени menu "Шапки",sha; на if(select("Шапки:Уйти")==2) close;

Автор: S2pidsMan: Дата: 03.08.2011

Цитата Kill Spirit:
Покажи мне пожалуйста, где ты об этом:

В первом посте писал? Неуч
Замени menu "Шапки",sha; на if(select("Шапки:Уйти")==2) close;


Цитата gmden:
Пытаюсь сделать мульти НПС но почемуто не получается

Не?)

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

Цитата gmden;35624:


lor:
next;
close;
bog:
next;
close;
fez:
next;
close;
ork:
next;
close;
och:
menu "Очки",ochki,"Ушки",ysh,"Выход",L_close;
oca:
next;
close;
ysh:
next;
close;
kri:
menu "Крылья",Kril,"Шарфы",sharf,"Выход",L_close;
Kra:
next;
close;
sharf:
next;
close;
bot:
next;
close;
kol:
next;
close;


а что, это оригинально! :p

Автор: gmden: Дата: 03.09.2011

нет это просто для проверки. Если я ставлю на функцию sha: вместо скрипта next;
close; то Меню вся норм работает и Сам скрипт отдельно пашет. Но когда я вставляю скрипт в меню под функцию любую. Он перестает работать.

Автор: Tailss: Дата: 03.10.2011

Цитата S2pidsMan;35652:
Не?)


сборник самых сочных епик фейлов за 2011 год
:D

Автор: defo: Дата: 03.23.2011

Даже читать не охото, что первое увидил, отписываю...

Цитата gmden;35624:

menu "Шапки",sha,"Очки, ушки",och,"Крылья, шарфы",kri,"Ботинки",bot,"Кольца",kol,"Выход",L_cl_ose;

Так принято, пробел ставить то?