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

Шапочник Для вас!


Knight

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

Простыня говнокода



//= Шапочник

//===== Идеи лута, и шапок Vulcano, Enigma ================================

//===== Исполнение [GM]-Vampire ================================

//= Скрипт сделан для Edvent RO

//===============================================================

prontera.gat,164,162,4 script Необычные Шапки 62,{

mes "^FF0000[Шапочница]^000000";

mes "Здравствуй, ^FF0000"+strcharinfo(0)+"^000000";

mes "^FF0000[GM]-ARAB^000000 научил меня делать красивые шапочки";

mes "Для того, чтоб сделать шапочку, нужно принести мне необходимый лут, который я задам.";

mes "Выбирай шапочку которую ты хочешь:";

next;

switch(select("Angel of Ghost","Alice Doll","Helmet of Orc Hero","Yellow Ribbon","Silver Tiara","Angeling Hat","Tiger Mask","Detective Hat","Baseball Cap","Winter Hat","X Hairpin","Valkyrie Helm","Red Tailed Ribbon","Mystic Rose","Gangster Scarf"))

{



case 1:

mes "^FF0000[Шапочница]^000000";

mes "Ты выбрал маску Angel of Ghost";

mes "^FF0000Особеность маски:";

mes "+1 str^000000";

next;

mes "Для маски тебе понадобиться следующий лут:";

mes "1) 250 Soft Feanter";

mes "2) 10 Gas Mask";

mes "3) 10 White Dyestuff";

mes "500,000 Zeny";

mes "Ну что, проверяем лут?";

next;

switch(select("Да","Оу, неТ, я не сОбрАл..ЫЫы"))

{

case 1:

if (countitem(7063) < 250) goto L_no_col;

if (countitem(5005) < 10) goto L_no_lut;

if (countitem(982) < 10) goto L_no_it;

if (Zeny < 500000) goto nozeny;

delitem 7063,250;

delitem 5005,10;

delitem 982,10;

set Zeny,zeny-500000;

getnameditem 5389,strcharinfo(0);

close;

case 2:

close;

}



case 2:

mes "^FF0000[Шапочница]^000000";

mes "Ты выбрал Alice Doll";

mes "^FF0000Особеность шапки:";

mes "+1 str, 10% По атаки по людям.^000000";

next;

mes "Для шапки тебе понадобиться следующий лут :";

mes "1) 10 Soft Aporn";

mes "2) 200 Alice Aporn";

mes "3) 10 Cobaltblue Dyestuff";

mes "250,000";

mes "Ну что, проверяем лут?";

next;

switch(select("Да","Оу, неТ, я не сОбрАл..ЫЫы"))

{



case 1:

if (Zeny < 250000) goto nozeny;

if (countitem(661) < 10) goto L_no_col;

if (countitem(7047) < 200) goto L_no_lut;

if (countitem(978) < 10) goto L_no_it;

delitem 661,10;

delitem 7047,200;

delitem 978,10;

set Zeny,zeny-250000;

getnameditem 5137,strcharinfo(0);

close;

case 2:

close;

}



case 3:

mes "^FF0000[Шапочница]^000000";

mes "Ты выбрал Helmet of Orc Hero";

mes "^FF0000Особеность шапки:";

mes "STR + 2,VIT + 1^000000";

next;

mes "Для этой шапки тебе понадобиться следующий лут:";

mes "1) 500 Jellopy";

mes "2) 50 Heroic Emblem";

mes "3) 10 Muscovite";

mes "100,000 Zeny";

mes "Ну что, проверяем лут?";

next;

switch(select("Да","Оу, неТ, я не сОбрАл..ЫЫы"))

{



case 1:

if (Zeny < 100000) goto nozeny;

if (countitem(909) < 500) goto L_no_col;

if (countitem(968) < 50) goto L_no_lut;

if (countitem(7292) < 10) goto L_no_it;

delitem 909,500;

set Zeny,zeny-100000;

delitem 968,50;

delitem 7292,10;

getnameditem 5094,strcharinfo(0);

close;

case 2:

close;

}



case 4:

mes "^FF0000[Шапочница]^000000";

mes "Ты выбрал Yellow Ribbon";

mes "^FF0000Особеность шапки:";

mes "Luk+2,Vit + 2,AtkDef 10^000000";

next;

mes "Для этой шапки тебе понадобиться следующий лут:";

mes "1) 300 Yellow Herb";

mes "2) 20 Ribbon";

mes "3) 10 Yellow Dyestuff";

mes "Ну что, проверяем лут?";

mes "100,000 Zeny";

next;

switch(select("Да","Оу, неТ, я не сОбрАл..ЫЫы"))

{



case 1:

if (Zeny < 100000) goto nozeny;

if (countitem(508) < 300) goto L_no_col;

if (countitem(2208) < 20) goto L_no_lut;

if (countitem(976) < 10) goto L_no_it;

delitem 508,300;

delitem 2208,20;

set Zeny,zeny-100000;

delitem 976,10;

getnameditem 5278,strcharinfo(0);

close;

case 2:

close;

}



case 5:

mes "^FF0000[Шапочница]^000000";

mes "Ты выбрал Silver Tiara";

mes "^FF0000Особеность шапки:";

mes "Int+2^000000";

next;

mes "Для этой шапки тебе понадобиться следующий лут:";

mes "1) 10 Tiara";

mes "2) 10 Circlet(1)";

mes "3) 10 White Dyestuff";

mes "150,000 Zeny";

mes "Ну что, проверяем лут?";

next;

switch(select("Да","Оу, неТ, я не сОбрАл..ЫЫы"))

{



case 1:

if (Zeny < 150000) goto nozeny;

if (countitem(2234) < 10) goto L_no_col;

if (countitem(2233) < 10)goto L_no_lut;

if (countitem(982) < 10) goto L_no_it;

delitem 2234,10;

delitem 2233,10;

delitem 982,10;

set Zeny,zeny-150000;

getnameditem 5261,strcharinfo(0);

close;

case 2:

close;

}



case 6:

mes "^FF0000[Шапочница]^000000";

mes "Ты выбрал Angeling Hat";

mes "^FF0000Особеность шапки:";

mes "10% защита от людей^000000";

next;

mes "Для этой шапки тебе понадобиться следующий лут:";

mes "1) 20 Santa Poring Card";

mes "2) 20 Poring Card";

mes "3) 10 White Dyestuff";

mes "1,000,000 Zeny";

mes "Ну что, проверяем лут?";

next;

switch(select("Да","Оу, неТ, я не сОбрАл..ЫЫы"))

{



case 1:

if (Zeny < 1000000) goto nozeny;

if (countitem(4005) < 20) goto L_no_it;

if (countitem(4001) < 20)goto L_no_lut;

if (countitem(982) < 10) goto L_no_col;



set Zeny,zeny-1000000;

delitem 4005,20;

delitem 4001,20;

delitem 982,10;

getnameditem 5132,strcharinfo(0);

close;

case 2:

close;

}



case 7:

mes "^FF0000[Шапочница]^000000";

mes "Ты выбрал Tiger Mask";

mes "^FF0000Особеность шапки:";

mes "Str+3,MaxHP +100^000000";

next;

mes "Для этой шапки тебе понадобиться следующий лут:";

mes "1) 500 Tiger Skin";

mes "100,000 Zeny";

next;

switch(select("Да","Оу, неТ, я не сОбрАл..ЫЫы"))

{



case 1:

if (Zeny < 100000) goto nozeny;

if (countitem(7267) < 500) goto L_no_it;

delitem 7267,500;

set Zeny,zeny-100000;

getnameditem 5098,strcharinfo(0);

close;

case 2:

close;

}



case 8:

mes "^FF0000[Шапочница]^000000";

mes "Ты выбрал Detective Hat";

mes "^FF0000Особеность шапки:";

mes "Детективная шапка.Какая пренадлежит Шерлоку Холмсу^000000";

next;

mes "Для этой шапки тебе понадобиться следующий лут:";

mes "1)40 Biotite ";

mes "50,000 Zeny";

next;

switch(select("Да","Оу, неТ, я не сОбрАл..ЫЫы"))

{



case 1:

if (Zeny < 50000) goto nozeny;

if (countitem(7297) < 40) goto L_no_it;

delitem 7297,40;

set Zeny,zeny-50000;

getnameditem 5108,strcharinfo(0);

close;

case 2:

close;

}



case 9:

mes "^FF0000[Шапочница]^000000";

mes "Ты выбрал Baseball Cap";

mes "^FF0000Особеность шапки:";

mes "Простая, красивая кепка^000000";

next;

mes "Для этой шапки тебе понадобиться следующий лут:";

mes "1)5 Сap ";

mes "2)10 Cobaltblue Dyestuff ";

mes "3)50 Soft Feather ";

mes "500,000 Zeny";

next;

switch(select("Да","Оу, неТ, я не сОбрАл..ЫЫы"))

{



case 1:

if (Zeny < 500000) goto nozeny;

if (countitem(2226) < 5) goto L_no_it;

if (countitem(978) < 10) goto L_no_col;

if (countitem(7063) < 50) goto L_no_lut;

delitem 2226,5;

delitem 978,10;

set Zeny,zeny-500000;

delitem 7063,50;

getnameditem 5147,strcharinfo(0);

close;

case 2:

close;

}



case 10:

mes "^FF0000[Шапочница]^000000";

mes "Ты выбрал Winter Hat";

mes "^FF0000Особеность шапки:";

mes "Статус фриза 10%^000000";

next;

mes "Для этой шапки тебе понадобиться следующий лут:";

mes "1)500 Tiger Panty ";

mes "2)10 Black Dyestuff ";

mes "3)50 Royal Jelly Zeny ";

mes "150,000 Zeny";

next;

switch(select("Да","Оу, неТ, я не сОбрАл..ЫЫы"))

{



case 1:

if (Zeny < 150000) goto nozeny;

if (countitem(7267) < 500) goto L_no_it;

if (countitem(983) < 10) goto L_no_col;

if (countitem(526) < 50) goto L_no_lut;

delitem 7267,500;

delitem 983,10;

set Zeny,zeny-150000;

delitem 526,50;

getnameditem 5115,strcharinfo(0);

close;

case 2:

close;

}



case 11:

mes "^FF0000[Шапочница]^000000";

mes "Ты выбрал X Hairpin";

mes "^FF0000Особеность шапки:";

mes "Статус фриза 10%^000000";

next;

mes "Для этой шапки тебе понадобиться следующий лут:";

mes "1)1 Stellar ";

mes "2)1 Black Dyestuff ";

mes "3)100 Witch's Medal";

mes "500,000 Zeny";

next;

switch(select("Да","Оу, неТ, я не сОбрАл..ЫЫы"))

{



case 1:

if (Zeny < 500000) goto nozeny;

if (countitem(2294) < 1) goto L_no_col;

if (countitem(983) < 1) goto L_no_col;

if (countitem(7313) < 100) goto L_no_lut;

delitem 2294,1;

delitem 983,1;

set Zeny,zeny-500000;

delitem 7313,100;

getnameditem 5079,strcharinfo(0);

close;

case 2:

close;

}



case 12:

mes "^FF0000[Шапочница]^000000";

mes "Ты выбрал Valkyrie Helm";

mes "^FF0000Особеность шапки:";

mes "+50стр +50инт +100декс^000000";

next;

mes "Для этой шапки тебе понадобиться следующий лут:";

mes "1)5 Valkyrie Armor ";

mes "2)2000 Darkness Rune ";

mes "3)2000 Bloody Rune";

mes "100,000,000 Zeny";

next;

switch(select("Да","Оу, неТ, я не сОбрАл..ЫЫы"))

{



case 1:

if (Zeny < 1000000) goto nozeny;

if (countitem(2357) < 3) goto L_no_col;

if (countitem(7511) < 300) goto L_no_col;

if (countitem(7563) < 400) goto L_no_lut;

delitem 2357,5;

delitem 7511,2000;

set Zeny,zeny-100000000;

delitem 7563,2000;

getnameditem 5826,strcharinfo(0);

close;

case 2:

close;

}



case 13:

mes "^FF0000[Шапочница]^000000";

mes "Ты выбрал Red Tailed Ribbon";

mes "^FF0000Особеность шапки:";

mes "+1 ковсем статам^000000";

next;

mes "Для этой шапки тебе понадобиться следующий лут:";

mes "1)1 Ribbon ";

mes "2)1 Big Ribbon ";

mes "3)1 White Dyestuff";

mes "1,000,000 Zeny";

next;

switch(select("Да","Оу, неТ, я не сОбрАл..ЫЫы"))

{



case 1:

if (Zeny < 1000000) goto nozeny;

if (countitem(2209) < 1) goto L_no_it;

if (countitem(2244) < 1) goto L_no_lut;

if (countitem(982) < 1) goto L_no_col;

delitem 2209,1;

delitem 2244,1;

set Zeny,zeny-1000000;

delitem 982,1;

getnameditem 5083,strcharinfo(0);

close;

case 2:

close;

}



case 14:

mes "^FF0000[Шапочница]^000000";

mes "Ты выбрал Red Tailed Ribbon";

mes "^FF0000Особеность шапки:";

mes "+1 ковсем статам^000000";

next;

mes "Для этой шапки тебе понадобиться следующий лут:";

mes "1)50 2carat diamond ";

mes "2)50 Witherless Rose";

mes "3)1 White Dyestuff";

mes "1,000,000 Zeny";

next;

switch(select("Да","Оу, неТ, я не сОбрАл..ЫЫы"))

{



case 1:

if (Zeny < 1000000) goto nozeny;

if (countitem(731) < 50) goto L_no_col;

if (countitem(748) < 50) goto L_no_lut;

if (countitem(982) < 1) goto L_no_it;

delitem 731,50;

delitem 748,50;

set Zeny,zeny-1000000;

delitem 982,1;

getnameditem 5117,strcharinfo(0);

close;

case 2:

close;

}

case 15:

mes "^FF0000[Шапочница]^000000";

mes "Ты выбрал Gangster Scarf";

mes "^FF0000Особеность шапки:";

mes "+5 к атаке +1слот^000000";

next;

mes "Для этой шапки тебе понадобиться следующий лут:";

mes "1)1 Bronze Coin ";


next;

switch(select("Да","Оу, неТ, я не сОбрАл..ЫЫы"))

{



case 1:

if (countitem(673) < 1) goto L_no_col;

delitem 673,1;

getnameditem 5361,strcharinfo(0);

close;

case 2:

close;

}

}

nozeny:

mes "^FF0000[Шапочница]^000000";

mes "У вас не хватает Zeny";

close;



L_no_lut:

mes "^FF0000[Шапочница]^000000";

mes "Нету лута!!";

close;



L_no_col:

mes "^FF0000[Шапочница]^000000";

mes "Нехватает Краски!!";

close;



L_no_it:

mes "^FF0000[Шапочница]^000000";

mes "Нету вещей!!";

close;

}
//===== Athena Script ===========================================

