Автор: KensyWhim: Дата: 12.20.2009
Суть скрипта:
Надо что бы нпц перекрашивал в какой либо цвет итемы (головные уборы), Итемов много, по этому что бы не писать весь список итемов в меню нпц, желательно вводить айди итема, и потом выбор цвета естественно, цвет на выбор из меню, и за свою работу непись брал к приеру 500к и необходимую краску для покраски.
---------------
Помогите с реализацией скрипта пожалуйста.
Автор: KensyWhim: Дата: 12.20.2009
Цитата Хитрюга Джэк;16867:
это нетрудно, завтра выложу скрипт, сейчас просто времени нет
Автор: nomn: Дата: 12.20.2009
Это невозможно. НПС не может перекрашивать вещи, он может менять одну вещь на другую. К примеру красные крылья удаляет, синие даёт. Соответственно в твоём патче и ДБ должны быть все вещи, который НПС должен менять.
Автор: Мяфк: Дата: 12.20.2009
Raff, он писал про это:
Итемов много
Автор: nomn: Дата: 12.20.2009
Надо бросить эту привычку: угадывать вопрос по первым словам.. :)
Автор: KensyWhim: Дата: 12.20.2009
Цитата Raff;16876:
Это невозможно. НПС не может перекрашивать вещи, он может менять одну вещь на другую. К примеру красные крылья удаляет, синие даёт. Соответственно в твоём патче и ДБ должны быть все вещи, который НПС должен менять.
Автор: Мяфк: Дата: 12.20.2009
Написание нпц долгое, т.к. на каждый айди надо прописать ещё кучу, айди с синей, красной, чёрной шмоткой и т.п., я бы взялся, но не за бесплатно.
Автор: KensyWhim: Дата: 12.20.2009
Цитата Мяфк;16892:
Написание нпц долгое, т.к. на каждый айди надо прописать ещё кучу, айди с синей, красной, чёрной шмоткой и т.п., я бы взялся, но не за бесплатно.
Автор: Мяфк: Дата: 12.20.2009
Ну человек вводит id предмета далее проверка, если этот предмет можно перекрасить, то переходим на выбор цвета, и там уже удаляем старый предмет, даём новый. Гемор в том что к каждому предмету надо прописывать свой код.
Автор: KensyWhim: Дата: 12.20.2009
Цитата Мяфк;16895:
Ну человек вводит id предмета далее проверка, если этот предмет можно перекрасить, то переходим на выбор цвета, и там уже удаляем старый предмет, даём новый. Гемор в том что к каждому предмету надо прописывать свой код.
Автор: Хитрюга Джэк: Дата: 12.21.2009
в общем так.... дело на самом деле не быстрое и кропотливое.
уверен что с первого раза не заработает) но всё приходит с опытом)
начинаем с момента когда нам у нас заберают нужные краски и выдают нужную цветную вещь:
mes "[ ^0065DFПокраска^000000 ]";
mes "для этого цвета нужна 1 синяя краска";
mes "У тебя она с собой?";
next;
if(countitem(978)<1) goto NoItems;
delitem 978,1;
delitem 777,1;
mes "Вот,возьмите краску.";
next;
mes "[ ^0065DFПокраска^000000 ]";
mes "Да,это именно то, что нужно";
getitem 777,1;
close;
mes "[ ^0065DFПокраска^000000 ]";
mes "Каким цветом хотите покрасить вашу вещь?";
next;
switch(select("Синий:Красный:зелёный")) {
case 1:
mes "[ ^0065DFПокраска^000000 ]";
mes "для этого цвета нужна 1 синяя краска";
mes "У тебя она с собой?";
next;
if(countitem(978)<1) goto NoItems;
delitem 978,1;
delitem 777,1;
mes "Вот,возьмите краску.";
next;
mes "[ ^0065DFПокраска^000000 ]";
mes "Да,это именно то, что нужно";
getitem 777,1;
close;
case 2:
mes "[ ^0065DFПокраска^000000 ]";
mes "для этого цвета нужна 1 синяя краска";
mes "У тебя она с собой?";
next;
if(countitem(975)<1) goto NoItems;
delitem 975,1;
delitem 777,1;
mes "Вот,возьмите краску.";
next;
mes "[ ^0065DFПокраска^000000 ]";
mes "Да,это именно то, что нужно";
getitem 888,1;
close;
case 3:
mes "[ ^0065DFПокраска^000000 ]";
mes "для этого цвета нужна 1 синяя краска";
mes "У тебя она с собой?";
next;
if(countitem(979)<1) goto NoItems;
delitem 979,1;
delitem 777,1;
mes "Вот,возьмите краску.";
next;
mes "[ ^0065DFПокраска^000000 ]";
mes "Да,это именно то, что нужно";
getitem 999,1;
close;
}
Автор: KensyWhim: Дата: 12.22.2009
В общем... я тут написал вот такое примерно:
next;
menu "Ввести ID шапки",-,
"Информация",info;
input .@item;
if(.@item == 0) goto exit;
next;
mes "[^1f7fd8Master Hats^000000]";
mes "В какой цвет ты хочешь";
mes "покрасить свою шапку?";
next;
menu "Чёрный",black,
// "Синий",blue,
// "Голубой",bluewh,
// "Жёлтый",yellow,
// "Зелёный",green,
// "Фиолетовый",violet,
// "Красный",red,
// "Белый",white,
"Оставить как есть",exit;
close;
//=================Black=========================
black:
if(countitem(949) > 9 && Zeny > 999999)
if(countitem(5013) > 0)
if(countitem(983) > 0)
{
mes "[^1f7fd8Master Hats^000000]";
mes "Вы уверены, что хотите";
mes "перекрасить свою шапку?";
menu "Да, давай быстрей!",black_y,
"Нет, я передумал пока ты тормозил <_<",exit;
black_y:
delitem 5013,1;
delitem 983,1;
delitem 949,10;
set Zeny,Zeny - 1000000;
getitem 5043,1;
close;
}
mes "[^1f7fd8Master Hats^000000]";
mes "У тебя чего то не хватает!";
mes "Подробнее ознакомься";
mes "с требуемым списком.";
close;
input .@item;
if(.@item == 0) goto exit;
Автор: Хитрюга Джэк: Дата: 12.22.2009
неужели так много вещей не покраску что проще сделать проверку, чем прописать руками 4-5 этих вещей??
если всё-таки проверять так как ты говоришь то может попробовать так:
input .@item;
if(.@item == 0) goto exit;
if(.@item == idВещиКоторуюХочешьКрасить) goto viborcveta;
else goto Noloot;
viborcveta:
mes "[ ^0065DFПокраска^000000 ]";
mes "Каким цветом хотите покрасить вашу вещь?";
next;
switch(select("Синий:Красный:зелёный")) {
case 1:
mes "[ ^0065DFПокраска^000000 ]";
mes "для этого цвета ..................
типо такого
Автор: KensyWhim: Дата: 12.22.2009
Цитата Хитрюга Джэк;16983:
неужели так много вещей не покраску что проще сделать проверку, чем прописать руками 4-5 этих вещей??
Автор: Хитрюга Джэк: Дата: 12.22.2009
попробуй так, думаю работать будет
input .@item;
if(.@item == 0) goto exit;
if(.@item == idВещиКоторуюХочешьКрасить1) goto viborcveta1;
if(.@item == idВещиКоторуюХочешьКрасить2) goto viborcveta2;
if(.@item == idВещиКоторуюХочешьКрасить3) goto viborcveta3;
if(.@item == idВещиКоторуюХочешьКрасить4) goto viborcveta4;
if(.@item == idВещиКоторуюХочешьКрасить5) goto viborcveta5;
if(.@item == idВещиКоторуюХочешьКрасить6) goto viborcveta6;
if(.@item == idВещиКоторуюХочешьКрасить7) goto viborcveta7;
if(.@item == idВещиКоторуюХочешьКрасить8) goto viborcveta8;
if(.@item == idВещиКоторуюХочешьКрасить9) goto viborcveta9;
if(.@item == idВещиКоторуюХочешьКрасить) goto viborcveta1;
if(.@item == idВещиКоторуюХочешьКрасить) goto viborcveta2;
if(.@item == idВещиКоторуюХочешьКрасить) goto viborcveta3;
if(.@item == idВещиКоторуюХочешьКрасить) goto viborcveta4;
if(.@item == idВещиКоторуюХочешьКрасить) goto viborcveta5;
if(.@item == idВещиКоторуюХочешьКрасить) goto viborcveta6;
if(.@item == idВещиКоторуюХочешьКрасить) goto viborcveta7;
if(.@item == idВещиКоторуюХочешьКрасить) goto viborcveta8;
if(.@item == idВещиКоторуюХочешьКрасить) goto viborcveta9;
if(.@item<1) goto NoItems;
viborcveta1:
mes "[ ^0065DFПокраска^000000 ]";
mes "Каким цветом хотите покрасить вашу вещь?";
next;
switch(select("Синий:Красный:зелёный")) {
case 1:
mes "[ ^0065DFПокраска^000000 ]";
mes "для этого цвета ..................
Автор: KensyWhim: Дата: 12.22.2009
Цитата Хитрюга Джэк;16983:
неужели так много вещей не покраску что проще сделать проверку, чем прописать руками 4-5 этих вещей??
если всё-таки проверять так как ты говоришь то может попробовать так:
типо такогоinput .@item;
if(.@item == 0) goto exit;
if(.@item == idВещиКоторуюХочешьКрасить) goto viborcveta;
else goto Noloot;
viborcveta:
mes "[ ^0065DFПокраска^000000 ]";
mes "Каким цветом хотите покрасить вашу вещь?";
next;
switch(select("Синий:Красный:зелёный")) {
case 1:
mes "[ ^0065DFПокраска^000000 ]";
mes "для этого цвета ..................
if(.@item == idВещиКоторуюХочешьКрасить) goto viborcveta;
Автор: Хитрюга Джэк: Дата: 12.22.2009
нужно сделать так:
принять айди вещи за X
принять номер цвета за С
принять ингридиенты для вещи за Y
принять вещь другого цвета за Z
и прописать алгоритм чтобы выбирай первую и вторую переменную , остальным переменным автоматические присваивались значения.
Автор: Мяфк: Дата: 12.22.2009
В принципе, я знаю как написать твоим способом, но писать честно лень. Если что помогу за WM, пиши в асю в профиле.
Автор: KensyWhim: Дата: 12.22.2009
Цитата Мяфк;16998:
В принципе, я знаю как написать твоим способом, но писать честно лень. Если что помогу за WM, пиши в асю в профиле.
Автор: Хитрюга Джэк: Дата: 12.22.2009
KensyWhim, а со мной скриптом поделишься? Хочется посмотреть каким образом ты это устроил всё.
Автор: KensyWhim: Дата: 12.22.2009
Цитата Хитрюга Джэк;17009:
KensyWhim, а со мной скриптом поделишься? Хочется посмотреть каким образом ты это устроил всё.
Автор: Мяфк: Дата: 12.22.2009
Дак какую команду скажи, подскажу.
Автор: KensyWhim: Дата: 12.22.2009
Цитата Мяфк;17017:
Дак какую команду скажи, подскажу.
Автор: San: Дата: 12.22.2009
занеси все айди итемов в array, и потом проверка, если есть такой итем, то идем дальше, а если нету, то пока...
Автор: KensyWhim: Дата: 12.22.2009
Цитата San;17022:
занеси все айди итемов в array, и потом проверка, если есть такой итем, то идем дальше, а если нету, то пока...
Автор: Мяфк: Дата: 12.22.2009
Смотри как тут реализовано. http://rus-ea.ru/forums/showthread.php?t=806