Назад

GreatMan

Автор: GreatMan: Дата: 03.29.2011

Этот нпц для покраски шмоток. Выполняется путём замены спрайта на желаемый и сохраняет его в базу данных и остаётся дажэ когда перезаходиш, но есть проблемка, которая заключается в том что когда Сохраняется не всегда и не у всех, а санисы(очки) вообще не сохраняются в бд. Вот как исправить эту проблему?

prontera,144,167,5	script	Покраска вещей	465,{
mes "[Покраска]";
mes "Привет, я могу покрасить вашы вещи.";
next;
mes "[Покраска]";
mes "Что вы хотите покрасить?.";
switch(select("Одноцветные LKH","Двухцветные LKH","Санисы","Закрыть.")){
case 1:
if (countitem(23074) < 1) goto noitem;
set .id,23074;
goto lkh;
case 2:
if (countitem(23074) < 1) goto noitem;
set .id,23074;
goto lkh2;
case 3:
if (countitem(32155) < 1) goto noitem;
set .id,32155;
goto sunn;
case 4:
close;
noitem:
mes "У вас нету вещи...";
close;
lkh:
switch(select("Ультра Чёрные","Синие","Зелёные","Красные","Белые","Розовые","Коричневые","Фиолетовые","Чёрные","Простые","Нет, я передумал")){
case 1:
set .view,780;
goto do;
case 2:
set .view,721;
goto do;
case 3:
set .view,722;
goto do;
case 4:
set .view,723;
goto do;
case 5:
set .view,724;
goto do;
case 6:
set .view,775;
goto do;
case 7:
set .view,778;
goto do;
case 8:
set .view,779;
goto do;
case 9:
set .view,720;
goto do;
case 10:
set .view,99;
goto do;
case 11:
close;
}
lkh2:
switch(select("Чёрносиние","Чёрнозолотые","Чёрнозелёные","Чёрнорозовые","Чёрнокрасные","Чёрнобелые","Чёрножёлтые","Белочёрные","Белосиние","Белозелёные","Белоголубые","Белорозовые","Белофиолетовые","Белокрасные","Беложёлтые","Нет, я передумал")){
case 1:
set .view,773;
goto do;
case 2:
set .view,772;
goto do;
case 3:
set .view,771;
goto do;
case 4:
set .view,774;
goto do;
case 5:
set .view,770;
goto do;
case 6:
set .view,776;
goto do;
case 7:
set .view,777;
goto do;
case 8:
set .view,781;
goto do;
case 9:
set .view,782;
goto do;
case 10:
set .view,783;
goto do;
case 11:
set .view,784;
goto do;
case 12:
set .view,785;
goto do;
case 13:
set .view,786;
goto do;
case 14:
set .view,787;
goto do;
case 15:
set .view,788;
goto do;
case 16:
close;
}
sunn:
switch(select("Синие","Зелёные","Чёрные","Розовые","Фиолетовые","Белые","Нет, я передумал")){
case 1:
set .view,590;
goto do;
case 2:
set .view,591;
goto do;
case 3:
set .view,593;
goto do;
case 4:
set .view,594;
goto do;
case 5:
set .view,595;
goto do;
case 6:
set .view,596;
goto do;
case 7:
close;
}
}
do:
switch(getiteminfo(.id,5))
{
case 256:
case 257:
case 769:
case 768:
set .slot,4;
break;
case 512:
case 513:
set .slot,5;
break;
case 1:
set .slot,3;
break;

}
query_sql("SELECT `item_id` FROM `change_sprite` WHERE `account_id` = '"+getcharid(3)+"' AND `item_id` = '"+.id+"'",.item_id);
if(.item_id)
query_sql("UPDATE `change_sprite` SET `view_id` = '"+.view+"' WHERE `account_id` = '"+getcharid(3)+"' AND `item_id` = '"+.id+"'");
else
query_sql("INSERT INTO change_sprite (`account_id`,`item_id`,`view_id`) VALUES ('"+getcharid(3)+"','"+.id+"','"+.view+"')");
if(isequipped(.id))
setlook .slot,.view;
close;
}


function script change {
switch(getarg(1,0))
{
case 0:
query_sql("SELECT `view_id` FROM `change_sprite` WHERE `account_id` = '"+getcharid(3)+"' AND `item_id` = '"+getarg(0)+"'",.@view);
if(.@view)
return .@view;
else
return getiteminfo(getarg(0),11);
case 1:
switch(getiteminfo(getarg(0),5))
{
case 256:
case 257:
case 769:
case 768:
set .@slot,4;
break;
case 512:
case 513:
set .@slot,5;
break;
case 1:
set .@slot,3;
break;
}
return .@slot;
}
}

Вот таблица для сохранения спрайта....
CREATE TABLE IF NOT EXISTS `change_sprite` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`account_id` int(11) unsigned NOT NULL,
`item_id` int(11) unsigned NOT NULL,
`view_id` int(4) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=25 ;

Автор: : Дата: 01.01.1970