Изменено пользователем Кеник
=\ Спрятал эту простыню под спойлер.
  • Upvote 1
  • Downvote 3
Ссылка на комментарий
Поделиться на другие сайты

Араб. Радуйся, что я не могу банить. Я бы тебе щас пожизненно влепил, за такую, мать ёё, простыню без тега code и спойлера

Оу, неТ, я не сОбрАл..ЫЫы

Сделайте меня "развидеть" это! >.<

P.S. @arab, отступы! Без них вот эта байда нечитабельна.

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

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

xCBKr.png


//===== eAthena Script =======================================
//= Euphy's Quest Shop
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.4a - eAthena
//===== Description: =========================================
//= A dynamic quest shop based on Lunar's, with easier config.
//= Includes support for multiple shops & cashpoints.
//= Item Preview script by ToastOfDoom.
//============================================================

prontera,164,203,6 script Quest Shop 998,{
function Add; function Chk; function Slot; function A_An;
if(.Shops$ != "") set .@i,1;
else {
set .@menu$,"";
for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1)
set .@menu$, .@menu$+.Shops$[.@i]+":";
set .@i, select(.@menu$); }
dispbottom "Select one item at a time.";
callshop "qshop"+.@i,1;
npcshopattach "qshop"+.@i;
end;
function Add {
if (getitemname(getarg(1))=="null") {
debugmes "Quest reward #"+getarg(1)+" invalid (skipped)."; return; }
for(set .@n,5; .@n<127; set .@n,.@n+2) {
if (!getarg(.@n,0)) break;
if (getitemname(getarg(.@n))=="null") {
debugmes "Quest requirement #"+getarg(.@n)+" invalid (skipped)."; return; } }
for(set .@i,2; .@i<.@n; set .@i,.@i+1)
set getd(".q_"+getarg(1)+"["+(.@i-2)+"]"), getarg(.@i);
npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);
sleep 1;
return; }
function Chk {
if (getarg(0)<getarg(1)) { set @qe0,1; return "^FF0000"; }
else return "^00FF00"; }
function Slot {
set .@s$,getitemname(getarg(0));
switch(.ShowSlot){
case 1: if (!getitemslots(getarg(0))) return .@s$;
case 2: if (getiteminfo(getarg(0),11)>0) return .@s$+" ["+getitemslots(getarg(0))+"]";
default: return .@s$; } }
function A_An {
setarray .@A$[0],"a","e","i","o","u";
set .@B$, "_"+getarg(0);
for(set .@i,0; .@i<5; set .@i,.@i+1)
if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0);
return "a "+getarg(0); }
OnBuyItem:
set .@q[0],@bought_nameid;
copyarray .@q[1],getd(".q_"+@bought_nameid+"[0]"),getarraysize(getd(".q_"+@bought_nameid+"[0]"));
if (!.@q[1]) { message strcharinfo(0),"An error has occurred."; end; }
mes "[Quest Shop]";
mes "Reward: ^0055FF"+((.@q[1]>1)?.@q[1]+"x ":"")+Slot(.@q[0])+"^000000";
mes "Requirements:";
if (.@q[2]) mes " > "+Chk(Zeny,.@q[2])+.@q[2]+" Zeny^000000";
if (.@q[3]) mes " > "+Chk(getd(.Points$[0]),.@q[3])+.@q[3]+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+.@q[3]+")^000000";
if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2)
mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1])+((.DisplayID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+.@q[.@i+1]+")^000000";
next;
set @qe1, getiteminfo(.@q[0],5); set @qe2, getiteminfo(.@q[0],11);
addtimer 1000, strnpcinfo(1)+"::onend";
while(1){
switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((((@qe1&1) || (@qe1&256) || (@qe1&512)) && @qe2>0 && !@qe6)?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) {
case 1:
if (@qe0) {
mes "[Quest Shop]";
mes "You're missing one or more quest requirements.";
close; }
if (!checkweight(.@q[0],.@q[1])) {
mes "[Quest Shop]";
mes "^FF0000You need "+(((.@q[1]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";
close; }
if (.@q[2]) set Zeny, Zeny-.@q[2];
if (.@q[3]) setd .Points$[0], getd(.Points$[0])-.@q[3];
if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2)
delitem .@q[.@i],.@q[.@i+1];
getitem .@q[0],.@q[1];
if (.Announce) announce strcharinfo(0)+" has created "+A_An(getitemname(.@q[0]))+"!",0;
specialeffect2 699;
close;
case 2:
set @qe3, getlook(3); set @qe4, getlook(4); set @qe5, getlook(5);
if (@qe1&1) atcommand "@changelook 3 "+@qe2;
if (@qe1&256) atcommand "@changelook 1 "+@qe2;
if (@qe1&512) atcommand "@changelook 2 "+@qe2;
set @qe6,1;
break;
case 3:
close; } }
onend:
if (@qe6) { atcommand "@changelook 3 "+@qe3; atcommand "@changelook 1 "+@qe4; atcommand "@changelook 2 "+@qe5; }
for(set .@i,0; .@i<7; set .@i,.@i+1) setd "@qe"+.@i,0;
end;
OnInit:
// --------------------- Config ---------------------
// Custom points, if needed: "<variable>","<name to display>"
setarray .Points$[0],"#CASHPOINTS","Cash Points";
set .Announce,1; // Announce quest completion? (1: yes / 0: no)
set .ShowSlot,1; // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never)
set .DisplayID,0; // Show item IDs? (1: yes / 0: no)
set .ShowZeny,0; // Show Zeny cost, if any? (1: yes / 0: no)
// Shop categories, if needed: "<Shop 1>","<Shop 2>"{,...};
// Duplicate dummy data for any additional shops (bottom of script).
// If no categories, use the second line instead (remove //).
setarray .Shops$[1],"Headgears","Weapons","Other";
// set .Shops$,"n/a";
// Add(<shop number>,<reward ID>,<reward amount>,<Zeny cost>,<point cost>,
// <required item ID>,<required item amount>{,...});
// Shop number corresponds with order above (default is 1).
// Note: Do NOT use a reward item more than once!
Add(1,5022,1,0,0,7086,1,969,10,999,40,1003,50,984,2);
Add(1,5032,1,0,0,1059,250,2221,1,2227,1,7063,600);
Add(1,5027,1,0,0,2252,1,1036,400,7001,50,4052,1);
Add(1,5045,1,0,0,2252,1,1054,450,943,1200);
Add(2,1224,1,0,0,7297,30,969,10,999,50,714,10);
Add(2,1225,1,0,0,7292,30,969,10,999,50,714,10);
Add(3,531,1,3,0,512,1,713,1);
Add(3,532,1,3,0,513,1,713,1);
Add(3,533,1,3,0,514,1,713,1);
Add(3,534,1,3,0,515,1,713,1);
// --------------------------------------------------
for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1)
npcshopdelitem "qshop"+.@i,909;
end;
}
// -------- Dummy data (duplicate as needed) --------
- shop qshop1 -1,909:-1
- shop qshop2 -1,909:-1
- shop qshop3 -1,909:-1

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

Блеат.

Как использовать спойлер:

  1. Пишем

    [SPOILER]


  2. Вставляем скрипт
  3. Пишем

    [/SPOILER]



  4. ???
  5. POFIT BLEAT!

Неужели это так трудно?

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

"Для шапки тебе понадобиться следующий лут :";

"Оу, неТ, я не сОбрАл..ЫЫы"

Я бы после такого закрыла ро и удалила ваш клиент к чертям.

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

Блеат.

Как использовать спойлер:

  1. Пишем

    [SPOILER]


  2. Вставляем скрипт
  3. Пишем

    [/SPOILER]



  4. ???
  5. POFIT BLEAT!

Неужели это так трудно?

Кеник Спасибо я просто не знал)

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

  • 3 месяца спустя...

Спасибо за скрипт.

"Для шапки тебе понадобиться следующий лут :";

"Оу, неТ, я не сОбрАл..ЫЫы"

Я бы после такого закрыла ро и удалила ваш клиент к чертям.

я примерно также подумал! плюсик тебе!

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

  • 5 недель спустя...

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

xCBKr.png


//===== eAthena Script =======================================
//= Euphy's Quest Shop
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.4a - eAthena
//===== Description: =========================================
//= A dynamic quest shop based on Lunar's, with easier config.
//= Includes support for multiple shops & cashpoints.
//= Item Preview script by ToastOfDoom.
//============================================================

prontera,164,203,6 script Quest Shop 998,{
function Add; function Chk; function Slot; function A_An;
if(.Shops$ != "") set .@i,1;
else {
set .@menu$,"";
for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1)
set .@menu$, .@menu$+.Shops$[.@i]+":";
set .@i, select(.@menu$); }
dispbottom "Select one item at a time.";
callshop "qshop"+.@i,1;
npcshopattach "qshop"+.@i;
end;
function Add {
if (getitemname(getarg(1))=="null") {
debugmes "Quest reward #"+getarg(1)+" invalid (skipped)."; return; }
for(set .@n,5; .@n<127; set .@n,.@n+2) {
if (!getarg(.@n,0)) break;
if (getitemname(getarg(.@n))=="null") {
debugmes "Quest requirement #"+getarg(.@n)+" invalid (skipped)."; return; } }
for(set .@i,2; .@i<.@n; set .@i,.@i+1)
set getd(".q_"+getarg(1)+"["+(.@i-2)+"]"), getarg(.@i);
npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);
sleep 1;
return; }
function Chk {
if (getarg(0)<getarg(1)) { set @qe0,1; return "^FF0000"; }
else return "^00FF00"; }
function Slot {
set .@s$,getitemname(getarg(0));
switch(.ShowSlot){
case 1: if (!getitemslots(getarg(0))) return .@s$;
case 2: if (getiteminfo(getarg(0),11)>0) return .@s$+" ["+getitemslots(getarg(0))+"]";
default: return .@s$; } }
function A_An {
setarray .@A$[0],"a","e","i","o","u";
set .@B$, "_"+getarg(0);
for(set .@i,0; .@i<5; set .@i,.@i+1)
if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0);
return "a "+getarg(0); }
OnBuyItem:
set .@q[0],@bought_nameid;
copyarray .@q[1],getd(".q_"+@bought_nameid+"[0]"),getarraysize(getd(".q_"+@bought_nameid+"[0]"));
if (!.@q[1]) { message strcharinfo(0),"An error has occurred."; end; }
mes "[Quest Shop]";
mes "Reward: ^0055FF"+((.@q[1]>1)?.@q[1]+"x ":"")+Slot(.@q[0])+"^000000";
mes "Requirements:";
if (.@q[2]) mes " > "+Chk(Zeny,.@q[2])+.@q[2]+" Zeny^000000";
if (.@q[3]) mes " > "+Chk(getd(.Points$[0]),.@q[3])+.@q[3]+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+.@q[3]+")^000000";
if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2)
mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1])+((.DisplayID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+.@q[.@i+1]+")^000000";
next;
set @qe1, getiteminfo(.@q[0],5); set @qe2, getiteminfo(.@q[0],11);
addtimer 1000, strnpcinfo(1)+"::onend";
while(1){
switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((((@qe1&1) || (@qe1&256) || (@qe1&512)) && @qe2>0 && !@qe6)?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) {
case 1:
if (@qe0) {
mes "[Quest Shop]";
mes "You're missing one or more quest requirements.";
close; }
if (!checkweight(.@q[0],.@q[1])) {
mes "[Quest Shop]";
mes "^FF0000You need "+(((.@q[1]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";
close; }
if (.@q[2]) set Zeny, Zeny-.@q[2];
if (.@q[3]) setd .Points$[0], getd(.Points$[0])-.@q[3];
if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2)
delitem .@q[.@i],.@q[.@i+1];
getitem .@q[0],.@q[1];
if (.Announce) announce strcharinfo(0)+" has created "+A_An(getitemname(.@q[0]))+"!",0;
specialeffect2 699;
close;
case 2:
set @qe3, getlook(3); set @qe4, getlook(4); set @qe5, getlook(5);
if (@qe1&1) atcommand "@changelook 3 "+@qe2;
if (@qe1&256) atcommand "@changelook 1 "+@qe2;
if (@qe1&512) atcommand "@changelook 2 "+@qe2;
set @qe6,1;
break;
case 3:
close; } }
onend:
if (@qe6) { atcommand "@changelook 3 "+@qe3; atcommand "@changelook 1 "+@qe4; atcommand "@changelook 2 "+@qe5; }
for(set .@i,0; .@i<7; set .@i,.@i+1) setd "@qe"+.@i,0;
end;
OnInit:
// --------------------- Config ---------------------
// Custom points, if needed: "<variable>","<name to display>"
setarray .Points$[0],"#CASHPOINTS","Cash Points";
set .Announce,1; // Announce quest completion? (1: yes / 0: no)
set .ShowSlot,1; // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never)
set .DisplayID,0; // Show item IDs? (1: yes / 0: no)
set .ShowZeny,0; // Show Zeny cost, if any? (1: yes / 0: no)
// Shop categories, if needed: "<Shop 1>","<Shop 2>"{,...};
// Duplicate dummy data for any additional shops (bottom of script).
// If no categories, use the second line instead (remove //).
setarray .Shops$[1],"Headgears","Weapons","Other";
// set .Shops$,"n/a";
// Add(<shop number>,<reward ID>,<reward amount>,<Zeny cost>,<point cost>,
// <required item ID>,<required item amount>{,...});
// Shop number corresponds with order above (default is 1).
// Note: Do NOT use a reward item more than once!
Add(1,5022,1,0,0,7086,1,969,10,999,40,1003,50,984,2);
Add(1,5032,1,0,0,1059,250,2221,1,2227,1,7063,600);
Add(1,5027,1,0,0,2252,1,1036,400,7001,50,4052,1);
Add(1,5045,1,0,0,2252,1,1054,450,943,1200);
Add(2,1224,1,0,0,7297,30,969,10,999,50,714,10);
Add(2,1225,1,0,0,7292,30,969,10,999,50,714,10);
Add(3,531,1,3,0,512,1,713,1);
Add(3,532,1,3,0,513,1,713,1);
Add(3,533,1,3,0,514,1,713,1);
Add(3,534,1,3,0,515,1,713,1);
// --------------------------------------------------
for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1)
npcshopdelitem "qshop"+.@i,909;
end;
}
// -------- Dummy data (duplicate as needed) --------
- shop qshop1 -1,909:-1
- shop qshop2 -1,909:-1
- shop qshop3 -1,909:-1

А я вот хотел поставить его Перевёл немного подработал клик на Нпц а он пустой вообще((( решил тагда поставить такого какой Есть но и такой как ты кинул Пусто выглядит((( чисто белый Чатик
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Что выдает консоль map сервера при загрузке скрипта и при активации разговора с НПЦ?

Как бы вам Сказать что бы не разозлить вас))))

Дело в том что сервер запущен и запускаю его не я а второй администратор)))

Поэтому все скрипты я исправляю на глаз и понятия не имею что выдаёт putty)))

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

