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

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

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

new_Mall,85,88,6	script	Мастер Встраивания	4_M_ARDHA,{
mes "[Sage Horon]";
mes "I can chant your armor with Rune Sphere";
mes "But not every armor can be enchanted...";
next;
mes "[Sage Horon]";
mes "Chance ^FF0000of Chanting is ^000000 -> ^5555f1 100% ^000000 ";
next;
mes "[Sage Horon]";
mes "To insert a rune you need a special alloy stone ^5555f1Rainbow Stone^000000";
mes "You also need an item that I will enchant ^5555fRune^000000";
mes "and 150.000.000 Zeny";
next;
mes "[Sage Horon]";
mes "Do you want to see my list?";
next;
switch(select("See Armor List.:Maybe next time.")) {


case 2:
mes "[Sage Horon]";
mes "Ok, come back when you decide to enchant armor.";
close;
}

setarray .EquipID[0],32482,32486,32302,2371,2357,2345,2347,2349,2351,2375,2374,15042; // ID Armor
for( set .@i,0; .@i < getarraysize( .EquipID ); set .@i,.@i + 1 )
set .@EquipMenu$,.@EquipMenu$ + getitemname( .EquipID[.@i] )+( !getitemslots(.EquipID[.@i])?"":"["+getitemslots(.EquipID[.@i])+"]" )+":";
set .@Equip,select( .@EquipMenu$ ) - 1;
if( !countitem( .EquipID[.@Equip] ) ){
mes "You haven't this armor.";
close;
}
mes "Equip: ^FF0000"+getitemname( .EquipID[.@Equip] )+"^000000";
switch( select( "STR:INT:DEX:AGI:VIT:LUK" )){
case 1: setarray .RuneID[0],4709; break;
case 2: setarray .RuneID[0],4719; break;
case 3: setarray .RuneID[0],4729; break;
case 4: setarray .RuneID[0],4739; break;
case 5: setarray .RuneID[0],4749; break;
case 6: setarray .RuneID[0],4759; break;
}
for( set .@i,0; .@i < getarraysize( .RuneID ); set .@i,.@i + 1 )
set .@RuneMenu$,.@RuneMenu$ + getitemname( .RuneID[.@i] )+":";
set .@Rune,select( .@RuneMenu$ ) - 1;
mes "Руна : ^FF0000"+getitemname( .RuneID[.@Rune] )+"^000000";
next;
	mes "[Sage Horon]";
	mes "First and most importantly.";
	mes "^ff5555Existing Refine Level of the Armor";
	mes "and Cards will be GONE.^000000";
	mes "Do you still want to try an Enchant?";
	if( select("Yes:NO") == 1 ){
	if( !countitem( .RuneID[.@Rune] ) ){
	mes "[Sage Horon]";
	 mes "Sorry, But you haven't "+getitemname( .RuneID[.@Rune] )+" in your inventory.";
	 close;
}
if(Zeny < 150000000){
mes "[Sage Horon]";
mes "You Haven't 150.000.000 Zeny";
close;
}
if( countitem( 12384 ) < 1){
mes "[Sage Horon]";
mes "You Haven't ^5555f1Rainbow Stone^000000";
close;
}
mes "[Sage Horon]";
mes "Okey, Let's begin...";
progressbar "green",4;
	delitem .EquipID[.@Equip],1;
	delitem .RuneID[.@Rune],1;
	delitem 12384,1;
	Zeny -= 15000000;
	getitem2 .EquipID[.@Equip],1,1,0,0,0,0,0,.RuneID[.@Rune];
	specialeffect 8, SELF;
mes "[Sage Horon]";
	mes "Well Done!.";
	mes "^0000FF"+getitemname( .EquipID[.@Equip] )+"^000000";
	mes "Enchanted ^FF0000"+getitemname( .RuneID[.@Rune] )+"^000000";
close;
}
OnInit:
	waitingroom "[Enchant Armor]",0;
	end;
}

Вот скрипт который я использую

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

https://github.com/rathena/rathena/blob/master/npc/re/merchants/enchan_ko.txt#L535

Вот же в дефолтном скрипте есть запоминание того что вставлено, если там все 4 слота не будут занято, то в принципе можно оставлять и карты и энчанты

В getitem2 надо передавать сохраненные айдишники карт и т.д.

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

Спасибо за подсказку, надо попробовать, просто я использую Hercules и это есть целая проблема. Кстати что бы не открывать новые и новые темы спрошу прям тут, Есть у кого rAmod отлаженный, не такой что валяется 2013 года в открытом доступе (там дофига багов и ошибок)
А уже подправленный, раньше был у меня такой, но потерял вместе с хард диском, можем договориться по цене если что...

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

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