atazoid
Elpy
Posts: 1
Joined: Jan 2015
Reputation: 0
Version:
1.4.1.124
|
скрипт на аргументацию
Доброго времени суток всем! Пытаюсь я запустить ниже приведенный скрипт в рабочий режим, увы, не выходит. При запуске скрипта в чат выводится сообщение: AUGMENT: Out of gemstones or life stones. Хотя в инвентаре все предметы присутствуют. Мб была у кого такая проблема и кто просто шарит в скриптах, посоветуйте, что не так?
Code:
local weaponName = "Demitelum"
local lifestoneName = "Top-Grade Life Stone - Level 84"
local gemstoneName = "Gemstone B"
local gemstone_count = 58
local npcName = "Pushkin"
function getItemByName(name)
invList = GetInventory();
for item in invList.list do
if item.Name == name then
-- ShowToClient("ITEM", item.Name .. " (ID: " .. item.displayId .. ")");
return item
end
end
end
function openAugmentWindow(name)
target = GetTarget()
if ( target ~= nil ) then
if ( target:GetName() ~= name ) then
CancelTarget(true)
Sleep(500)
TargetNpc(name, 0)
Sleep(500)
end
else
TargetNpc(name, 0)
Sleep(500)
end
target = GetTarget()
if ( target ~= nil and target:GetName() == name ) then
Talk()
Sleep(500)
Click("05", "Augment Item.");
Sleep(500)
Click("00", "Start smelting.");
Sleep(500)
return true
end
return false
end
function getItemByName(name)
invList = GetInventory();
for item in invList.list do
if item.Name == name then
-- ShowToClient("ITEM", item.Name .. " (ID: " .. item.displayId .. ")");
return item
end
end
end
function openAugmentCancelWindow(name)
target = GetTarget()
if ( target ~= nil ) then
if ( target:GetName() ~= name ) then
CancelTarget(true)
Sleep(500)
TargetNpc(name, 0)
Sleep(500)
end
else
TargetNpc(name, 0)
Sleep(500)
end
target = GetTarget()
if ( target ~= nil and target:GetName() == name ) then
Talk();
Sleep(500)
Click("06", "Cancel item Augmentation.");
Sleep(500)
Click("00", "Remove the Stone of Life.");
Sleep(500)
return true
end
return false
end
weapon = getItemByName(weaponName)
if ( weapon == nil ) then
--ShowToClient("AUGMENT", "Could not find weapon " .. weaponName)
else
weaponId = weapon.objectId
GetAugmentManager():setItemId(weaponId)
repeat
if ( weapon.RefineryOp2 == 0 ) then
lifestone = getItemByName(lifestoneName)
gemstone = getItemByName(gemstoneName)
if ( lifestone == nil or gemstone == nil ) then
ShowToClient("AUGMENT:", "Out of gemstones or life stones")
break
end
GetAugmentManager():setItemId(weaponId)
GetAugmentManager():setLifeStoneId(lifestone.objectId)
--- HERE ---
GetAugmentManager():setGemstoneId(gemstone.objectId, gemstone_count)
GetAugmentManager():Augment()
Sleep(1000)
if ( openAugmentWindow(npcName) == false ) then
break
end
while ( GetAugmentManager():getAugmentResult() == Augment.AUGMENT_PENDING ) do
Sleep(200)
end
if ( GetAugmentManager():getAugmentResult() == Augment.AUGMENT_FINISHED ) then
Sleep (100) -- sleep so item data is updated
weapon = GetInventory():FindById(weaponId)
end
if ( GetAugmentManager():KeepAugment ( weapon.RefineryOp2 ) == true ) then
ShowToClient("AUGMENT:", "You have achieved desired augment! " .. weapon.RefineryOp2)
break
end
else
if ( GetAugmentManager():KeepAugment ( weapon.RefineryOp2 ) == true ) then
ShowToClient("AUGMENT:", "You have achieved desired augment! " .. weapon.RefineryOp2)
break
end
GetAugmentManager():setItemId(weaponId)
GetAugmentManager():AugmentCancel()
if ( openAugmentCancelWindow(npcName) == false ) then
break
end
while ( GetAugmentManager():getAugmentCancelResult() == Augment.AUGMENT_CANCEL_PENDING ) do
Sleep(200)
end
if ( GetAugmentManager():getAugmentCancelResult() == Augment.AUGMENT_FINISHED ) then
Sleep (100) -- sleep so item data is updated
end
weapon = GetInventory():FindById(weaponId)
end
until false
end
Причем работает скрипт на энчант и боты в полном объеме, без каких либо нареканий...
(This post was last modified: 01-27-2015 01:49 AM by atazoid.)
|
|
01-27-2015 01:44 AM |
|
alberthofman
Ratman Chieftain
Posts: 29
Joined: May 2013
Reputation: 0
Version:
1.4.2.133
|
RE: скрипт на аргументацию
не проще через плагин?
|
|
01-27-2015 21:38 PM |
|
TheQQmaster
Trolling the Trolls
Posts: 1,532
Joined: Jun 2012
Reputation: 642
Version:
1.4.2.133
|
RE: скрипт на аргументацию
jebasit na offi,
LUA Programming
--How To Use!!
-- Start With Weapon you need to augment EQUIPPED!
-- Start With Helmet on your Char!.. IF YOU REMOVE HELMET THE AUGMENTATION WILL STOP (so you can interrupt the script anytime you want)
-- Choose The Next 4 variables Correctly (Write The Exact Names with Exact Capital Letters and Same Spaces!):
local lifestoneName = "Mid-grade Life Stone - Level 80"
local gemstoneName = "Gemstone (A-grade)"
local gemstone_count = 13;
local npcName = "Pushkin"; -- only Pushkin(Giran)/ Wilbert(Aden) Supported!
------Dont Touch Under This Line---------
local AugStatus = 0;
local count = 0;
AugStatusC = 0;
function getItemByName(name)
local invList = GetInventory();
for item in invList.list do
if (item.Name == name) then
return item;
end;
end;
end;
function openAugmentWindow(name)
local target = GetTarget();
if (target ~= nil) then
if (target:GetName() ~= name) then
Command("/target " .. name);
Sleep(1000);
end;
else
Command("/target " .. name);
Sleep(1000);
end;
target = GetTarget();
if (target ~= nil) and (target:GetName() == name) then
if (name == "Wilbert") then
Talk();
ClickLinkAndWait("blacksmith_wilbert005.htm");
Sleep(100);
ClickLinkAndWait("smelting_start.htm");
Sleep(100);
QuestReply("menu_select?ask=-503&reply=100");
Sleep(1000);
return true;
elseif (name == "Pushkin") then
Talk();
--Sleep(1000);
ClickLinkAndWait("blacksmith_pushkin005.htm");
Sleep(100);
ClickLinkAndWait("smelting_start.htm");
Sleep(100);
QuestReply("menu_select?ask=-503&reply=100")
Sleep(1000);
return true;
end;
end;
return false;
end;
function getItemByName(name)
local invList = GetInventory();
for item in invList.list do
if (item.Name == name) then
return item;
end;
end;
end;
function openAugmentCancelWindow(name)
count = 2;
target = GetTarget();
if (target ~= nil) then
if (target:GetName() ~= name) then
Command("/target " .. name);
Sleep(1000);
end
else
Command("/target " .. name);
Sleep(1000);
end;
target = GetTarget();
if (target ~= nil) and (target:GetName() == name) then
if (name == "Wilbert") then
Talk();
ClickLinkAndWait("blacksmith_wilbert005.htm");
Sleep(100);
ClickLinkAndWait("smelting_break.htm");
Sleep(100);
ClickLink("menu_select?ask=-503&reply=200");
Sleep(1000);
return true;
elseif (name == "Pushkin") then
Talk();
ClickLinkAndWait("blacksmith_pushkin005.htm");
Sleep(100);
ClickLinkAndWait("smelting_break.htm");
Sleep(100);
QuestReply("menu_select?ask=-503&reply=200");
Sleep(1000);
return true;
end;
end;
return false;
end;
weaponId = GetMe():GetEquip_WeaponId();
if (weaponId == nil) or (weaponId == 0) then
ShowToClient(tostring(os.date("%X")), "You Dont have Any Weapon Equiped to augment!",3) ;
else
weapon = GetInventory():FindById(weaponId);
if (weapon ~= nil) and ((weapon.RefineryOp2 ~= 0) or (weapon.RefineryOp1 ~= 0)) then
ShowToClient(tostring(os.date("%X")), "You Must Start With Non Augmented weapon!",3) ;
else
repeat
if (weapon.RefineryOp2 == 0) and (weapon.RefineryOp1 == 0) then
AugStatus = 0;
lifestone = getItemByName(lifestoneName);
gemstone = getItemByName(gemstoneName);
if (lifestone == nil) then
ShowToClient(tostring(os.date("%X")), "Out of life stones.",3);
break;
end;
if (gemstone == nil) then
ShowToClient(tostring(os.date("%X")), "Out of gemstones.",3);
AugStatus = 1;
break;
end;
if (gemstone.ItemNum < gemstone_count) then
ShowToClient(tostring(os.date("%X")), "Gemstones are not enough.",3);
AugStatus = 1;
break;
end;
ShowToClient(tostring(os.date("%X")), "Augmenting ..",3);
AugStatusC = AugStatusC+1;
GetAugmentManager():setItemId(weaponId);
GetAugmentManager():setLifeStoneId(lifestone.objectId);
GetAugmentManager():setGemstoneId(gemstone.objectId, gemstone_count);
GetAugmentManager():Augment();
if (openAugmentWindow(npcName) == false) then
ShowToClient(tostring(os.date("%X")), "NPC FAIL.",3);
AugStatus = 1;
break;
end;
repeat
Sleep(1000);
weapon = GetInventory():FindById(weaponId);
until weapon.RefineryOp1 ~= 0
if (weapon == nil) then
ShowToClient(tostring(os.date("%X")), "The Weapon Couldn't be Detected!",3);
AugStatus = 1;
break;
else
if (GetAugmentManager():KeepAugment(weapon.RefineryOp2) == true) or (GetAugmentManager():KeepAugment(weapon.RefineryOp1) == true) then
ShowToClient(tostring(os.date("%X")), "Congratulation! You have achieved a desired augment!",3)
AugStatus = 1;
else
ShowToClient(tostring(os.date("%X")), "Obtained Useless Augment ...",3)
end;
end;
count = 1;
if (GetMe():GetEquip_HelmId() == 0) then
ShowToClient(tostring(os.date("%X")), "Augmentation Stoped Manualy by removing helment.",3);
AugStatus = 1;
break;
end;
else
Sleep(500);
ShowToClient(tostring(os.date("%X")), "Canceling Augmentation ..",3);
weapon = GetInventory():FindById(weaponId);
if weapon == nil then
ShowToClient(tostring(os.date("%X")), "Weapon for cancel not detected.",3);
count = 3
AugStatus = 1;
break;
end;
if (count == 1) then
GetAugmentManager():setItemId(weaponId);
GetAugmentManager():AugmentCancel();
count = 2;
end;
Sleep(500);
if (count == 2) and (openAugmentCancelWindow(npcName) == false) then
ShowToClient(tostring(os.date("%X")), "The NPC Dialog Is not Working Properly.",3);
count = 3
AugStatus = 1;
break;
end;
repeat
Sleep(1000);
weapon = GetInventory():FindById(weaponId);
until weapon.RefineryOp1 == 0
if not (weapon.RefineryOp1 == 0 and weapon.RefineryOp2 == 0) then
ShowToClient(tostring(os.date("%X")), "Augment Canceling Failed.",3);
AugStatus = 1;
break;
end;
if (GetMe():GetEquip_HelmId() == 0) then
ShowToClient(tostring(os.date("%X")), "Augmentation Stoped Manualy by removing helment.",3);
AugStatus = 1;
break;
end;
end;
until weapon == nil or AugStatus == 1 ;
ShowToClient(tostring(os.date("%X")),"Have Fun!",3);
end;
end;
PUSH IF HELPED
|
|
01-27-2015 23:22 PM |
|
aezez
Elpy
Posts: 1
Joined: Jan 2015
Version:
None
|
RE: скрипт на аргументацию
очень нужен скрипт для интерлюда
можт ктонить посоветовать?
|
|
01-29-2015 09:26 AM |
|