Да он работает))) Ну теперь мне нужна помощь что бы в нём разобраться на 100%)))

И как то создать подобного ему мне таких 3 нпц надо ))) А скопировать вставить это Как то не по взрослому)) хотелось бы Понять как он работает Что где обозночает)) Если можно Помогите пожалуйста

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

Да он работает))) Ну теперь мне нужна помощь что бы в нём разобраться на 100%)))

И как то создать подобного ему мне таких 3 нпц надо ))) А скопировать вставить это Как то не по взрослому)) хотелось бы Понять как он работает Что где обозночает)) Если можно Помогите пожалуйста

Берешь скрипт, наливаешь чашечку кофе, можно даже с молоком (!) и начинаешь медленно и вдумчиво по строчке читать..

Что-то непонятно? - Смотришь документацию.

Все еще непонятно? - Еще разок смотришь в документацию.

До сих пор непонятно? - Спрашиваешь на форуме (желательно тогда в подходящем разделе тему отдельную создать). Другие пользователи форума читают твой вопрос и либо снисходительно тыкают тебя носом в доки, либо объясняют что и как происходит.

Примерно такой вот план действий я тебе набросал на скорую руку. Дерзай! ;)

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

Да он работает))) Ну теперь мне нужна помощь что бы в нём разобраться на 100%)))

