Code: Select all
Program Inscription;
//////////////////////////////////////////////////////////////////////////////////////////
// Инскриптинг Шард drw.ru //
// И так скрипт полностью рабочий с идеальной таблицой в ней вы можете посмотреть //
// какие надо реги для тех или иных скролов, меню каторые надо поменять при //
// крафте других свитков меню в самом низу скрипта с пометкой. Также поменяйте //
// const. Остальное не меняйте. Скрипт Взять RaTaMaHaTTa каторый он выложил //
// на Алхимию. Остальное не стал менять название процедур и константов //
// Тубботл и потион это пустые скролы и готовые. //
// Что бы убрать реагент уберите процедуру рег чек, уберите const значения любой рег чек,//
// и в конце скрипта также убери рег чек любой.Что добавить Реагент также скопируейте //
// процедуру рег чек добавьте значение в const и добавьте в конце скрипта ету процедуру//
// или поменять их изменните в const.Всё где не доставлены Дроби сорри в файли всё идеально.//
// Поправьте если что не Так. Вроде Всё с Уважением Dsk Roe. //
////////////////////////////////////////////////////////////////////////////////////////// //
//////////////////////////////////////////////////////////////////////////////////////////
// $0F7B ; BM // //
// $0F7A ; BP // //
// $0F84 ; GA // //
// $0F85 ; GI // //
// $0F86 ; MR // //
// $0F88 ; NS <--- массив Всех Реагентов // //
// $0F8C ; SA // //
// $0F8D ; SS // //
//////////////////////////////////////////////////////////////////////////////////////////
//Это подробная Таблица с описанием всех типов скролов и регов каторые для надо для крафта:
////
// (Реги) (Реги) (Меню Скролов)(Меню Скролов)(Название Каста)(Тип готового Свитка)
//Clumsy
// Inscription("0x0F7B", "0x0F88", "", "", "First Circle", "Spell Circle 1", "Clumsy", "0x1F2E", )
//
//CreateFood
// Inscription("0x0F84", "0x0F85", "0x0F86", "", "First Circle", "Spell Circle 1", "Create Food", "0x1F2F",)
//
//Feeblemind
// Inscription("0x0F85", "0x0F88", "", "", "First Circle", "Spell Circle 1", "Feeblemind", "0x1F30",)
//
//Heal
// Inscription("0x0F84", "0x0F85", "0x0F8D", "", "First Circle", "Spell Circle 1", "Heal", "0x1F31",)
//
//MagicArrow
// Inscription("0x0F7A", "0x0F88", "", "", "First Circle", "Spell Circle 1", "Magic Arrow", "0x1F32",)
//
//NightSight
//Inscription("0x0F8D", "0x0F8C", "", "", "First Circle", "Spell Circle 1", "Night Sight", "0x1F33",)
//
//ReactiveArmor
// Inscription("0x0F84", "0x0F8C", "0x0F8D", "", "First Circle", "Spell Circle 1", "Reactive Armor", "0x1F2D",)
//
//Weaken
// Inscription("0x0F84", "0x0F88", "", "", "First Circle", "Spell Circle 1", "Weaken", "0x1F34",)
//
//Agility
// Inscription("0x0F7B", "0x0F86", "", "", "Second Circle", "Spell Circle 2", "Agility", "0x1F35",)
//
//Cunning
// Inscription("0x0F86", "0x0F88", "", "", "Second Circle", "Spell Circle 2", "Cunning", "0x1F36",)
//
//Cure
// Inscription("0x0F84", "0x0F85", "", "", "Second Circle", "Spell Circle 2", "Cure", "0x1F37",)
//
//Harm
// Inscription("0x0F88", "0x0F8D", "", "", "Second Circle", "Spell Circle 2", "Harm", "0x1F38",)
//
//MagicTrap
// Inscription("0x0F84", "0x0F8C", "0x0F8D", "", "Second Circle", "Spell Circle 2", "Magic Trap", "0x1F39",)
//
//MagicUntrap
// Inscription("0x0F84", "0x0F85", "0x0F8C", "", "Second Circle", "Spell Circle 2", "Magic Untrap", "0x1F3A",)
//
//Protection
// Inscription("0x0F84", "0x0F85", "0x0F8C", "", "Second Circle", "Spell Circle 2", "Protection", "0x1F3B",)
//
//Strength
// Inscription("0x0F86", "0x0F88", "", "", "Second Circle", "Spell Circle 2", "Strength", "0x1F3C",)
//
//Bless
// Inscription("0x0F84", "0x0F86", "", "", "Third Circle", "Spell Circle 3", "Bless", "0x1F3D",)
//
//Fireball
// Inscription("0x0F7A", "0x0F8C", "", "", "Third Circle", "Spell Circle 3", "Fireball", "0x1F3E",)
//
//MagicLock
// Inscription("0x0F8C", "0x0F7B", "0x0F84", "", "Third Circle", "Spell Circle 3", "Magic Lock", "0x1F3F",)
//
//Poison()
// Inscription("0x0F88", "", "", "", "Third Circle", "Spell Circle 3", "Poison", "0x1F40",)
//
//Telekinisis
// Inscription("0x0F7B", "0x0F86", "", "", "Third Circle", "Spell Circle 3", "Telekinisis", "0x1F41",)
//
//Teleport
// Inscription("0x0F7B", "0x0F86", "", "", "Third Circle", "Spell Circle 3", "Teleport", "0x1F42",)
//
//Unlock
// Inscription("0x0F7B", "0x0F84", "", "", "Third Circle", "Spell Circle 3", "Unlock", "0x1F43",)
//
//WallOfStone
// Inscription("0x0F7B", "0x0F84", "", "", "Third Circle", "Spell Circle 3", "Wall of Stone", "0x1F44",)
//
//ArchCure
// Inscription("0x0F84", "0x0F85", "0x0F86", "", "Fourth Circle", "Spell Circle 4", "Archcure", "0x1F45",)
//
//ArchProtection
// Inscription("0x0F84", "0x0F85", "0x0F86", "0x0F8C", "Fourth Circle", "Spell Circle 4", "Arch Protection", "0x1F46",)
//
//Curse
// Inscription("0x0F84", "0x0F88", "0x0F8C", "", "Fourth Circle", "Spell Circle 4", "Curse", "0x1F47",)
//
//FireField
// Inscription("0x0F7A", "0x0F8D", "0x0F8C", "", "Fourth Circle", "Spell Circle 4", "Fire Field", "0x1F48",)
//
//GreaterHeal
// Inscription("0x0F84", "0x0F85", "0x0F86", "0x0F8D", "Fourth Circle", "Spell Circle 4", "Greater Heal", "0x1F49",)
//
//Lightning
// Inscription("0x0F7A", "0x0F86", "0x0F8C", "", "Fourth Circle", "Spell Circle 4", "Lightning", "0x1F4A",)
//
//ManaDrain
// Inscription("0x0F7A", "0x0F86", "0x0F8D", "", "Fourth Circle", "Spell Circle 4", "ManaDrain", "0x1F4B",)
//
//Recall
// Inscription("0x0F7A", "0x0F7B", "0x0F86", "", "Fourth Circle", "Spell Circle 4", "Recall", "0x1F4C",)
//
//BladeSpirits
// Inscription("0x0F7A", "0x0F86", "0x0F88", "", "Fifth Circle", "Spell Circle 5", "Blade Spirits", "0x1F4D",)
//
//DispelField
// Inscription("0x0F84", "0x0F7A", "0x0F8D", "0x0F8C", "Fifth Circle", "Spell Circle 5", "Dispel Field", "0x1F4E",)
//
//Incognito
// Inscription("0x0F7B", "0x0F84", "0x0F88", "", "Fifth Circle", "Spell Circle 5", "Incognito", "0x1F4F",)
//
//MagicReflection
// Inscription("0x0F84", "0x0F86", "0x0F8D", "", "Fifth Circle", "Spell Circle 5", "Magic Reflection", "0x1F50",)
//
//MindBlast
// Inscription("0x0F7A", "0x0F86", "0x0F88", "0x0F8C", "Fifth Circle", "Spell Circle 5", "Mind Blast", "0x1F51",)
//
//Paralyze
// Inscription("0x0F84", "0x0F86", "0x0F8D", "", "Fifth Circle", "Spell Circle 5", "Paralyze", "0x1F52",)
//
//PoisonField
// Inscription("0x0F7A", "0x0F88", "0x0F8D", "", "Fifth Circle", "Spell Circle 5", "Poison Field", "0x1F53",)
//
//Summ.Creature
// Inscription("0x0F7B", "0x0F86", "0x0F8D", "", "Fifth Circle", "Spell Circle 5", "Summon Creature", "0x1F54",)
//
//sub Dispel
// Inscription("0x0F84", "0x0F86", "0x0F8C", "", "Sixth Circle", "Spell Circle 6", "Dispel", "0x1F55",)
//end sub
//
//EnergyBol
// Inscription("0x0F7A", "0x0F88", "", "", "Sixth Circle", "Spell Circle 6", "Energy Bolt", "0x1F56",)
//
//Explosion
// Inscription("0x0F7A", "0x0F86", "0x0F8C", "", "Sixth Circle", "Spell Circle 6", "Explosion", "0x1F57",)
//
//Invisibility
// Inscription("0x0F7B", "0x0F88", "", "", "Sixth Circle", "Spell Circle 6", "Invisibility", "0x1F58",)
//
//Mark
// Inscription("0x0F7A", "0x0F7B", "0x0F86", "", "Sixth Circle", "Spell Circle 6", "Mark", "0x1F59",)
//
//MassCurse
// Inscription("0x0F84", "0x0F86", "0x0F88", "0x0F8C", "Sixth Circle", "Spell Circle 6", "Mass Curse", "0x1F5A",)
//
//ParalyzeField
// Inscription("0x0F7A", "0x0F85", "0x0F8D", "", "Sixth Circle", "Spell Circle 6", "Paralyze Field", "0x1F5B",)
//
//Reveal
// Inscription("0x0F7B", "0x0F8C", "", "", "Sixth Circle", "Spell Circle 6", "Reveal", "0x1F5C",)
//
//ChainLightning
// Inscription("0x0F7A", "0x0F86", "0x0F7B", "0x0F8C", "Seventh Circle", "Spell Circle 7", "Chain Lightning", "0x1F5D",)
//
//EnergyField
// Inscription("0x0F7A", "0x0F86", "0x0F8D", "0x0F8C", "Seventh Circle", "Spell Circle 7", "Energy Field", "0x1F5E",)
//
//FlameStrike
// Inscription("0x0F8D", "0x0F8C", "", "", "Seventh Circle", "Spell Circle 7", "Flamestrike", "0x1F5F",)
//
//GateTravel
// Inscription("0x0F7A", "0x0F86", "0x0F8C", "", "Seventh Circle", "Spell Circle 7", "Gate Travel", "0x1F60",)
//
//ManaVampire
// Inscription("0x0F7A", "0x0F7B", "0x0F86", "0x0F8D", "Seventh Circle", "Spell Circle 7", "Mana Vampire", "0x1F61",)
//
//MassDispel
// Inscription("0x0F7A", "0x0F84", "0x0F86", "0x0F8C", "Seventh Circle", "Spell Circle 7", "Mass Dispel", "0x1F62",)
//
//MeteorSwarm
// Inscription("0x0F7B", "0x0F8D", "0x0F86", "0x0F8C", "Seventh Circle", "Spell Circle 7", "Meteor Storm", "0x1F63",)
//
//Polymorph
// Inscription("0x0F7B", "0x0F86", "0x0F8D", "", "Seventh Circle", "Spell Circle 7", "Polymorph", "0x1F64",)
//
//Earthquake
// Inscription("0x0F7B", "0x0F85", "0x0F86", "0x0F8C", "Eighth Circle", "Spell Circle 8", "Earthquake", "0x1F65",)
//
//EnergyVortex
// Inscription("0x0F7A", "0x0F7B", "0x0F86", "0x0F88", "Eighth Circle", "Spell Circle 8", "Energy Vortex", "0x1F66",)
//
//Resurrection
// Inscription("0x0F7B", "0x0F84", "0x0F85", "", "Eighth Circle", "Spell Circle 8", "Resurrection", "0x1F67",)
//
//AirElemental
// Inscription("0x0F7B", "0x0F86", "0x0F8D", "", "Eighth Circle", "Spell Circle 8", "Air Elemental", "0x1F68",)
//
//SummonDaemon
// Inscription("0x0F7B", "0x0F86", "0x0F8D", "0x0F8C", "Eighth Circle", "Spell Circle 8", "Summon Daemon", "0x1F69",)
//
//EarthElemental
// Inscription("0x0F7B", "0x0F86", "0x0F8D", "", "Eighth Circle", "Spell Circle 8", "Earth Elemental", "0x1F6A",)
//
//FireElemental
// Inscription("0x0F7B", "0x0F86", "0x0F8D", "0x0F8C", "Eighth Circle", "Spell Circle 8", "Fire Elemenal", "0x1F6B",)
//
//WaterElemental
// Inscription("0x0F7B", "0x0F86", "0x0F8D", "", "Eighth Circle", "Spell Circle 8", "Water Elememental", "0x1F6C",)
//
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{$Include 'all.inc'}
var
TimeStart : TDateTime;
k : integer;
const
TypBottles = $0E34; // Тип пустых скролов
TypPotion = $1F4C; // Тип готовых скролов
ColPotion = $0000; // Цвет готовых скролов
TypReagbl = $0F86; // Тип реагентов из которых делаем 1
TypReagbp = $0F7A; // Тип реагентов из которых делаем 2
TypReag = $0F7B; // Тип реагентов из которых делаем 3
CountRegs = 100; // Какое количество реагентов брать
CountBottles = 50; // Какое количество пустых Скролов брать
Sunduk_reags_bottels = $4017F062; // ИД сундука с которого берем Скролов и реагенты
Sunduk_craft = $4017F062; // ИД сундука в который кладем готовый продукт
hide=0; //Встаем в хайди или нет. 0-нет 1-да
procedure Check_World_Save;
begin
if InJournal('saving')<>-1 then
begin
ClearJournal;
k:=0;
repeat
wait(10000)
k:=k+1;
AddToSystemJournal('World is saving more than '+IntToStr(k*10)+' seconds.');
until (InJournal('data')<>-1) or (k>10)
end
end;
procedure Check_Hidden;
begin
if not Hidden then
begin
while not Hidden do
begin
SetWarMode(False);
useskill('Hiding');
wait(3600);
end;
AddToSystemJournal('Спрятались.');
end;
end;
procedure check_reag;
begin
UseObject(Sunduk_reags_bottels);
FindType(TypReag,Backpack);
if (FindCount=0) OR (Count(TypReag)<10) then
begin
UseObject(Sunduk_reags_bottels);
wait(250);
FindType(TypReag,Sunduk_reags_bottels);
if (FindCount>0) and (CountEx(TypReag,$0000,Sunduk_reags_bottels)>100) then
begin
MoveItem(FindItem,CountRegs,Backpack,0,0,0);
wait(1000);
AddToSystemJournal('Добрали '+IntToStr(CountRegs)+' реагентов. На данный момент имеем '+IntToStr(Count(TypReag))+' штук. Осталось ещё '+IntToStr(CountEx(TypReag,$0000,Sunduk_reags_bottels))+' реагентов.');
end
else
AddToSystemJournal('Ошибка во время добора реагентов.');
exit;
end;
end;
procedure check_reagbp;
begin
UseObject(Sunduk_reags_bottels);
FindType(TypReagbp,Backpack);
if (FindCount=0) OR (Count(TypReagbp)<10) then
begin
UseObject(Sunduk_reags_bottels);
wait(250);
FindType(TypReagbp,Sunduk_reags_bottels);
if (FindCount>0) and (CountEx(TypReagbp,$0000,Sunduk_reags_bottels)>100) then
begin
MoveItem(FindItem,CountRegs,Backpack,0,0,0);
wait(1000);
AddToSystemJournal('Добрали '+IntToStr(CountRegs)+' реагентов. На данный момент имеем '+IntToStr(Count(TypReagbp))+' штук. Осталось ещё '+IntToStr(CountEx(TypReagbp,$0000,Sunduk_reags_bottels))+' реагентов.');
end
else
AddToSystemJournal('Ошибка во время добора реагентов.');
exit;
end;
end;
procedure check_reagbl;
begin
UseObject(Sunduk_reags_bottels);
FindType(TypReagbl,Backpack);
if (FindCount=0) OR (Count(TypReagbl)<10) then
begin
UseObject(Sunduk_reags_bottels);
wait(250);
FindType(TypReagbl,Sunduk_reags_bottels);
if (FindCount>0) and (CountEx(TypReagbl,$0000,Sunduk_reags_bottels)>100) then
begin
MoveItem(FindItem,CountRegs,Backpack,0,0,0);
wait(1000);
AddToSystemJournal('Добрали '+IntToStr(CountRegs)+' реагентов. На данный момент имеем '+IntToStr(Count(TypReagbl))+' штук. Осталось ещё '+IntToStr(CountEx(TypReagbl,$0000,Sunduk_reags_bottels))+' реагентов.');
end
else
AddToSystemJournal('Ошибка во время добора реагентов.');
exit;
end;
end;
procedure check_scroll;
begin
UseObject(Sunduk_reags_bottels);
FindTypeEx(TypBottles,$0000,Backpack,false);
if (FindCount=0) OR (Count(TypBottles)<5) then
begin
UseObject(Sunduk_reags_bottels);
wait(250);
FindTypeEX(TypBottles,$0000,Sunduk_reags_bottels,false);
if (FindCount>0) and (CountEx(TypBottles,$0000,Sunduk_reags_bottels)>100) then
begin
MoveItem(FindItem,CountBottles,Backpack,0,0,0);
wait(1000);
AddToSystemJournal('Добрали '+IntToStr(CountBottles)+' Скролов. На данный момент имеем '+IntToStr(CountEx(TypBottles,$0000,backpack))+' штук. Осталось ещё '+IntToStr(CountEx(TypBottles,$0000,Sunduk_reags_bottels))+' Скролов.');
end
else
AddToSystemJournal('Ошибка во время добора Скролов.');
exit;
end;
end;
procedure craft_bottle;
begin
FindTypeEx(TypPotion,ColPotion,Backpack,false);
if (FindCount>0) AND (CountEx(TypPotion,ColPotion,backpack) >= 10) then
begin
MoveItem(FindItem,GetQuantity(FindItem),Sunduk_craft,0,0,0);
wait(800);
end;
end;
Begin
ClearJournal;
while not Dead do
begin
check_reag;
check_reagbp;
check_reagbl;
check_scroll;
if hide=1 then Check_Hidden;
if Weight>500 then exit; ///Если перебор веса выключение
k:=0;
TimeStart:=Now;
UseObject(FindType(TypBottles,Backpack))
Waitmenu('Spell Circle 4','Recall') /// Здесь меняем меню если делаем другой скрол
Waitmenu('Spell Circles','Fourth Circle'); /// Меню смотри в таблицы скрпипта
repeat
wait(100);
k := k + 1;
Check_World_Save;
until (InJournalBetweenTimes('You put', TimeStart, Now)<>-1) or (InJournalBetweenTimes('You fail', TimeStart, Now)<>-1) or (k > 300);
wait(100);
craft_bottle;
ClearJournal;
end;
End.