1
Poradniki / SKRYPTY DO OTC
« dnia: 17 Sierpień 2024, 11:09:22 »
Witam w tym wątku podam wam pare przydatnych skryptów do OTC Client
Aby aktytowac skrypty wchodzimy w zakladke tools w bocie i klikamy ingame script editor i tam wklejamy kody
Skrypt na e ringa (aby skrypt działał prawidłowo trzeba miec otwarte BP z ringami)
Skrypt na ue przy mobku
Cave stop jak malo many
Skrypt na Utamo Vita
Skrypt na Utani Mega Hur
Skrypt na Exeta Res
Anty Paral Skrypt
Skrypt na anty push
Skrypt na Vise kema/vida/tavo wystarczy zmienic nazwe spella
Skrpyt na exive ostatniego szukanego
SKRYPT NA UH (3162 S UH/ 3160 UH)
SKRYPT na autofollow
SKRYPT na przycisk ktory wylacza cave i target bota jednoczesnie
SKRYPT NA DEBUG POSTACI
SKRYPT na zakup AOL
Wraz z rozwojem serva pozniej zaczne dodawac WAR skrypty
Aby aktytowac skrypty wchodzimy w zakladke tools w bocie i klikamy ingame script editor i tam wklejamy kody
Skrypt na e ringa (aby skrypt działał prawidłowo trzeba miec otwarte BP z ringami)
Cytuj
local ringID = 3051
local item
macro(10, "Equip Ring", function()
if hppercent() <= 60 and not getFinger() then
item = findItem(ringID)
g_game.move(item, {x=65535, y=SlotFinger, z=0}, 1)
elseif hppercent() >= 90 and getFinger() then
item = getFinger()
for _,container in pairs(getContainers()) do
g_game.move(item, container:getSlotPosition(), 1)
return
end
end
end)
Skrypt na ue przy mobku
Cytuj
local singleTargetSpell = 'exori frigo'
local multiTargetSpell = 'frozen wave'
local distance = 3
local amountOfMonsters = 4
macro(250, "multi target spell", function()
local specAmount = 0
if not g_game.isAttacking() then
return
end
for i,mob in ipairs(getSpectators()) do
if (getDistanceBetween(player:getPosition(), mob:getPosition()) <= distance and mob:isMonster()) then
specAmount = specAmount + 1
end
end
if (specAmount >= amountOfMonsters) then
say(multiTargetSpell)
else
say(singleTargetSpell)
end
end)
Cave stop jak malo many
Cytuj
local manaToggle = macro(100, "Toggle Mana", function()
if manapercent() < 96 and CaveBot.isOn() then
CaveBot.setOff()
elseif manapercent() > 96 and CaveBot.isOff() then
CaveBot.setOn()
end
end)
Skrypt na Utamo Vita
Cytuj
local utamoDurationSeconds = 180
local renewEarlySeconds = 20
local nextUtamo = 0
addIcon("renewUtamo", {item={id=3548, count=1}, text="Utamo"}, macro(200, function(m)
if not hasManaShield() or now > nextUtamo then
say("utamo vita")
nextUtamo = (utamoDurationSeconds - renewEarlySeconds) * 1000 + now
end
end))
Skrypt na Utani Mega Hur
Cytuj
macro(500, "Auto Haste", nil, function()
if not hasHaste() and storage.autoHasteText:len() > 0 then
if saySpell(storage.autoHasteText) then
delay(5000)
end
end
end)
addTextEdit("autoHasteText", storage.autoHasteText or "utani mega hur", function(widget, text)
storage.autoHasteText = text
end)
Skrypt na Exeta Res
Cytuj
macro(500, "Auto RES", function()
say(storage.ExetaText)
end)
addTextEdit("ExetaText", storage.ExetaText or "Exeta res", function(widget, text)
storage.ExetaText = text
end)
Anty Paral Skrypt
Cytuj
macro(100, "Anti Paralyze", nil, function()
if isParalyzed() and storage.autoAntiParalyzeText:len() > 0 then
saySpell(storage.autoAntiParalyzeText)
end
end)
addTextEdit("autoAntiParalyzeText", storage.autoAntiParalyzeText or "utani hur", function(widget, text)
storage.autoAntiParalyzeText = text
end)
Skrypt na anty push
Cytuj
local dropItems = { 3031, 3035 }
local maxStackedItems = 10
local dropDelay = 600
gpAntiPushDrop = macro(dropDelay , "Anti-Push", function ()
antiPush()
end)
onPlayerPositionChange(function()
antiPush()
end)
Skrypt na Vise kema/vida/tavo wystarczy zmienic nazwe spella
Cytuj
macro(500, "Auto Buff", nil, function()
if not hasPartyBuff() and storage.autoBuffText:len() > 0 then
say(storage.autoBuffText)
delay(30000)
end
end)
addTextEdit("autoBuffText", storage.autoBuffText or "vise vida", function(widget, text)
storage.autoBuffText = text
end)
Skrpyt na exive ostatniego szukanego
Cytuj
local panelName = "tcLastExiva"
local tcLastExiva = setupUI([[
ExivaLabel < Label
height: 12
background-color: #00000055
opacity: 0.89
anchors.horizontalCenter: parent.horizontalCenter
text-auto-resize: true
font: verdana-11px-rounded
Panel
id: msgPanel
height: 26
width: 100
anchors.bottom: parent.bottom
anchors.horizontalCenter: parent.horizontalCenter
margin-bottom: 20
ExivaLabel
id: lblMessage
color: green
anchors.bottom: parent.bottom
!text: 'None.'
ExivaLabel
id: lblExiva
color: orange
anchors.bottom: prev.top
!text: 'Last Exiva: None'
]], modules.game_interface.getMapPanel())
local tclastExivaUI = setupUI([[
Panel
margin: 3
height: 66
layout:
type: verticalBox
HorizontalSeparator
id: separator
Label
id: title
text: Last Exiva
margin-top: 1
text-align: center
font: verdana-11px-rounded
Panel
id: time
height: 22
Label
!text: 'Time in seconds:'
anchors.left: parent.left
anchors.verticalCenter: parent.verticalCenter
anchors.right: next.left
text-align: center
height: 15
margin-right: 6
font: verdana-11px-rounded
BotTextEdit
id: text
text: 5
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
margin-left: 5
height: 17
width: 55
font: verdana-11px-rounded
]], parent)
if not storage[panelName] then
storage[panelName] = {
name = '',
timer = 5,
}
end
tclastExivaUI.time.text:setText(storage[panelName].timer)
tclastExivaUI.time.text.onTextChange = function(widget, text)
storage[panelName].timer = tonumber(text)
end
local lastExiva = ''
lastExiva = storage[panelName].name
tcLastExiva.lblExiva:setText('Last Exiva: ' .. lastExiva)
onTalk(function(name, level, mode, text, channelId, pos)
if name ~= player:getName() then return end
text = text:lower()
-- uncomment the warn below to find the channel mode if this doesn't work
-- cast exiva and you should see NUMBER : exiva "name"
-- warn(mode.. ':'..text)
if (mode == 34 or mode == 44) and text:find('exiva ') then
lastExiva = string.match(text, [[exiva "([^"]+)]])
if lastExiva then
storage[panelName].name = lastExiva
tcLastExiva.lblExiva:setText('Last Exiva: ' .. lastExiva)
end
end
end)
onTextMessage(function(mode, text)
if mode ~= 20 then return end
local regex = "([a-z A-Z]*) is ([a-z -A-Z]*)(?:to the|standing|below|above) ([a-z -A-Z]*)."
local data = regexMatch(text, regex)[1]
if data and data[2] and data[3] then
schedule(10, function()
tcLastExiva.lblMessage:setText(text)
end)
end
end)
tclastExivaMacro = macro(100, "Enable", "F1", function()
if lastExiva:len() > 0 then
say('exiva "' .. lastExiva)
end
delay(tonumber(storage[panelName].timer) * 1000)
end, tclastExivaUI)
UI.Separator(tclastExivaUI)
SKRYPT NA UH (3162 S UH/ 3160 UH)
Cytuj
local hpId = 3162
local hpPercent = 70
macro(200, "UH", function()
if (hppercent() <= hpPercent) then
usewith(hpId, player)
end
end)
SKRYPT na autofollow
Cytuj
followName = "autofollow"
if not storage[followName] then storage[followName] = { player = 'name'} end
local toFollowPos = {}
UI.Separator()
UI.Label("Auto Follow")
followTE = UI.TextEdit(storage[followName].player or "name", function(widget, newText)
storage[followName].player = newText
end)
local followChange = macro(200, "Follow Change", function() end)
local followMacro = macro(20, "Follow", function()
local target = getCreatureByName(storage[followName].player)
if target then
local tpos = target:getPosition()
toFollowPos[tpos.z] = tpos
end
if player:isWalking() then
return
end
local p = toFollowPos[posz()]
if not p then
return
end
if autoWalk(p, 20, { ignoreNonPathable = true, precision = 1 }) then
delay(100)
end
end)
UI.Separator()
onPlayerPositionChange(function(newPos, oldPos)
if followChange:isOff() then return end
if (g_game.isFollowing()) then
tfollow = g_game.getFollowingCreature()
if tfollow then
if tfollow:getName() ~= storage[followName].player then
followTE:setText(tfollow:getName())
storage[followName].player = tfollow:getName()
end
end
end
end)
onCreaturePositionChange(function(creature, newPos, oldPos)
if creature:getName() == storage[followName].player and newPos then
toFollowPos[newPos.z] = newPos
end
end)
SKRYPT na przycisk ktory wylacza cave i target bota jednoczesnie
Cytuj
singlehotkey("Escape", "Toggle", function()
CaveBot.setOn(not CaveBot.isOn())
TargetBot.setOn(not TargetBot.isOn())
warn("CaveBot " .. (CaveBot.isOn() and 'On' or 'Off'))
warn("TargetBot " .. (TargetBot.isOn() and 'On' or 'Off'))
end)
SKRYPT NA DEBUG POSTACI
Cytuj
local NEXT_MOVE_DELAY = 10000
local moveToggle = false
macro(NEXT_MOVE_DELAY, "Move Up/Down", function()
if moveToggle then
g_game.walk(0)
else
g_game.walk(2)
end
moveToggle = not moveToggle
end)
SKRYPT na zakup AOL
Cytuj
local aolId = 3057
local aolCommand = "!aol"
macro(100, "BUY AOL", function()
if not getNeck() or (aolId and getNeck():getId() ~= aolId) then
say(aolCommand)
end
end))
Wraz z rozwojem serva pozniej zaczne dodawac WAR skrypty