И как то создать подобного ему мне таких 3 нпц надо ))) А скопировать вставить это Как то не по взрослому)) хотелось бы Понять как он работает Что где обозночает)) Если можно Помогите пожалуйста

Берешь скрипт, наливаешь чашечку кофе, можно даже с молоком (!) и начинаешь медленно и вдумчиво по строчке читать..

Что-то непонятно? - Смотришь документацию.

Все еще непонятно? - Еще разок смотришь в документацию.

До сих пор непонятно? - Спрашиваешь на форуме (желательно тогда в подходящем разделе тему отдельную создать). Другие пользователи форума читают твой вопрос и либо снисходительно тыкают тебя носом в доки, либо объясняют что и как происходит.

Примерно такой вот план действий я тебе набросал на скорую руку. Дерзай! ;)

Да я впринципе в нём всё понял кроме двух вещей)

1. Это сколько итем в одно разделе он потянет (полюбому есть предел)

2. Почему если нажимаешь Примерить то патом пока не перезайдёшь собрать итем невозможно?

Тобишь Если перезаходишь только тагда спадает примерянный итем и тагда он даёт его если ты собрал нужное)

вот понять это и всё впринципе он легко освоится)

Ах и ещё Куда и что надо Вписать что бы перед Тем как открывать Шоп он Спрашивал На каком Языке (игрок) Хочет что бы нпц Ему написало лут (и то что там выше)

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

