Ir para conteúdo

garep

Artesão
  • Total de itens

    118
  • Registro em

  • Última visita

Tudo que garep postou

  1. garep

    Spell's bar por voc

    eita Noninhouh péra, rapidinho... #edit
  2. garep

    Spell's bar por voc

    Muita gente falando e pedindo spell's bar por voc e n tem opcode instalado e não sabe como instala ai vai um script, com ele da pra fazer vários.... Script: Client > local spelllist = { ['Death Strike'] = {id = 87, words = 'exori mort', exhaustion = 2000, premium = true, type = 'Instant', icon = 'deathstrike', mana = 20, level = 16, soul = 0, group = {[1] = 2000}, vocations = {1, 5}}, ['Flame Strike'] = {id = 89, words = 'exori flam', exhaustion = 2000, premium = true, type = 'Instant', icon = 'flamestrike', mana = 20, level = 14, soul = 0, group = {[1] = 2000}, vocations = {1, 2, 5, 6}}, ['Strong Flame Strike'] = {id = 150, words = 'exori gran flam', exhaustion = 8000, premium = true, type = 'Instant', icon = 'strongflamestrike', mana = 60, level = 70, soul = 0, group = {[1] = 2000, [4] = 8000}, vocations = {1, 5}}, } local VOCID = 1 local spells = {} local lado = 'vertical' local sbw -- window widget local sbb -- button ./\ widget local spellBarWindow -- UIWindow local exhsaustionTotal = 1100 local hideLevel = false -- os que nao tem level, vai mostrar? true = nao, false = sim function init() sbb = modules.client_topmenu.addRightGameToggleButton('sbb', 'Spell Bar' , 'SpellBar.png', toggle) sbb:setWidth(16) sbw = g_ui.displayUI('SpellBar') sbw:move(10,50) g_mouse.bindPress(sbw, function() createMenu() end, MouseRightButton) sbw:hide() connect(g_game, 'onTalk', mensagemEnviada) connect(g_game, { onGameEnd = function() sbw:hide() sbb:setOn(false) end }) connect(LocalPlayer, { onLevelChange = onLevelChange }) connect(g_game, 'onTextMessage', getVocation) for inst,values in pairs(spelllist) do if values.type == 'Instant' then -- depois vou fazer mais tipos.. if g_game.getProtocolVersion() >= 950 then -- Vocation is only send in newer clients if table.find(values.vocations, g_game.getLocalPlayer():getVocation()) then local inside = {instantName = inst, words = values.words, lvl = values.level, mana = values.mana, prem = values.premium, groups = values.group,icon = values.icon, vocations = values.vocations,exhaustion = values.exhaustion} table.insert(spells,inside) end else local inside = {instantName = inst, words = values.words, lvl = values.level, mana = values.mana, prem = values.premium, groups = values.group,icon = values.icon, vocations = values.vocations,exhaustion = values.exhaustion} table.insert(spells,inside) end end end table.sort(spells, function(a, b) return (a.lvl < b.lvl) end) end function onLevelChange(localPlayer, value, percent) getSpells(spells) end function mensagemEnviada(name, level, mode, text, channelId, pos) if not g_game.isOnline() then return end if g_game.getLocalPlayer():getName() ~= name then return end for i = 1,#spells do if spells[i].words:lower() == text:lower() then startDownDelay(i) break end end end function terminate() sbw:destroy() sbb:destroy() disconnect(g_game, { onGameEnd = function() sbw:hide() sbb:setOn(false) end }) disconnect(g_game, 'onTalk', mensagemEnviada) disconnect(LocalPlayer, { onLevelChange = onLevelChange }) disconnect(g_game, 'onTextMessage', getVocation) end function getVocation(mode, text) local t = string.explode(text, " ") if not g_game.isOnline() then return end if mode == MessageModes.Failure then if text:find("#getVoc#") then if tonumber(t[2]) == VOCID then sbb:setOn(true) sbb:show() sbw:show() getSpells(spells) level = g_game.getLocalPlayer():getLevel() else sbb:setOn(false) sbb:hide() sbw:hide() end end end end function toggle() if sbb:isOn() then sbw:hide() sbb:setOn(false) else sbw:show() getSpells(spells) sbb:setOn(true) level = g_game.getLocalPlayer():getLevel() end end function createMenu() local menu = g_ui.createWidget('PopupMenu') if lado == 'horizontal' then menu:addOption('Set Vertical', function() lado = 'vertical' getSpells(spells) end) else menu:addOption('Set Horizontal',function() lado = 'horizontal' getSpells(spells) end) end if hideLevel == false then menu:addOption('No Level Hide',function() hideLevel = true getSpells(spells) end) else menu:addOption('No Level Show',function() hideLevel = false getSpells(spells) end) end menu:display() end function destruirSpells() for i = 1,100 do if sbw:recursiveGetChildById('spell'..i) == nil then break end sbw:recursiveGetChildById('spell'..i):destroy() sbw:recursiveGetChildById('progress'..i):destroy() end end function getSpells(tabela) destruirSpells() spellBarWindow = sbw:recursiveGetChildById('mainWindow') local player = g_game.getLocalPlayer() local valor = #tabela local width = 38 local height = 38 if not player then return end for i = 1,#tabela do if (tabela[i].lvl > player:getLevel()) and hideLevel == true then valor = i - 1 break end if i == #tabela then valor = i end icon = g_ui.createWidget('SpellButton',spellBarWindow) progress = g_ui.createWidget('SpellProgressSpell',spellBarWindow) --icon: icon:setId('spell'..i) local spicon = Spells.getClientId(tabela[i].instantName) icon:setImageSource('/images/game/spells/defaultspells') icon:setImageClip((((spicon -1)%12)*32) .. ' ' .. ((math.ceil(spicon/12)-1)*32) .. ' 32 32') icon:setVisible(true) icon.words = tabela[i].words icon.instantName = tabela[i].instantName icon.lvl = tabela[i].lvl icon.mana = tabela[i].mana icon.exhaustion = tabela[i].exhaustion icon.exhaustionNeeded = 0 icon:setTooltip(tabela[i].words) if lado == 'horizontal' then icon:setMarginTop(3) height = 38 width = (i) * 32 + 2*(i) icon:setMarginLeft((i) * 32 + 2*(i) - 32) else icon:setMarginLeft(3) icon:setMarginTop((i) * 32 + 2*(i) - 32) width = 38 height = (i) * 32 + 2*(i) end --progress: progress:setId('progress'..i) progress:setVisible(true) progress:setPercent(100) progress:setMarginLeft(icon:getMarginLeft()) progress:setMarginTop(icon:getMarginTop()) if player:getLevel() < icon.lvl then progress:setText('L'..icon.lvl) progress:setColor('red') progress:setPercent(0) end if progress:getPercent() == 100 then progress:setText('OK') elseif icon.lvl < player:getLevel() then progress:setText(progress:getPercent()) end progress:setPhantom(true) icon.onClick = function() useSpell(i) end end sbw:setHeight(height) sbw:setWidth(width) spellBarWindow:setSize(sbw:getSize()) end function useSpell(i) local spell = sbw:recursiveGetChildById('spell'..i) if not spell then return end local progress = sbw:recursiveGetChildById('progress'..i) local player = g_game.getLocalPlayer() if not player then return end if progress:getPercent() < 100 then return modules.game_textmessage.displayFailureMessage('Wait your delay!') end g_game.talk(spell.words) end function startDownDelay(i) -- aqui vai ficar on onTalk, pra descer só realmente quando a spell sair local spell = sbw:recursiveGetChildById('spell'..i) if not spell then return end local progress = sbw:recursiveGetChildById('progress'..i) progress:setPercent(0) progress:setText('0%') progress:setColor('red') spell.exhaustionNeeded = 0 scheduleEvent(function() spellTimeleft(i) end,100) end function spellTimeleft(i) local spell = sbw:recursiveGetChildById('spell'..i) if not spell then return end local progress = sbw:recursiveGetChildById('progress'..i) spell.exhaustionNeeded = spell.exhaustionNeeded + 100 if spell.exhaustionNeeded < spell.exhaustion then progress:setPercent(math.ceil(((spell.exhaustionNeeded) * 100)/spell.exhaustion)) progress:setText(progress:getPercent()) progress:setColor('red') else progress:setPercent(100) progress:setText('OK') progress:setColor('green') spell.exhaustionNeeded = 0 return true end scheduleEvent(function() spellTimeleft(i) end,100) end vocID > id da voc, que vai aparecer as spells que no script, exp: kina voc 4 vocID 4 no script deixa so as spells de kina vocID 1 no scirpt deixa so as spells de sorc no serve agora otserv>data>talkactions function onSay(cid, words, param) if not param then return true end doPlayerSendCancel(cid, "#getVoc# ".. getPlayerVocation(cid)) return true end tag: tipo ser for criar spells pra mais voc, tipo 1mod pra cada voc... espero que tenha ficado facil... O script ta bem primitivo mais ja é um lado ai pra quem não tem.... Creditos: DrakyLucas, pois peguei seu mode como base.. Noninhouh. +reps se ajudo... ,
  3. ta voce pode ter feito a do client, mais a comunicação entre o o client e o serv foi eu. se quiser tenho mais script do client world-pokemon, que eu adaptei. e como ja falei a cima pequei o script do client do world-pokemon
  4. Amigo como falei, peguei o script do World Pokemon e a talk fui eu q fiz, e tenho entre outros Sys do Client dele aqui... se quiser ..
  5. garep

    Emblemas na Skill Bar

    ->Emblemas na Skill Bar Pxg <- Pra quem esta fazendo um otserv de poketibia ta um script. >Tudo isso no Client< 1 - paga tudo que esta em Skills.OTUI e add esse SkillFirstWidget < UIWidget SkillButton < UIButton height: 21 margin-bottom: 2 &onClick: onSkillButtonClick SkillNameLabel < GameLabel font: verdana-11px-monochrome anchors.left: parent.left anchors.top: parent.top anchors.bottom: parent.bottom SkillValueLabel < GameLabel id: value font: verdana-11px-monochrome text-align: topright anchors.right: parent.right anchors.top: parent.top anchors.bottom: parent.bottom anchors.left: prev.left SkillPercentPanel < ProgressBar id: percent background-color: green height: 5 image-source: /modules/game_skills/img/skillprogress image-border-left: 2 image-border-right: 3 margin-top: 15 anchors.left: parent.left anchors.right: parent.right anchors.top: parent.top phantom: false MiniWindow id: skillWindow !text: tr('Skills') height: 150 icon: /modules/game_skills/img/perfil_icon @onClose: modules.game_skills.onMiniWindowClose() &save: true MiniWindowContents padding-left: 5 padding-right: 5 layout: verticalBox SkillButton margin-top: 5 id: experience height: 13 SkillValueLabel width: 130 text-align: top anchors.horizontalCenter: parent.horizontalCenter margin-left: 15 UIButton id: clanicon width: 37 height: 36 image-source: /modules/game_skills/img/skillicon anchors.top: parent.top anchors.left: parent.left SkillButton margin-top: 5 id: experiencee height: 13 SkillValueLabel width: 130 font: sans-bold-16px text-align: top anchors.horizontalCenter: parent.horizontalCenter margin-top: -6 margin-left: 15 SkillButton id: level SkillNameLabel !text: tr('Experience') SkillValueLabel SkillPercentPanel background-color: red SkillButton id: skillId6 SkillNameLabel !text: tr('Fishing') SkillValueLabel SkillPercentPanel SkillButton id: skillId3 SkillNameLabel !text: tr('Headbutt') SkillValueLabel SkillPercentPanel SkillButton id: health height: 15 SkillNameLabel !text: tr('Hit Points') SkillValueLabel visible: false SkillButton id: mana height: 15 SkillNameLabel !text: tr('Mana') SkillValueLabel visible: false SkillButton id: capacity height: 15 SkillNameLabel !text: tr('Capacity') SkillValueLabel visible: false SkillButton id: regenerationTime SkillNameLabel !text: tr('Regeneration Time') SkillValueLabel visible: false SkillButton id: offlineTraining SkillNameLabel !text: tr('Offline Training') SkillValueLabel SkillPercentPanel visible: false SkillButton id: magiclevel SkillNameLabel !text: tr('Magic Level') SkillValueLabel SkillPercentPanel background-color: red visible: false SkillButton id: stamina height: 15 SkillNameLabel !text: tr('Stamina') SkillValueLabel margin-top: 8 HorizontalSeparator height: 7 anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right margin-top: -6 SkillButton id: soul height: 15 SkillNameLabel !text: tr('All Catches') SkillValueLabel SkillButton id: speed height: 15 SkillNameLabel !text: tr('Speed') SkillValueLabel SkillButton id: skillId1 margin-top: 8 height: 15 SkillNameLabel !text: tr('Duels Won') SkillValueLabel HorizontalSeparator height: 7 anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right margin-top: -6 SkillButton id: skillId0 height: 15 SkillNameLabel !text: tr('Duels Lost') SkillValueLabel SkillButton id: skillId2 SkillNameLabel !text: tr('Sword Fighting') SkillValueLabel SkillPercentPanel visible: false SkillButton id: skillId4 SkillNameLabel !text: tr('Distance Fighting') SkillValueLabel SkillPercentPanel visible: false SkillButton id: skillId5 SkillNameLabel !text: tr('Shielding') SkillValueLabel SkillPercentPanel visible: false 2 - agora vai em skills.lua paga tudo e add esse ai skillsWindow = nil skillsButton = nil local imgs = { [-1] = "/modules/game_skills/img/trainer", -- -1 quer dizer esta sem clan... [1] = "/modules/game_skills/img/volcanic", [2] = "/modules/game_skills/img/seavell", [3] = "/modules/game_skills/img/orebound", [4] = "/modules/game_skills/img/wingeon", [5] = "/modules/game_skills/img/malefic", [6] = "/modules/game_skills/img/gardestrike", [7] = "/modules/game_skills/img/psycraft ", [8] = "/modules/game_skills/img/naturia", [9] = "/modules/game_skills/img/raibolt", } function init() connect(LocalPlayer, { onExperienceChange = onExperienceChange, onLevelChange = onLevelChange, onHealthChange = onHealthChange, onManaChange = onManaChange, onSoulChange = onSoulChange, onFreeCapacityChange = onFreeCapacityChange, onTotalCapacityChange = onTotalCapacityChange, onStaminaChange = onStaminaChange, onOfflineTrainingChange = onOfflineTrainingChange, onRegenerationChange = onRegenerationChange, onSpeedChange = onSpeedChange, onBaseSpeedChange = onBaseSpeedChange, onMagicLevelChange = onMagicLevelChange, onBaseMagicLevelChange = onBaseMagicLevelChange, onSkillChange = onSkillChange, onBaseSkillChange = onBaseSkillChange }) connect(g_game, { onGameStart = refresh, onGameEnd = offline }) connect(g_game, 'onTextMessage', getParams) connect(g_game, {onGameStart = changeImg}) skillsButton = modules.client_topmenu.addCustomRightButton('skillsButton', tr('skills') .. ' (Ctrl+S)', '/modules/game_skills/img/perfil_icon', toggle, true) skillsButton:setOn(true) skillsWindow = g_ui.loadUI('skills', modules.game_interface.getRightPanel()) -- skills g_keyboard.bindKeyDown('Ctrl+S', toggle) refresh() skillsWindow:setup() end function terminate() disconnect(LocalPlayer, { onExperienceChange = onExperienceChange, onLevelChange = onLevelChange, onHealthChange = onHealthChange, onManaChange = onManaChange, onSoulChange = onSoulChange, onFreeCapacityChange = onFreeCapacityChange, onTotalCapacityChange = onTotalCapacityChange, onStaminaChange = onStaminaChange, onOfflineTrainingChange = onOfflineTrainingChange, onRegenerationChange = onRegenerationChange, onSpeedChange = onSpeedChange, onBaseSpeedChange = onBaseSpeedChange, onMagicLevelChange = onMagicLevelChange, onBaseMagicLevelChange = onBaseMagicLevelChange, onSkillChange = onSkillChange, onBaseSkillChange = onBaseSkillChange }) disconnect(g_game, { onGameStart = refresh, onGameEnd = offline }) disconnect(g_game, 'onTextMessage', getParams) disconnect(g_game, {onGameStart = changeImg}) g_keyboard.unbindKeyDown('Ctrl+S') skillsWindow:destroy() skillsButton:destroy() end function changeImg() local player = g_game.getLocalPlayer() if not player then return end g_game.talk("#getSto# 86228") end function getParams(mode, text) if not g_game.isOnline() then return end if mode == MessageModes.Failure then if text:find("#getSto#") then local icon = skillsWindow:recursiveGetChildById("clanicon") if icon then local t = string.explode(text, " ") icon:setImageSource(imgs[tonumber(t[2])]) end end end end function expForLevel(level) return math.floor((50*level*level*level)/3 - 100*level*level + (850*level)/3 - 200) end function expToAdvance(currentLevel, currentExp) return expForLevel(currentLevel+1) - currentExp end function resetSkillColor(id) local skill = skillsWindow:recursiveGetChildById(id) local widget = skill:getChildById('value') widget:setColor('#bbbbbb') end function setSkillBase(id, value, baseValue) if baseValue <= 0 or value < 0 then return end local skill = skillsWindow:recursiveGetChildById(id) local widget = skill:getChildById('value') if value > baseValue then widget:setColor('#008b00') -- green skill:setTooltip(baseValue .. ' +' .. (value - baseValue)) elseif value < baseValue then widget:setColor('#b22222') -- red skill:setTooltip(baseValue .. ' ' .. (value - baseValue)) else widget:setColor('#bbbbbb') -- default skill:removeTooltip() end end function setSkillValue(id, value) local skill = skillsWindow:recursiveGetChildById(id) local widget = skill:getChildById('value') widget:setText(value) end function setSkillColor(id, value) local skill = skillsWindow:recursiveGetChildById(id) local widget = skill:getChildById('value') widget:setColor(value) end function setSkillTooltip(id, value) local skill = skillsWindow:recursiveGetChildById(id) local widget = skill:getChildById('value') widget:setTooltip(value) end function setSkillPercent(id, percent, tooltip) local skill = skillsWindow:recursiveGetChildById(id) local widget = skill:getChildById('percent') widget:setPercent(math.floor(percent)) if tooltip then widget:setTooltip(tooltip) end end function checkAlert(id, value, maxValue, threshold, greaterThan) if greaterThan == nil then greaterThan = false end local alert = false -- maxValue can be set to false to check value and threshold -- used for regeneration checking if type(maxValue) == 'boolean' then if maxValue then return end if greaterThan then if value > threshold then alert = true end else if value < threshold then alert = true end end elseif type(maxValue) == 'number' then if maxValue < 0 then return end local percent = math.floor((value / maxValue) * 100) if greaterThan then if percent > threshold then alert = true end else if percent < threshold then alert = true end end end if alert then setSkillColor(id, '#b22222') -- red else resetSkillColor(id) end end function update() local offlineTraining = skillsWindow:recursiveGetChildById('offlineTraining') if not g_game.getFeature(GameOfflineTrainingTime) then offlineTraining:hide() else offlineTraining:show() end local regenerationTime = skillsWindow:recursiveGetChildById('regenerationTime') if not g_game.getFeature(GamePlayerRegenerationTime) then regenerationTime:hide() else regenerationTime:show() end end function refresh() local player = g_game.getLocalPlayer() if not player then return end if expSpeedEvent then expSpeedEvent:cancel() end expSpeedEvent = cycleEvent(checkExpSpeed, 30*1000) onExperienceChange(player, player:getExperience()) onLevelChange(player, player:getLevel(), player:getLevelPercent()) onHealthChange(player, player:getHealth(), player:getMaxHealth()) onManaChange(player, player:getMana(), player:getMaxMana()) onSoulChange(player, player:getSoul()) onFreeCapacityChange(player, player:getFreeCapacity()) onStaminaChange(player, player:getStamina()) onMagicLevelChange(player, player:getMagicLevel(), player:getMagicLevelPercent()) onOfflineTrainingChange(player, player:getOfflineTrainingTime()) onRegenerationChange(player, player:getRegenerationTime()) onSpeedChange(player, player:getSpeed()) for i=0,6 do onSkillChange(player, i, player:getSkillLevel(i), player:getSkillLevelPercent(i)) onBaseSkillChange(player, i, player:getSkillBaseLevel(i)) end update() local contentsPanel = skillsWindow:getChildById('contentsPanel') skillsWindow:setContentMinimumHeight(110) skillsWindow:setContentMaximumHeight(210) end function offline() if expSpeedEvent then expSpeedEvent:cancel() expSpeedEvent = nil end end function toggle() if skillsButton:isOn() then skillsWindow:close() skillsButton:setOn(false) else skillsWindow:open() skillsButton:setOn(true) skillsButton:setOpacity(1.0) end end function checkExpSpeed() local player = g_game.getLocalPlayer() if not player then return end local currentExp = player:getExperience() local currentTime = g_clock.seconds() if player.lastExps ~= nil then player.expSpeed = (currentExp - player.lastExps[1][1])/(currentTime - player.lastExps[1][2]) onLevelChange(player, player:getLevel(), player:getLevelPercent()) else player.lastExps = {} end table.insert(player.lastExps, {currentExp, currentTime}) if #player.lastExps > 30 then table.remove(player.lastExps, 1) end end function onMiniWindowClose() skillsButton:setOn(false) skillsButton:setOpacity(0.5) end function onSkillButtonClick(button) local percentBar = button:getChildById('percent') if percentBar then percentBar:setVisible(not percentBar:isVisible()) if percentBar:isVisible() then button:setHeight(21) else button:setHeight(21 - 6) end end end function onExperienceChange(localPlayer, value) setSkillValue('level', value) end function onLevelChange(localPlayer, value, percent) setSkillValue('experience', localPlayer:getName()) setSkillValue('experiencee', value) local text = tr('You have %s percent to go', 100 - percent) .. '\n' .. tr('%s of experience left', expToAdvance(localPlayer:getLevel(), localPlayer:getExperience())) if localPlayer.expSpeed ~= nil then local expPerHour = math.floor(localPlayer.expSpeed * 3600) if expPerHour > 0 then local nextLevelExp = expForLevel(localPlayer:getLevel()+1) local hoursLeft = (nextLevelExp - localPlayer:getExperience()) / expPerHour local minutesLeft = math.floor((hoursLeft - math.floor(hoursLeft))*60) hoursLeft = math.floor(hoursLeft) text = text .. '\n' .. tr('%d of experience per hour', expPerHour) text = text .. '\n' .. tr('Next level in %d hours and %d minutes', hoursLeft, minutesLeft) end end setSkillPercent('level', percent, text) end function onHealthChange(localPlayer, health, maxHealth) setSkillValue('health', health) checkAlert('health', health, maxHealth, 30) end function onManaChange(localPlayer, mana, maxMana) setSkillValue('mana', mana) checkAlert('mana', mana, maxMana, 30) end function onSoulChange(localPlayer, soul) setSkillValue('soul', soul) end function onFreeCapacityChange(localPlayer, freeCapacity) setSkillValue('capacity', freeCapacity) checkAlert('capacity', freeCapacity, localPlayer:getTotalCapacity(), 20) end function onTotalCapacityChange(localPlayer, totalCapacity) checkAlert('capacity', localPlayer:getFreeCapacity(), totalCapacity, 20) end function onStaminaChange(localPlayer, stamina) local hours = math.floor(stamina / 60) local minutes = stamina % 60 if minutes < 10 then minutes = '0' .. minutes end setSkillValue('stamina', hours .. ":" .. minutes) end function onOfflineTrainingChange(localPlayer, offlineTrainingTime) if not g_game.getFeature(GameOfflineTrainingTime) then return end local hours = math.floor(offlineTrainingTime / 60) local minutes = offlineTrainingTime % 60 if minutes < 10 then minutes = '0' .. minutes end local percent = 100 * offlineTrainingTime / (12 * 60) -- max is 12 hours setSkillValue('offlineTraining', hours .. ":" .. minutes) setSkillPercent('offlineTraining', percent, tr('You have %s percent', percent)) end function onRegenerationChange(localPlayer, regenerationTime) if not g_game.getFeature(GamePlayerRegenerationTime) or regenerationTime < 0 then return end local minutes = math.floor(regenerationTime / 60) local seconds = regenerationTime % 60 if seconds < 10 then seconds = '0' .. seconds end setSkillValue('regenerationTime', minutes .. ":" .. seconds) checkAlert('regenerationTime', regenerationTime, false, 300) end function onSpeedChange(localPlayer, speed) setSkillValue('speed', speed) onBaseSpeedChange(localPlayer, localPlayer:getBaseSpeed()) end function onBaseSpeedChange(localPlayer, baseSpeed) setSkillBase('speed', localPlayer:getSpeed(), baseSpeed) end function onMagicLevelChange(localPlayer, magiclevel, percent) setSkillValue('magiclevel', magiclevel) setSkillPercent('magiclevel', percent, tr('You have %s percent to go', 100 - percent)) onBaseMagicLevelChange(localPlayer, localPlayer:getBaseMagicLevel()) end function onBaseMagicLevelChange(localPlayer, baseMagicLevel) setSkillBase('magiclevel', localPlayer:getMagicLevel(), baseMagicLevel) end function onSkillChange(localPlayer, id, level, percent) setSkillValue('skillId' .. id, level) setSkillPercent('skillId2', percent, tr('You have %s percent to go', 100 - percent)) setSkillPercent('skillId3', percent, tr('You have %s percent to go', 100 - percent)) setSkillPercent('skillId4', percent, tr('You have %s percent to go', 100 - percent)) setSkillPercent('skillId5', percent, tr('You have %s percent to go', 100 - percent)) setSkillPercent('skillId6', percent, tr('You have %s percent to go', 100 - percent)) onBaseSkillChange(localPlayer, id, localPlayer:getSkillBaseLevel(id)) end function onBaseSkillChange(localPlayer, id, baseLevel) setSkillBase('skillId'..id, localPlayer:getSkillLevel(id), baseLevel) end --------------------------------------------------------------Client----------------------------------------------- --------------------------------------------------------------Serve-------------------------------------------- 1- data>talkactions> e crie um arquivo chamado. talkClan.lua e add isso nele. function onSay(cid, words, param) if not tonumber(param) then return true end doPlayerSendCancel(cid, "#getSto# ".. getPlayerStorageValue(cid, tonumber(param))) return true end 2- agora vai em talkactions.xml e add essa tag. <talkaction words="#getSto#" event="script" value="talkClan.lua"/> pronto agora é so testa, somente para PDA, pois so testei la... agora vamos la esse script peguei do client do "pokemon world" e a talk quem fez foi eu. Gosto da +rep
  6. garep

    AJuda aqui

    Gente to com esse script e a Opcodes Instaladas no server se alguem poder ajuda como fazer pra funcionar InventorySlotStyles = { [InventorySlotHead] = "HeadSlot", [InventorySlotNeck] = "NeckSlot", [InventorySlotBack] = "BackSlot", [InventorySlotBody] = "BodySlot", [InventorySlotRight] = "RightSlot", [InventorySlotLeft] = "LeftSlot", [InventorySlotLeg] = "LegSlot", [InventorySlotFeet] = "FeetSlot", [InventorySlotFinger] = "FingerSlot", [InventorySlotAmmo] = "AmmoSlot" } Backgrounds = { [0] = { path = '/images/inventory/Anbu_INV.png', id = 'background_anbu'}, [1] = { path = '/images/inventory/Uchiha_INV.png', id = 'background_uchiha'}, [2] = { path = '/images/inventory/Hyuuga_INV.png', id = 'background_hyuuga'}, [3] = { path = '/images/inventory/Aburame_INV.png', id = 'background_aburame'}, [4] = { path = '/images/inventory/Nara_INV.png', id = 'background_nara'}, [5] = { path = '/images/inventory/Inuzuka_INV.png', id = 'background_inuzuka'}, [6] = { path = '/images/inventory/Akimichi_INV.png', id = 'background_akimichi'}, [7] = { path = '/images/inventory/Maito_INV.png', id = 'background_maito'}, [8] = { path = '/images/inventory/Uchiha_INV.png', id = 'background_uchiha'}, } inventoryWindow = nil inventoryPanel = nil inventoryButton = nil function init() connect(LocalPlayer, { onInventoryChange = onInventoryChange }) connect(g_game, { onGameStart = refresh }) g_keyboard.bindKeyDown('Ctrl+I', toggle) inventoryButton = modules.client_topmenu.addRightGameToggleButton('inventoryButton', tr('Inventory') .. ' (Ctrl+I)', '/images/topbuttons/inventory', toggle) inventoryButton:setOn(true) inventoryWindow = g_ui.loadUI('inventory', modules.game_interface.getRightPanel()) inventoryWindow:disableResize() inventoryPanel = inventoryWindow:getChildById('contentsPanel') local itemWidget = inventoryPanel:getChildById('slot9') itemWidget:setVisible(false) local itemWidget = inventoryPanel:getChildById('slot10') itemWidget:setVisible(false) refresh() inventoryWindow:setup() inventoryWindow:close() inventoryButton:setOn(false) end ProtocolGame.registerExtendedOpcode(26, function (protocol, opcode, buffer) local bg = Backgrounds[tonumber(vocation)] or Backgrounds[0] vocation = bg print(vocation) end ) function terminate() disconnect(LocalPlayer, { onInventoryChange = onInventoryChange }) disconnect(g_game, { onGameStart = refresh }) g_keyboard.unbindKeyDown('Ctrl+I') inventoryWindow:destroy() inventoryButton:destroy() end function refresh() local player = g_game.getLocalPlayer() for i=InventorySlotFirst,InventorySlotLast do if g_game.isOnline() then onInventoryChange(player, i, player:getInventoryItem(i)) else onInventoryChange(player, i, nil) end end end function toggle() refresh() if inventoryButton:isOn() then inventoryWindow:close() inventoryButton:setOn(false) else inventoryWindow:open() inventoryButton:setOn(true) end end function onMiniWindowClose() inventoryButton:setOn(false) end -- hooked events function onInventoryChange(player, slot, item, oldItem) local player = g_game.getLocalPlayer() if(player) then local vocation = player:getVocation() if(vocation ~= 0) then inventoryWindow:setImageSource(Backgrounds[vocation].path) end end if slot >= InventorySlotPurse then return end local itemWidget = inventoryPanel:getChildById('slot' .. slot) if item then itemWidget:setStyle('Item') itemWidget:setItem(item) else itemWidget:setStyle(InventorySlotStyles[slot]) itemWidget:setItem(nil) end end tentei usar esse e ñ foi function onExtendedOpcode(cid, opcode, buffer) if opcode == 25 then doSendPlayerExtendedOpcode(cid, 26, getPlayerVocation(cid)) end return true end quero so a oque precisar no servidor, pois ja tentei varios cods e n vai ;x
  7. Caro amigo você leu o post ? que so ea libera se alguem permitisse?? logico que o trabalho não é como falei no incio do topico.... um abraço e rlx seja mais coerente no que faz..
  8. Shinobionline E um serve de naruto que esta muito tempo off, estarei postando suas Spr, pra mim posta elas gostaria de saber se posso posta sem problemas? +resp se gosto !. o arquivo esta ae já
  9. Esse map tem kanto, johto e outland com allen tesos Com all resp
  10. Ta dando esse erro aqui oque poreria ser ? Esse erro da no CLient:
  11. AJEITA A PONTE NA CIDADE DE SAFFRON, LADO ESQUERDO TPW QUANDO SAI DA CIDADE E VAI SUBIR NA PONTO NÃO VAI FACIL AJEITAR NO RME MAPA EDITOR, E AJEITAR AS PORTAS DE CLÃ DE MALEFIC,RAIBOLT E VOLCANIC, NÃO TA DANDO PRA ENTRAR! ;/ POE A ATUALIZAÇÃO FAST TBM... ABRAÇO BOM TRABALHO
  12. beleza, arrumo water gun e a parada do control mid? e quando vai postar a atulização para download? ancioso ake
  13. SERVER TA OTIMO, MAIS TEM UM BUG WATER GUN TA BUGADO AJEITA A I OU ENSINA COMO AJEITAR
  14. da esse erro oq pode ser ? [09/01/2013 03:00:00] [Error - GlobalEvent Interface] [09/01/2013 03:00:00] In a timer event called from: [09/01/2013 03:00:00] data/globalevents/scripts/Golden Arena.lua:onTimer [09/01/2013 03:00:00] Description: [09/01/2013 03:00:00] data/lib/Golden Arena.lua:8: attempt to call global 'doSetMonsterPassive' (a nil value) [09/01/2013 03:00:00] stack traceback: [09/01/2013 03:00:00] data/lib/Golden Arena.lua:8: in function <data/lib/Golden Arena.lua:1> [09/01/2013 03:00:00] > Broadcasted message: "The Golden Arena are started!".
  15. Cara não sei se coloquei errado mais eu falo a cmd aqui e ñ funfa, e ñ esta dando erro no serve.
  16. vc só vai colocar automatico se tiver uma noção de linguagem lua para otserv. tem que pedir em área de scripting ou esperar o dono do tópico editar para vc Tem como vc ajuda ?...
  17. ~~ Global Full ~~ INAUGURADO: 26/07/12 ~~[on]~~ IP: http://alagoasteam.servegame.com Versão: 8.60 Porta: 7171 Servidor online . 24h/dia, 7dias/semana. Mapa Global Full com diversas hunts para aumentar a sua diversão. Use o Client Global 8.60 + IP Changer Download No Site. Diversas raids, invasões, bosses exclusivos. Sistema de tasks Inúmeras quests, Pits of Inferno 100% global, Inquisition Quest, Demon Oak Quest e muitas outras. Tutores. Excelente suporte "in game". Suporte pelo Fórum. Interação com a comunidade pelo Fórum ou Game-chat. Sem corrupção, staff não joga. ~/~ # Rates: Skills: 25x Magic: 10x Loot: 2.0x ~/~ Real Quests or News Features: Pits Of Inferno Quest 100% Demon Helmet 100% Anihilator 100% The Queen of Banshees 100% Inquisition Quest 100% Demon Oak 100% Yalahar Quest 100% Blue Legs Quest 100% Calassa Quest Nightmare and Necromancer Shield Tibia Spells 100% Tibia NPC''s 100% Enchanted System Rusty Remover System 100% Real Task System ZAO Banuta Razachai(north zao) 100% Staff: Tutor [vago!.] Tutor [vago!.] Tutor [vago!.] Tutor [vago!.] Não perca mais tempo: Entre e prepare-se para a guerra. Alagoasteam!
  18. Muito bom cara estou voltando agora as otserv, e to gostando de ver
  19. o Script Fuciona para muda uma outfit por vocations isso eu fiz e deu certo mais quando é pra retorna a outfit normal que estava antes ele ñ volta ;/ ---- voce pissa no tile e ele muda a roupa quando vc sai éra pra sair tb.... local naruto = {lookType = 180, lookHead = 79, lookBody = 91, lookLegs = 91, lookFeet = 91, lookTypeEx = 0, lookAddons = 0} local sasuke = {lookType = 181, lookHead = 86, lookBody = 86, lookLegs = 86, lookFeet = 86, lookTypeEx = 0, lookAddons = 0}[/b] [b]function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if getPlayerVocation(cid) == 1 then elseif(hasCondition(cid, CONDITION_OUTFIT) and getCreatureOutfit(cid).lookType == outfit.naruto) then elseif getPlayerVocation(cid) == 2 then elseif(hasCondition(cid, CONDITION_OUTFIT) and getCreatureOutfit(cid).lookType == outfit.sasuke) then end doSendMagicEffect(getThingPos(cid), 29) -- EFEITO QUE DARA return TRUE end[/b] [b]function onStepOut(cid, item, position, fromPosition) doRemoveConditions(cid, true) return true end
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...