Автор: vixa2012: Дата: 02.17.2011
Я делаю нпц которое после каждого гв за удержание замка дает приз коробку которая при открытии дает мегикхард на 48 часов. Нпц должно говорить только с гильд мастером. Если я не взял коробку после гв то после другого гв я смогу взять 2 ужэ коробки.
Вот что я сделал!
//============================================================
- script Gld_Mngr_Template::Gld_Mngr_Template -1,{
// What is the Display Name of the NPC?
set .@name$,strnpcinfo(1);
// Store the Guild ID of castle occupant.
set .@GID, GetCastleData(strnpcinfo(2),1);
// Add custom Guild Castles here.
mes "[ Тест ]";
if (.@GID == 0) {
mes "Я жду возвращения хозяина.";
mes "Если он тебе нужен жди его со мной. ";
close;
}
if (getcharid(2) != .@GID || strcharinfo(0) != getguildmaster(.@GID)){
mes "На данный момент я работаю с ^ff0000" + getguildmaster(.@GID) + "^000000. Его гильдия хозяева замка!";
close;
}
mes "Приветствую тебя , ^ff0000" + getguildmaster(.@GID) + "^000000...";
mes "Что интересует в моем сервисе?.";
next;
switch(select("Информация:Взять")) {
case 1:
mes "[ Тест ]";
mes "За каждое гв если ты удержиш замок.";
mes " я буду давать тебе приз ";
close;
case 2:
mes "[ Тест ]";
mes "Ты хочеш посмотреть приз?";
next;
switch(select("Взять.:Отмена")) {
case 1:
mes "[ Тест ]";
mes "Пожалуйста подожди я проверяю.";
mes "На сегодняшний день твой приз таков";
attachrid(guildmasterid);
set item, item+1;
set item, 0;
if (item == 0) {
mes " Прости дружище но для тебя подарок кончился";
close;
detachrid;
}
else if (item > 0) {
mes "Вот твой приз держи друг";
getitem 664,1;
close;
}
case 2:
mes "[ Тест ]";
mes "Хорошо приходи как надумаеш.";
mes "Моя дверь для тебя всегда открыта.";
close;
}
}
}
//============================================================
prtg_cas01,108,179,3 duplicate(Gld_Mngr_Template) Тест#prtg_cas01 990
Значит когда я не ставил атрибуты attachrid и detacherid нпц давало постоянно коробки когда бы ты не пришел, но поставив эти атрибуты оно перестало ваще давать коробку не до гв не после гв значит моя просьба состоит в том что помогите доделать это нпц так Если гильд мастер захватил и удержал замок он может получить коробку в любое время не только после гв и если он её не взял на прошлом гв и замок удержал снова то он может прийти и получить уже 2 коробки короч говоря чтобы сумировались как бонус эти коробки
Автор: vixa2012: Дата: 02.17.2011
а как надо сделать я ужэ много перепробывал
Автор: Renegade: Дата: 02.17.2011
сет итем = итем+1 если ты хочешь чтобы
Если я не взял коробку после гв то после другого гв я смогу взять 2 ужэ коробки.
Автор: Jarek: Дата: 02.17.2011
Вы не поняли, что вам написал Мяфк?
Вы сбрасываете переменную в ноль, и тут же проверяете её значение - бессмыслица.
Во-первых, сбрасывайте переменную, после получения приза.
Во-вторых, увеличение переменной в процессе диалога... => Сколько бы раз не подошел к нпц, он каждый раз увеличивает переменную => profit!
Начисление следует сделать в триггере окончания гв.
"nice": Какой-то странный скрипт от человека, который не только предлагает услугу их написания, но и обучению скрпитингу.:D
Автор: Мяфк: Дата: 02.17.2011
if (item==0) {
Держи итем
set item, item+1;
if (item <1) {
Ты уже брал итем.
Новый день: set item,0;
Автор: vixa2012: Дата: 02.17.2011
написал как сказа Мяфк и серавно лут дается постояно
set item, item+1;
set item, 0;
if (item == 0) {
mes "Вот твой приз держи друг";
getitem 664,1;
close;
}
else if (item < 1) {
mes " Прости дружище но для тебя подарок кончился";
close;
}
Автор: Renegade: Дата: 02.17.2011
set item, item+1;
должен быть ВНЕ ДИАЛОГА.
Это строка посути назначения приза.
Автор: vixa2012: Дата: 02.17.2011
вынес все сделал серавно подарок дает бесконечно когда только бы не подошол
Зайдите ктото в аську пожалуйста
а если ставлю if (item > 0) {
ваще не дает или if (item == 1) {
тоже
Автор: nomn: Дата: 02.17.2011
Писалось на коленке. Для корректной работы в OnAgitBreak нужно добавить:
set $@dayli_priz, 0;
mes "[ Тест ]";
if (.@GID == 0) {
mes "Я жду возвращения хозяина.";
mes "Если он тебе нужен жди его со мной. ";
close;
}
if (getcharid(2) != .@GID || strcharinfo(0) != getguildmaster(.@GID)){
mes "На данный момент я работаю с ^ff0000" + getguildmaster(.@GID) + "^000000. Его гильдия хозяева замка!";
close;
}
mes "Приветствую тебя , ^ff0000" + getguildmaster(.@GID) + "^000000...";
mes "Что интересует в моем сервисе?.";
next;
if (select("Информация","Взять") == 1) {
mes "[ Тест ]";
mes "За каждое гв если ты удержиш замок.";
mes " я буду давать тебе приз ";
close;
}
mes "[ Тест ]";
mes "Ты хочеш посмотреть приз?";
next;
if select("Взять","Отмена") == 2) {
mes "[ Тест ]";
mes "Хорошо приходи как надумаеш.";
mes "Моя дверь для тебя всегда открыта.";
close;
}
mes "[ Тест ]";
mes "Пожалуйста подожди я проверяю.";
if ($@dayli_priz < 1) {
mes "Сегодня уже нет призов.";
close;
}
mes "У тебя есть "+$@dayli_priz+" призов. Забрать?";
if (select("Взять","Отмена") == 2) {
mes "[ Тест ]";
mes "Хорошо приходи как надумаеш.";
mes "Моя дверь для тебя всегда открыта.";
close;
}
getitem 664, $@dayli_priz;
set $@dayli_priz, 0;
close;
OnClock0005:
set $@dayli_priz, $@dayli_priz + 1;
end;
Автор: nomn: Дата: 02.17.2011
Были опечатки. Исправил.
Автор: vixa2012: Дата: 02.17.2011
Спасибо ном
Автор: nomn: Дата: 02.17.2011
Цитата vixa2012;34045:
Спасибо ном
Автор: vixa2012: Дата: 02.17.2011
Слушай а можно сделать както чтобы он давал приз не в onclock 0005:
а именно после гв если замок был удержан?
Автор: nomn: Дата: 02.17.2011
Можно. Допиши в скрипт гв, в OnAgitEnd
Автор: vixa2012: Дата: 02.17.2011
Ошибки не работает чтото
//============================================================
- script test::test -1,{
// Add custom Guild Castles here.
mes "[ Тест ]";
if (.@GID == 0) {
mes "Я жду возвращения хозяина.";
mes "Если он тебе нужен жди его со мной. ";
close;
}
if (getcharid(2) != .@GID || strcharinfo(0) != getguildmaster(.@GID)){
mes "На данный момент я работаю с ^ff0000" + getguildmaster(.@GID) + "^000000. Его гильдия хозяева замка!";
close;
}
mes "Приветствую тебя , ^ff0000" + getguildmaster(.@GID) + "^000000...";
mes "Что интересует в моем сервисе?.";
next;
if (select("Информация","Взять") == 1) {
mes "[ Тест ]";
mes "За каждое гв если ты удержиш замок.";
mes " я буду давать тебе приз ";
close;
}
mes "[ Тест ]";
mes "Ты хочеш посмотреть приз?";
next;
if select("Взять","Отмена") == 2) {
mes "[ Тест ]";
mes "Хорошо приходи как надумаеш.";
mes "Моя дверь для тебя всегда открыта.";
close;
}
mes "[ Тест ]";
mes "Пожалуйста подожди я проверяю.";
if ($@dayli_priz < 1) {
mes "Сегодня уже нет призов.";
close;
}
mes "У тебя есть "+$@dayli_priz+" призов. Забрать?";
if (select("Взять","Отмена") == 2) {
mes "[ Тест ]";
mes "Хорошо приходи как надумаеш.";
mes "Моя дверь для тебя всегда открыта.";
close;
}
getitem 664, $@dayli_priz;
set $@dayli_priz, 0;
close;
OnClock0005:
set $@dayli_priz, $@dayli_priz + 1;
end;
//============================================================
prtg_cas01,108,179,3 duplicate(test) Тест#prtg_cas01 990
http://img266.imageshack.us/i/42761635.jpg/
Автор: dimjke: Дата: 02.17.2011
В конце добавь скобку
Автор: vixa2012: Дата: 02.17.2011
теперь такая ошибка
//============================================================
- script test::test -1,{
// Add custom Guild Castles here.
mes "[ Тест ]";
if (.@GID == 0) {
mes "Я жду возвращения хозяина.";
mes "Если он тебе нужен жди его со мной. ";
close;
}
if (getcharid(2) != .@GID || strcharinfo(0) != getguildmaster(.@GID)){
mes "На данный момент я работаю с ^ff0000" + getguildmaster(.@GID) + "^000000. Его гильдия хозяева замка!";
close;
}
mes "Приветствую тебя , ^ff0000" + getguildmaster(.@GID) + "^000000...";
mes "Что интересует в моем сервисе?.";
next;
if (select("Информация","Взять") == 1) {
mes "[ Тест ]";
mes "За каждое гв если ты удержиш замок.";
mes " я буду давать тебе приз ";
close;
}
mes "[ Тест ]";
mes "Ты хочеш посмотреть приз?";
next;
if select("Взять","Отмена") == 2) {
mes "[ Тест ]";
mes "Хорошо приходи как надумаеш.";
mes "Моя дверь для тебя всегда открыта.";
close;
}
mes "[ Тест ]";
mes "Пожалуйста подожди я проверяю.";
if ($@dayli_priz < 1) {
mes "Сегодня уже нет призов.";
close;
}
mes "У тебя есть "+$@dayli_priz+" призов. Забрать?";
if (select("Взять","Отмена") == 2) {
mes "[ Тест ]";
mes "Хорошо приходи как надумаеш.";
mes "Моя дверь для тебя всегда открыта.";
close;
}
getitem 664, $@dayli_priz;
set $@dayli_priz, 0;
close;
OnClock0005:
set $@dayli_priz, $@dayli_priz + 1;
end;
}
}
//============================================================
prtg_cas01,108,179,3 duplicate(test) Тест#prtg_cas01 990
http://img89.imageshack.us/i/98479586.jpg/
Автор: dimjke: Дата: 02.17.2011
ничего не заметил?
if select("Взять","Отмена") == 2) {
Автор: vixa2012: Дата: 02.18.2011
Все работает отлично только чот после гв не 1 приз а 2 сразу дает
Можно закрывать тему!