Да он работает))) Ну теперь мне нужна помощь что бы в нём разобраться на 100%)))

И как то создать подобного ему мне таких 3 нпц надо ))) А скопировать вставить это Как то не по взрослому)) хотелось бы Понять как он работает Что где обозночает)) Если можно Помогите пожалуйста

Берешь скрипт, наливаешь чашечку кофе, можно даже с молоком (!) и начинаешь медленно и вдумчиво по строчке читать..

Что-то непонятно? - Смотришь документацию.

Все еще непонятно? - Еще разок смотришь в документацию.

До сих пор непонятно? - Спрашиваешь на форуме (желательно тогда в подходящем разделе тему отдельную создать). Другие пользователи форума читают твой вопрос и либо снисходительно тыкают тебя носом в доки, либо объясняют что и как происходит.

Примерно такой вот план действий я тебе набросал на скорую руку. Дерзай! ;)

Да я впринципе в нём всё понял кроме двух вещей)

1. Это сколько итем в одно разделе он потянет (полюбому есть предел)

2. Почему если нажимаешь Примерить то патом пока не перезайдёшь собрать итем невозможно?

Тобишь Если перезаходишь только тагда спадает примерянный итем и тагда он даёт его если ты собрал нужное)

вот понять это и всё впринципе он легко освоится)

1. Судя по всему потянет он очень много. даже ни разу вопроса такого не возникало.. 2 147 483 647 предметов в один раздел. Но разделов будет не больше 127 (именно столько элементов можно запихнуть в массив).

2. Не понял о чем ты

P.S. Насчет 1) могу ошибиться, но там и правда много влезает.

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

Хмм я постараюсь обьяснить смотри После того как нпц показал лут Есть 2 варианта

1. это ясное дело Сделать))

2. Preview ( если юзнуть он примерит на тебя и оставить просто внешне)

Но такой вопрос если я использовал Пункт 2 и мне понравилась она я тут же беру лут и Хочу сделать!

И вот запарка когда нажимаешь сделать он отказывается её делать говоря что чего то нехватает)))

Проблема эта решается Relogin ом Если я перезахажу пропадает Примерочный стиль шапки И квест выполняется нормально... Незнаю вот как это поправить)

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

@refresh не убирает эффект шапки?

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

@refresh не убирает эффект шапки?

Нет не убирает проверил только что

Строчка покупки в диалоге активна? Что происходит при нажатии на нее?

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

Активна Но Пишет что я что-то не принёс... После того как перезахожу и примерка спадает задание выполняется А может стоит просто отключить фунцкию примерки?

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

Активна Но Пишет что я что-то не принёс... После того как перезахожу и примерка спадает задание выполняется А может стоит просто отключить фунцкию примерки?

Топорный вариант. Сработает, но это не выход.

Можешь попробовать перед выбором покупки предмета в скрипте дописать принудительный сброс примерки. Либо сделать еще один вариант меню - закончить примерку.

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

Хорошо сказанно но вот как это сделать пока вопрос) щас буду сидеть думать))) Если к ответу не прийду попрошуу помощи)

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

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