Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''script''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Show-Off
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

  1. Fala galerinha do XTibia, vim aqui postar um sistema de Premium Points inGame, que eu achei muito útil, pois eu estava tendo sérios problemas com o Shop System do Modern AAC, ai vai os sistemas. antes de tudo execute esse comando em seu banco de dados. ALTER TABLE `accounts` ADD `premium_points` INT NOT NULL DEFAULT 0; [/code] [font=tahoma,geneva,sans-serif][color=#ff0000]#[/color][color=#000000]S[/color]istemas[/font] [font=tahoma,geneva,sans-serif]vá em data/libs e crie um novo arquivo com o nome [i]048-ppoints.lua[/i][/font] [i] function getAccountPoints(cid) local res = db.getResult('select `premium_points` from accounts where name = \''..getPlayerAccount(cid)..'\'') if(res:getID() == -1) then return false end local ret = res:getDataInt("premium_points") res:free() return tonumber(ret) end function doAccountAddPoints(cid, count) return db.executeQuery("UPDATE `accounts` SET `premium_points` = '".. getAccountPoints(cid) + count .."' WHERE `name` ='"..getPlayerAccount(cid).."'") end function doAccountRemovePoints(cid, count) return db.executeQuery("UPDATE `accounts` SET `premium_points` = '".. getAccountPoints(cid) - count .."' WHERE `name` ='"..getPlayerAccount(cid).."'") end [/i] vá em data/talkactions/talkactions.xml e adicione as seguintes tags. <!-- Premium Points System --> <talkaction log="yes" words="!getpoints;/getpoints" access="6" event="script" value="GetPoints.lua" /> <talkaction log="yes" words="!addpoints;/addpoints" access="6" event="script" value="AddPoints.lua" /> <talkaction log="yes" words="!removepoints;/removepoints" access="6" event="script" value="RemovePoints.lua" /> <talkaction words="!points" event="script" value="SelfGetPoints.lua" /> vá em data/talkactions/scripts e crie um novo arquivo com o seguinte nome AddPoints.lua function onSay(cid, words, param, channel) local split = param:explode(",") local name, count = split[1], tonumber(split[2]) pid = getPlayerByNameWildcard(name) if (not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. param .. " is not currently online.") return TRUE end if not(split[2]) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "The commands requires 2 parameters: character name, amount") end if not(count) then print(count) return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Numeric parameter required.") end doAccountAddPoints(cid, count) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "" .. count .. " premium points were added to " .. getCreatureName(pid) .. "\'s Account.") return true end vá em data/talkactions/script e crie um arquivo com o seguinte nome GetPoints.lua function onSay(cid, words, param, channel) local pid = 0 if(param == '') then pid = getCreatureTarget(cid) if(pid == 0) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return TRUE end else pid = getPlayerByNameWildcard(param) end if (not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. param .. " is not currently online.") return TRUE end if isPlayer(pid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "" .. getCreatureName(pid) .. "\'s Account has " .. getAccountPoints(cid) .. " premium points.") return TRUE end return TRUE end vá em data/talkactions/script e crie um arquivo com o seguinte nome RemovePoints.lua function onSay(cid, words, param, channel) local split = param:explode(",") local name, count = split[1], tonumber(split[2]) local points = getAccountPoints(cid) pid = getPlayerByNameWildcard(name) if (not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. param .. " is not currently online.") return TRUE end if not(split[2]) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "The commands requires 2 parameters: character name, amount") end if not(count) then print(count) return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Numeric parameter required.") end if (points <= 0) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "" .. getCreatureName(pid) .. "\'s Account has 0 premium points.") end doAccountRemovePoints(cid, count) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "" .. count .. " premium points were deleted from " .. getCreatureName(pid) .. "\'s Account.") return true end vá em data/creaturescripts/scripts e crie um novo arquivo com o nome SelfGetPoints.lua function onLogin(cid) if isPlayer(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your Account has " .. getAccountPoints(cid) .. " premium points.") end return TRUE end declare ele no creaturescripts.xml <event type="login" name="GetPoints" event="script" value="getpoints.lua" /> #Scripts aqui está um exemplo de talkaction para mudar o sexo do personagem usando o sistema de points. local config = { costPremiumDays = 2 } function onSay(cid, words, param, channel) if(getPlayerSex(cid) >= 2) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You cannot change your gender.") return end if(getAccountPoints(cid) < config.costPremiumDays) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sorry, not enough Premium Points - changing gender costs " .. config.costPremiumDays .. " Premium Points.") doSendMagicEffect(getThingPosition(cid), CONST_ME_POFF) return end if(getAccountPoints(cid) >= config.costPremiumDays) then doRemovePoints(cid, -config.costPremiumDays) end local c = { {3, 1, false, 6, 1}, {3, 2, false, 6, 2}, {6, 1, false, 3, 1}, {6, 2, false, 3, 2} } for i = 1, #c do if canPlayerWearOutfitId(cid, c[i][1], c[i][2]) then doPlayerRemoveOutfitId(cid, c[i][1], c[i][2]) c[i][3] = true end end doPlayerSetSex(cid, getPlayerSex(cid) == PLAYERSEX_FEMALE and PLAYERSEX_MALE or PLAYERSEX_FEMALE) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have changed your gender and lost " .. config.costPremiumDays .. " days of premium time.") doSendMagicEffect(getThingPosition(cid), CONST_ME_MAGIC_RED) for i = 1, #c do if c[i][3] == true then doPlayerAddOutfitId(cid, c[i][4], c[i][5]) end end return true end Aqui está um npc ( aconselho usar ele para vender seus itens vips ) local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local bootsid = 1455 local bootscost = 15 local ringid = 2145 local ringcost = 5 local bladeid = 12610 local bladecost = 20 local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if(msgcontains(msg, 'vip boots') or msgcontains(msg, 'boots')) then selfSay('Do you want to buy Vip Boots fo '.. bootscost ..' premium points?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if(getAccountPoints(cid) >= bootscost) then if(doAccountRemovePoints(cid, bootscost) == TRUE) then doPlayerAddItem(cid, bootsid) selfSay('Here you are.', cid) else selfSay('Sorry, you don\'t have enough gold.', cid) end else selfSay('Sorry, you don\'t have the item.', cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('Ok then.', cid) elseif(msgcontains(msg, 'blade of corruption') or msgcontains(msg, 'blade')) then selfSay('Do you want to buy blade of corruption for '.. bladecost ..' premium points?', cid) talkState[talkUser] = 2 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then if(getAccountPoints(cid) >= bladecost) then if(doAccountRemovePoints(cid, bladecost) == TRUE) then doPlayerAddItem(cid, bladeid) selfSay('Here you are.', cid) else selfSay('Sorry, you don\'t have enough points!.', cid) end end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('Ok then.', cid) elseif(msgcontains(msg, 'expring') or msgcontains(msg, 'ring')) then selfSay('Do you want to buy exp ring for '.. ringcost ..' premium points?', cid) talkState[talkUser] = 2 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then if(getAccountPoints(cid) >= ringcost) then if(doAccountRemovePoints(cid, ringcost) == TRUE) then doPlayerAddItem(cid, ringid) selfSay('Here you are.', cid) else selfSay('Sorry, you don\'t have enough gold.', cid) end end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('Ok then.', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) npc.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="Donator" script="donator.lua" walkinterval="0" floorchange="0" speed="900"> <health now="150" max="150"/> <look type="131" head="19" body="19" legs="19" feet="19"/> <interaction range="3" idletime="60"> <interact keywords="hi" focus="1"> <keywords>hello</keywords> <response text="Hey there, I sell items only to Donators! To Donate check website or ask Server Staff."> <action name="idle" value="1"/> </response> </interact> <interact keywords="bye" focus="0"> <keywords>farewell</keywords> <response text="Good bye."/> </interact> </interaction> </npc> script made by Vodkart npc por trade say local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid -- ["nome do item"] = {Qntos pontos vao custar, id do item} local t = { ["boots of haste"] = {15, 2195}, -- ["demon helmet"] = {25, 2493}, ["frozen starlight"] = {30, 2361}, ["royal crossbow"] = {20, 8851}, ["solar axe"] = {30, 8925}, ["soft boots"] = {50, 2640}, ["demon armor"] = {100, 2494}, ["firewalker boots"] = {50, 9932}, ["magic plate armor"] = {70, 2472}, ["flame blade"] = {100, 8931} } if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then local str = "" str = str .. "Eu vendo estes items: " for name, pos in pairs(t) do str = str.." {"..name.."} = "..pos[1].." Points/" end str = str .. "." npcHandler:say(str, cid) elseif t[msg] then if (doAccountRemovePoints(cid, t[msg][1]) == TRUE) then doPlayerAddItem(cid,t[msg][2],1) npcHandler:say("Aqui está seu ".. getItemNameById(t[msg][2]) .."!", cid) else npcHandler:say("você não tem "..t[msg][1].." Points", cid) end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) npc por trade local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid local shopWindow = {} local t = { [2195] = {price = 15}, [2493] = {price = 25}, [2361] = {price = 30}, [8851] = {price = 20}, [8925] = {price = 30}, [2640] = {price = 50}, [2494] = {price = 100}, [9932] = {price = 50}, [2472] = {price = 70}, [8931] = {price = 48} } local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks) if t[item] and getAccountPoints(cid) < t[item].price then selfSay("You dont have "..t[item].price.." points", cid) else doPlayerAddItem(cid, item) doAccountRemovePoints(cid, t[item].price) selfSay("Here is you item!", cid) end return true end if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then for var, ret in pairs(t) do table.insert(shopWindow, {id = var, subType = 0, buy = ret.price, sell = 0, name = getItemNameById(var)}) end openShopWindow(cid, shopWindow, onBuy, onSell) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) é só isso! créditos: LucasOlzon Beeki XTibia Vodkart @Edit adicionado scripts by Vodkart.
  2. #Descrição: O evento ocorre com a separação automática de 2 times (Azul x Vermelho), onde um disputa com o outro a sala de prêmios. Para ter acesso à sala, um dos times deve derrotar os 3 geradores presentes antes do outro. #O que possui? - Totalmente automatizado (Script: Abertura, Entrega do premio, Designação dos vencedores e Encerramento) - Página explicativa (PHP: Os players entenderão como funciona o evento) - Talkactions ADM (Script: Comandos que podem ser usados para abrir o castle manualmente) - Tutorial (Arquivo: Explicando passo a passo a instalação) - Arena com 2 salas e waiting room (Mapa) - Entre outras coisas… *OBS: Este evento só funciona em TFS 0.4. DOWNLOAD: CLICK AQUI SCAN: CLICK AQUI Créditos: ChaitoSoft Jhon Thiagobji
  3. Boa tarde a todos, gostaria de saber onde fica os códigos (em quais arquivos) sobre Card System na base PokeMasterX , estou querendo adicionar em base PDA, até logo Obrigado
  4. Limite de player por sala Introdução: Esse script pode ser bem útil para baiak onde as salas tão sempre cheia de player upando ou então para eventos. O script simplesmente checa a quantidade de player que tem dentro da sala, caso não tenha atingido o limite o player pode entrar caso não, manda uma mensagem falando que a sala esta lotada. Exemplo de uso: pode servir até para a anihilator ou demon aok, invitando que um segundo time entre na sala antes que o primeiro acabe. Caso a sala esteja lotada. Caso não. Em data/movement/script, crie LimiteArea.lua e adicione. Em movement/movement.xml Adicione essa tag E depois adicionar o actionid no piso ou teleport pelo mapa editor. O script é fácil de se configurar mas caso tenha algum problema pode posta ai que eu vou ajuda. Caso você adicione mais locais você terá que adicione na tag também.
  5. Informações PDA By Slicer 1.9 editado by senhor, 1,2 geração completa, 3 geração incompleta, Edições adicionado alguns pokemons mega, reformulado cp saffron, adiconado novos spawns de pokes shiny e mega fixo, refeito alguns remakes. Erros pokes mega nao tem corpse, usam a corpse de pokes normais, a um erro no boost.lua mas ja estou resolvendo, mega charizard x e y nao tem pokeball Download server: https://www.dropbox....liopah.rar?dl=0 client: https://www.dropbox....liopah.rar?dl=0
  6. Fala galera do xtibia, Hoje estou trazendo o servidor PDA by: Bolz editado por mim, Passei um bom tempo Editando ele Espero que gostem;; • Menu: ├ Informações; ├ Ediçoes; ├ Erros; ├ Prints; ├ Download; └ Creditos. • Informações Basicas • • Erros do servidor • • PrintScreen • • Download's • Servidor PDA by: Bolz [Editado Por Mim ] http://www.4shared.com/rar/06OG8lB5ba/pda_by_bolz_verso_god_anna.html? OTClient:: http://www.4shared.com/rar/x5LgTQKLce/OTclient.html? @Atualizado 02/04/2014 • Menu: ├ Ediçoes; ├ Prints; ├ Download; • Edições / ajustes • • PrintScreen • • Download's • Servidor PDA by: Bolz [Editado Por Mim v2 ] http://www.4shared.com/rar/_lB31rwxba/PDA_By_Bolz_Verso_GOD_anna_v2.html? OTclient v2:: http://www.4shared.com/rar/aiqka_kQce/OTclient_v2.html? • Creditos • Slicer (pelo servidor) Brun123 (por alguns scripts, e por criar o pda) Stylo Maldoso (pelo mapa) Bolz (por editar Maior Parte do Server) Eu ( por Corrigir Varios bugs e Editar varias coisas no Servidor) Gabrielsales ( pelos Systemas:: "Held item", "Ditto system" ) valakas ( Por ter ajudado a resolve o Bug da Barra de Ataques do OTclient v2) Xtibia (por alguns scripts) Cometem OQ acharam do Server Tou parando com as atualizações por enquanto POr causa das Provas (Tenho que Passa) Mais quando terminar as Aulas posto Nova atualiazação... Obrigado a Todos que Elogiaram minha edição nesse Belo servidor
  7. Bom dia a todos, estou precisando de uma ajuda em uma base de poketibia, essa base esta com esse erro na PokeBar, maioria das pessoas dizem que não vale mecher nela, mas estou querendo crescer ela um pouco.. {Lembrando> Ela tem SourceServer} {PokeBar que eu me lembre esta sendo processada também na SourceServer} Agradeço a todos.. {FOTO DO ERRO}
  8. Credits: MatheusMkalo & Vodkart versão testada: 8.54, 8.6 e 9.1 Não funciona em OT pokemon Auto Loot.xml <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Loot System" version="1.0" author="Vodkart And Mkalo" contact="none.com" enabled="yes"> <config name="Loot_func"><![CDATA[ info = { OnlyPremium = true, AutomaticDeposit = true, BlockMonsters = {}, BlockItemsList = {2123,2515} } function setPlayerStorageTable(cid, storage, tab) local tabstr = "&" for i,x in pairs(tab) do tabstr = tabstr .. i .. "," .. x .. ";" end setPlayerStorageValue(cid, storage, tabstr:sub(1, #tabstr-1)) end function getPlayerStorageTable(cid, storage) local tabstr = getPlayerStorageValue(cid, storage) local tab = {} if type(tabstr) ~= "string" then return {} end if tabstr:sub(1,1) ~= "&" then return {} end local tabstr = tabstr:sub(2, #tabstr) local a = string.explode(tabstr, ";") for i,x in pairs(a) do local b = string.explode(x, ",") tab[tonumber(b[1]) or b[1]] = tonumber(b[2]) or b[2] end return tab end function isInTable(cid, item) for _,i in pairs(getPlayerStorageTable(cid, 27000))do if tonumber(i) == tonumber(item) then return true end end return false end function addItemTable(cid, item) local x = {} for i = 1,#getPlayerStorageTable(cid, 27000) do table.insert(x,getPlayerStorageTable(cid, 27000)[i]) end if x ~= 0 then table.insert(x,tonumber(item)) setPlayerStorageTable(cid, 27000, x) else setPlayerStorageTable(cid, 27000, {item}) end end function removeItemTable(cid, item) local x = {} for i = 1,#getPlayerStorageTable(cid, 27000) do table.insert(x,getPlayerStorageTable(cid, 27000)[i]) end for i,v in ipairs(x) do if tonumber(v) == tonumber(item) then table.remove(x,i) end end return setPlayerStorageTable(cid, 27000, x) end function ShowItemsTabble(cid) local str,n = "-- My Loot List --\n\n",0 for i = 1,#getPlayerStorageTable(cid, 27000) do n = n + 1 str = str..""..n.." - "..getItemNameById(getPlayerStorageTable(cid, 27000)[i]).."\n" end return doShowTextDialog(cid, 2529, str) end function getContainerItems(containeruid) local items = {} local containers = {} if type(getContainerSize(containeruid)) ~= "number" then return false end for slot = 0, getContainerSize(containeruid)-1 do local item = getContainerItem(containeruid, slot) if item.itemid == 0 then break end if isContainer(item.uid) then table.insert(containers, item.uid) end table.insert(items, item) end if #containers > 0 then for i,x in ipairs(getContainerItems(containers[1])) do table.insert(items, x) end table.remove(containers, 1) end return items end function getItemsInContainerById(container, itemid) -- Function By Kydrai local items = {} if isContainer(container) and getContainerSize(container) > 0 then for slot=0, (getContainerSize(container)-1) do local item = getContainerItem(container, slot) if isContainer(item.uid) then local itemsbag = getItemsInContainerById(item.uid, itemid) for i=0, #itemsbag do table.insert(items, itemsbag[i]) end else if itemid == item.itemid then table.insert(items, item.uid) end end end end return items end function doPlayerAddItemStacking(cid, itemid, quant) -- by mkalo local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid) local piles = 0 if #item > 0 then for i,x in pairs(item) do if getThing(x).type < 100 then local it = getThing(x) doTransformItem(it.uid, itemid, it.type+quant) if it.type+quant > 100 then doPlayerAddItem(cid, itemid, it.type+quant-100) end else piles = piles+1 end end else return doPlayerAddItem(cid, itemid, quant) end if piles == #item then doPlayerAddItem(cid, itemid, quant) end end function AutomaticDeposit(cid,item,n) local deposit = item == tonumber(2160) and (n*10000) or tonumber(item) == 2152 and (n*100) or (n*1) return doPlayerDepositMoney(cid, deposit) end function corpseRetireItems(cid, pos) local check = false for i = 0, 255 do pos.stackpos = i tile = getTileThingByPos(pos) if tile.uid > 0 and isCorpse(tile.uid) then check = true break end end if check == true then local items = getContainerItems(tile.uid) for i,x in pairs(items) do if isInArray(getPlayerStorageTable(cid, 27000), tonumber(x.itemid)) then if isItemStackable(x.itemid) then doPlayerAddItemStacking(cid, x.itemid, x.type) if info.AutomaticDeposit == true and isInArray({"2148","2152","2160"},tonumber(x.itemid)) then AutomaticDeposit(cid,x.itemid,x.type) end else doPlayerAddItem(cid, x.itemid) end doRemoveItem(x.uid) end end end end ]]></config> <event type="login" name="LootLogin" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid, "MonsterAttack") return true end]]></event> <event type="death" name="LootEventDeath" event="script"><![CDATA[ domodlib('Loot_func') function onDeath(cid, corpse, deathList) local killer,pos = deathList[1],getCreaturePosition(cid) addEvent(corpseRetireItems,1,killer,pos) return true end]]></event> <event type="combat" name="MonsterAttack" event="script"><![CDATA[ domodlib('Loot_func') if isPlayer(cid) and isMonster(target) and not isInArray(info.BlockMonsters,string.lower(getCreatureName(target))) then registerCreatureEvent(target, "LootEventDeath") end return true]]></event> <talkaction words="!autoloot;/autoloot" event="buffer"><![CDATA[ domodlib('Loot_func') local t = string.explode(string.lower(param), ",") if info.OnlyPremium == true and not isPremium(cid) then doPlayerSendCancel(cid, "you must be a premium account.") return true elseif not t[1] then ShowItemsTabble(cid) return true elseif tonumber(t[1]) or tonumber(t[2]) then doPlayerSendCancel(cid, "enter!autoloot add,name or !autoloot remove,name") return true elseif isInArray({"add","remove"}, tostring(t[1])) then local func,check = tostring(t[1]) == "add" and addItemTable or removeItemTable, tostring(t[1]) == "add" and true or false local item = getItemIdByName(tostring(t[2]), false) if not item then doPlayerSendCancel(cid, "This item does not exist.") return true elseif check == true and isInArray(info.BlockItemsList, item) then doPlayerSendCancel(cid, "You can not add this item in the list!") return true elseif isInTable(cid, item) == check then doPlayerSendCancel(cid, "This Item "..(check == true and "already" or "is not").." in your list.") return true end func(cid, item) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,check == true and "you added the item "..t[2].." in the list" or "you removed the item "..t[2].." from the list") return true end return true]]></talkaction> </mod> Commads: Configurações: OBS: caso no seu servidor precise relogar para atualizar a loot list adicione: func(cid, item) -- dps desta linha doPlayerSave(cid) -- essa função Atenção: Esse tópico foi autorizado pelo Vodkart, cuja eu tenho total direitos de coloca-lo aqui.
  9. Boa noite comunidade XTibia , vim perguntar se alguem pode disponibilizar um script que os pokemons selvagens tenham sexo M/F no nome deles como OTP , se esse script for pago peço que alguem diga nas Respostas , Agradeço e desculpem qualquer coisa
  10. Olá a todos, eu não achei nenhum tutorial nesta página de como colocar potions infinitas, então resolvi elaborar um: Primeiro Método: Na pasta do seu servidor, entrar na pasta "data", depois na pasta "actions" e por último na pasta "liquids" "Pasta do Servidor/data/actions/liquids/" Procure pelo arquivo "potions.lua" e abra ele com algum editor. (bloco de notas, etc..) (se não tiver esse arquivo veja o segundo método) Depois de ter aberto o arquivo procure por essa linha: (dica: Control + F) [8704] = {empty = 7636, splash = 2, health = {50, 100}}, -- small health potion Copie o primeiro ID da linha (no caso 8704) e coloque-o no lugar do ID que se encontra depois de "empty = " (no caso 7636) Ficará assim: [8704] = {empty = 8704, splash = 2, health = {50, 100}}, -- small health potion Depois faça isso com todas as outras linhas de potions. Segundo Método: O início é o mesmo do primeiro método: Na pasta do seu servidor, entrar na pasta "data", depois na pasta "actions" e por último na pasta "liquids" "Pasta do Servidor/data/actions/liquids/" Abra o arquivo de uma potion (exemplo: great_mana), e você terá isso: local MIN = 200 local MAX = 300 local EMPTY_POTION = 7635 local exhaust = createConditionObject(CONDITION_EXHAUST) setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100)) function onUse(cid, item, fromPosition, itemEx, toPosition) if isPlayer(itemEx.uid) == FALSE then return FALSE end if hasCondition(cid, CONDITION_EXHAUST_HEAL) == TRUE then doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED) return TRUE end if((not(isSorcerer(itemEx.uid) or isDruid(itemEx.uid)) or getPlayerLevel(itemEx.uid) < 80) and getPlayerCustomFlagValue(itemEx.uid, PlayerCustomFlag_GamemasterPrivileges) == FALSE) then doCreatureSay(itemEx.uid, "Only sorcerers and druids of level 80 or above may drink this fluid.", TALKTYPE_ORANGE_1) return TRUE end if doPlayerAddMana(itemEx.uid, math.random(MIN, MAX)) == LUA_ERROR then return FALSE end doAddCondition(cid, exhaust) doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) doPlayerAddItem(cid, EMPTY_POTION, 1) return TRUE end Remova essas 2 linhas: doRemoveItem(item.uid, 1) doPlayerAddItem(cid, EMPTY_POTION, 1) (Se você não encontrar essas 2 linhas, veja o terceiro método, MAS NÃO FECHE O SCRIPT DA POTION!) Pronto, depois é só fazer isso com as outras potions! Terceiro Método: Bom, continuando, depois de ter aberto o script da potion, procure por essa parte: (dica: Control + F) doTransformItem(item.uid, Essa mesma linha (completa) da health_potion é assim: doTransformItem(item.uid, 7618) Retire essa linha, pronto, depois é só fazer o mesmo com as outras potions! OBS:. No terceiro método usei como exemplo uma health_potion, então o "... 7618)" não terá nas outras potions! Obrigado, e tomara que resolva o seu problema! :positive:
  11. ImBack

    Global Full 9.6 Ot-Soft

    Bom alguns duvidaram, mais ta ai, flw ai gustavo :* OBS: SE ALGUEM FALAR QUE NÃO É O MESMO DA OT-SOFT É SÓ ABRIR NO RME E DAR UMA OLHADINHA NO TEMPLO E COMPRAR COM A DO SITE. SERVIDOR RODANDO EM MYSQL, NÃO DOU SUPORTE NELE. #Novidades: -Sistema de cooldown das magias 100% funcionando (SEM BUG DO COMBO). -Mount System 100%. -Taming System 97%. -Novos items 9.60. -Market System 100%. -Monstros adicionados. OBS*Este Mapa Possui Gray Island e Quirefang (100% Sem Bugs) #O que possui? -Peso do mapa: 140MB. - War of Emperium (Evento) - Battlefield (Evento) - Raids Automáticas (Script) - Zombie (Evento) - Database completa + Shop Pronto (DB FULL) - Wrath of Emperor com todas as missões (Mapa-quest) - Zao e New Banuta Piece (Mapa) - TFS 0.4 (Distro: Anti-Divulgação, War System, No-otbm check e sem "compite to 64bits") - War System com escudos (Script) - Mais de 30 Ilhas VIPS (Exclusivas OtSoft) - 15+ items VIPS (Script) - 9 cidades VIPS (Mapa) Download servidor completo Download DataBase Scan Pasta Data : https://www.virustot...sis/1349664734/ Scan Dlls + Distro : https://www.virustot...sis/1349665264/ Credito: OTmaker e ot-soft Anne Prevails!
  12. Vmspk

    [9.1] 4Fun Server

    4Fun Server Versão: 9.1 Distro: Crystal Server 1.5 Mapa Base: Vários Foi um edit rápido, 2 dias. Juntei algumas partes de mapas desconhecidos e algo do Azeroth. 2 amigos (ociosos =D) me ajudaram a importar algumas quests e editar o resto. Me disseram que os Ots 9.1 estavam muito ruins, talvez este possa ajudar. 4 Cidades: -> Celestia -> Theos -> Valmun -> Sandrina Mudanças/Conteúdo: Principais Quests: Imagens: Sistema de Guerras pelo Castelo [Honor Castle] Upgrade & Slot System ACC GOD: 222222/password Se acha que ter um OtServ é só baixar, abrir e largar lá, ou ainda editar chars e equipamentos para você mesmo jogar e fazer o que quiser, garanto-lhe que não vai durar 2 dias. Crie eventos, interaja com os jogadores, faça torneios Pvp, marque datas para a Honor Castle, faça updates no mapa, crie monstros, hunts e quests, dê suporte e, o mais importante, mantenha o HELP aberto, sempre. IpChanger 9.1 - Sources - Scan Download 4Fun Server Completo - [MEDIAFIRE] Créditos: Otmind/Kantera, Mistocalana, Mock, Majesty, Bruno0, Crystal Server Team, TFS Team, Coruja e Vmspk. Este tópico recebeu destaque em nosso portal!
  13. Por gentileza. alguém pode fazer uma script com talckaction em que o player fale !attackguild ON/OFF, assim ativa e desativa o ataque em player da guild aliada.
  14. oi gostaria da ajuda de vcs para consertar um erro do meu otnaruto quando eu ligo o server e logo no cliente aparece a list mais não entra. e aparece esse erro. [19/12/2019 02:56:07] Lee Tonkou has logged in. [19/12/2019 02:56:07] [Error - CreatureScript Interface] [19/12/2019 02:56:07] data/creaturescripts/scripts/Exame Chunin.lua:onLogin [19/12/2019 02:56:07] Description: [19/12/2019 02:56:07] data/creaturescripts/scripts/Exame Chunin.lua:87: attempt to index global 'exame' (a nil value) [19/12/2019 02:56:07] stack traceback: [19/12/2019 02:56:07] data/creaturescripts/scripts/Exame Chunin.lua:87: in function <data/creaturescripts/scripts/Exame Chunin.lua:79> [19/12/2019 02:56:07] [Error - CreatureScript Interface] [19/12/2019 02:56:07] data/creaturescripts/scripts/Exame Chunin Fase 2.lua:onLogin [19/12/2019 02:56:07] Description: [19/12/2019 02:56:07] data/creaturescripts/scripts/Exame Chunin Fase 2.lua:37: attempt to index global 'exame' (a nil value) [19/12/2019 02:56:07] stack traceback: [19/12/2019 02:56:07] data/creaturescripts/scripts/Exame Chunin Fase 2.lua:37: in function <data/creaturescripts/scripts/Exame Chunin Fase 2.lua:35> [19/12/2019 02:56:07] [Error - CreatureScript Interface] [19/12/2019 02:56:07] data/creaturescripts/scripts/stamina.lua:onLogin [19/12/2019 02:56:07] Description: [19/12/2019 02:56:07] data/creaturescripts/scripts/stamina.lua:16: attempt to call global 'regen' (a nil value) [19/12/2019 02:56:07] stack traceback: [19/12/2019 02:56:07] data/creaturescripts/scripts/stamina.lua:16: in function <data/creaturescripts/scripts/stamina.lua:1> [19/12/2019 02:56:07] [Error - CreatureScript Interface] [19/12/2019 02:56:07] data/creaturescripts/scripts/login.lua:onLogout [19/12/2019 02:56:07] Description: [19/12/2019 02:56:07] data/creaturescripts/scripts/login.lua:76: attempt to call global 'cleanKagemaneTargetList' (a nil value) [19/12/2019 02:56:07] stack traceback: [19/12/2019 02:56:07] data/creaturescripts/scripts/login.lua:76: in function <data/creaturescripts/scripts/login.lua:75> [19/12/2019 02:56:08] Lee Tonkou has logged out. no server ser alguem souber como consertar comenta.
  15. Boa noite sei que nao vou acertar aonde por esse post intt me ajudem ae minha primeira publicaçao.... Bom to aque procurando um script que faz a seguinte funçao (Quando eu começar a atacar um pokemon'' exemplo, Charizard'' ele tem uma certa probabilidade de se trasnformar em mega e desse mega quero que ele tenha um outra certa probabilidade de dropar um fragmento do mega do charizard alguem pode me ajudar?
  16. Krono

    Spell Creator

    Ola pessoal do XTIBIA. Todos bem? espero que sim. Estou trazendo um programa já bem rodado, mais que talvez seja novidade para alguns. Vejam ai!! SpellCreator Aplicativo que auxilia na criação de spells. Programa Graffico super intuitivo, o que permite aos mais leigos a criar Spells de maneira rapida e pratica. O programa além de criar a o script, ele também lhe fornece a tag XML para instalar a spells. tem mais++ O programa também tem a opção de exportar uma imagem Gif animada de sua spell podendo assim utiliza-la em seu site/blog/forum. Há também suporte para novas sprites. Gostou? baixe agora e começe já desenvolver suas spells e compartilhar conosco suas melhores criações!! Requerimentos .NET Framework 3.5 is required Download Direto Clique aqui para iniciar o download
  17. Olá, gostaria de uma ajuda para resolver esse erro no GoBack.lua do meu otpokemon, quando tento tirar o pokemon pra lutar da esse error
  18. Eai galerinha do xtibia tranquilo ? resolvi postar um baiak com bug nenhum, retirei todos os bugs, o mapa esta igual o original porém sem os bugs valeu! .. Baiak Yurots 8.60 .. Quem Não Gosta do Bom e Antigo Yurots.. Bom Ai Está Mapa Yurots Super Rox Editado Por Baiak Lula... Baiak Yurots V2.2 Oque Mudou ? Mudou a City ta 90% 8.5 Foi Arrumada As Houses. Adicioano Npc Papai Noel no Templo Vende Items 8.54! Novos Items Novos Outifits Novas Hunts E Muito Mais... Baiak Yurots V2.7 Oque Mudou ? Foi Adicionada um Nova Cidade Chamada Baiak City Foi Adidionada Um Teleport no Templo Que Vai para Alumas City's Foi Adicionado Npc de Bless,Pagando Todas as Bless você nao prescisa usar aol... Foi Adicionado Uma Ilha de GM's ... Bug do Account Mananger Arrumado. Novo Executer adicionado,se o ot cai ele salva sozinhoo. E Muito Mas Estara por vim ... Baiak Yurots v1.0.9 Oque Mudou ? Foi Adicionado Sistema Vip.. Foi Adicionado 5 Novos Portais Vip Foi Adicionado Novos Bixos Vip,Warlock Vip,Medusa Vip,Bossing of Baiak.. Foi Adicionado New Quest Baiak Super Foda !! ;D Foi Modificado o Templo Foi Adicionado Mais Treiners ! Entre Alguns Bugs Retirados Baiak Yurots v1.1.0 Oque Mudou ? Mudou o Protocolo de 8.57 para 8.60 Novos Item Novo Outfit Baiak Yurots V1.1.4 Oque Mudou ? Tirei o Pz tool do Templo Fiz um Novo System Vip por Comando Fiz o Novo Addon do Outfit do Wayfarer System Vip Como Funciona ? !buyvip (Para Comprar Vip)(Players) !vipdays (Para Ver Quantos Dias de Vip Você Tem)(Players) /addvip nomedoplayer,dyasvip (GOD) /delvip nomedoplayer,quantos dias de vip você quer tira desse player (GOD) Novos Comandos. !notice /guild -> Permite que você mande msg em vermelho para membros da sua guild !afk on ->Auto mensagem Ausente! !afk off ->Fica Normal Para Compra House:!buyhouse Para Se Desfazer da House:!leave Nova Magia Para Paladin:Exevo Con SanConjuga 15 Assassin Star Atk de Algumas Armas. Avenger 70/50 arcane staff 70/50 Magic Sword 65/45 Stunercutter axe 65/45 Thunder Hammer 65/45 Solar Axe 78/60 Warlord Sword 78/60 Console! Download : Clique Aqui Scan : Clique Aqui Nao postei screen shot porque e o baiak original! Gosto ? Da um Rep ai (:
  19. Fala rapaziada! Estou com problemas no ot, quando eu compro o Bonus Reroll da store, ele consome as coins porém não vem o "card" para o consumo na prey. Alguém poderia me ajudar? Devo criar um item para adicionar ao "items.xml"?
  20. Bom resolvi fazer este tutorial por que eu procurava muito ate que baixei um ot e nele contia a sistema inteiro bom ele e comprido então vamos começar! Vá na pasta do seu ot entre em data/lib copie e cole qualquer arquivo .lua e renomeie ele para gems.lua dentro adicione isto: function onUse(cid, item, fromPosition, itemEx, toPosition) gem = gems.id[getPlayerVocation(cid)] if item.itemid == gem then doUseGem(cid, item, getPlayerVocation(cid)) end return TRUE end ainda na pasta lib copie e cole outro arquivo .lua e renomeie para pivi.lua dentro adicione isto: function doUseGem(cid, item) local voc = getPlayerVocation(cid) local interval = gems.interval[voc] if item.itemid ~= gems.id[voc] or getPlayerStorageValue(cid, gems.storage[voc]) > 0 then return FALSE end setPlayerStorageValue(cid, gems.storage[voc], 1) sendGemEffect(cid, gems.storage[voc], gems.interval[voc]) doRemoveItem(item.uid, 1) return TRUE end function sendGemEffect(cid, storage, interval) local pos = getThingPos(cid) local voc = getPlayerVocation(cid) local color = 1 if voc == 1 then color = gemMsg.colorDruid[math.random(1,#gemMsg.colorElderDruid)] elseif voc == 2 then color = gemMsg.colorSorcerer[math.random(1,#gemMsg.colorMasterSorcerer)] elseif voc == 3 then color = gemMsg.colorPaladin[math.random(1,#gemMsg.colorRoyalPaladin)] elseif voc == 4 then color = gemMsg.colorKnight[math.random(1,#gemMsg.colorEliteKnight)] end doSendAnimatedText(pos, gemMsg.rnd[math.random(1,#gemMsg.rnd)], color) if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) >= 1 then addEvent(sendGemEffect, interval, cid, storage, interval) end end function doRemoveGemEffect(cid) if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) < 1 then return FALSE end setPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)], 0) return TRUE end function doRemoveAllGemEffect(cid) for i = 1, table.maxn(gms.storage) do setPlayerStorageValue(cid, gems.storage[i], 0) end return TRUE function isGemActivated(cid) if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) > 0 then return TRUE end return FALSE end Ainda em lib copie otro arquivo cole e renomeie ele para pivi_const.lua detro adicione isto: gems = { id = {2156, 2155, 2158, 2154, 2156, 2155, 2158, 2154}, storage = {5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008}, interval = {750, 750, 750, 750, 750, 750, 750, 750}, -- Intervalo dos efeitos } gemMsg = { rnd = {"´ . ,", ". ´ ,", "` . ,", ", ` ."}, colorDruid = {180,180}, colorSorcerer = {30,215}, colorPaladin = {251,10}, colorKnight = {204,212}, colorElderDruid = {180,180}, colorMasterSorcerer = {30,215}, colorRoyalPaladin = {251,10}, colorEliteKnight = {204,212} } pronto agora vamos na pasta data/actions/scripte copie e cole qualquer arquivo.lua e renomeie ele para gems.lua adicione isto dentro: local config = { minLevel = 200, -- Level mínimo para adquirir a gema. } function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) >= config.minLevel then gem = gems.id[getPlayerVocation(cid)] if item.itemid == gem then doUseGem(cid, item, getPlayerVocation(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você adquiriu uma gema espíritual.") doSendMagicEffect(getCreaturePosition(cid), 65) end else doPlayerSendCancel(cid, "Voc\ê precisa ser level "..config.minLevel.." para adquirir a gema esp\íritual.") end return TRUE end feito isto va no seu actions.xml e adicione os seguintes tags : <action itemid="2156" script="gems.lua" /> <action itemid="2155" script="gems.lua" /> <action itemid="2154" script="gems.lua" /> <action itemid="2158" script="gems.lua" /> feche e salve. Agora vamos na pasta data\creaturescripts\scripts copie e cole qualquer arquivo lua renomeie para logingema.lua dentro adicione isto: function onLogin(cid) setPlayerStorageValue(cid, 47112120, 2) local voc = getPlayerVocation(cid) if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) > 0 then sendGemEffect(cid, gems.storage[voc], gems.interval[voc]) end return TRUE end feito isto abra o creaturescripts.xml e adicione este tag: <event value="logingema.lua" event="script" name="gema" type="login"/> agora na ultima parte va na pasta data/talkactions/scripts copie e cole qualquer arquivo lua e renomeie para gemasorc.lua dentro adicione isto: function onSay(cid, words, param) if(words == "!buygemasorcerer") then if(doPlayerRemoveMoney(cid, 1000000) == TRUE) then doPlayerAddItem(cid,2156,1) doSendMagicEffect(getCreaturePosition(cid),tmp, CONST_ME_MAGIC_RED) else doPlayerSendCancel(cid, "Você não tem o dinheiro suficiente.") return TRUE end elseif(words == "!sellaol") then if doPlayerRemoveItem(cid,2173,1) == TRUE then doPlayerAddMoney(cid, 10000) doSendMagicEffect(getCreaturePosition(cid),tmp, CONST_ME_MAGIC_RED) else doPlayerSendCancel(cid, "Você não tem o Amulet of Loss(AoL)") end end return TRUE end ainda em scripts copie e cole otro arquivo.lua e renomeie para gemapally.lua dentro adicione isto: function onSay(cid, words, param) if(words == "!buygemapally") then if(doPlayerRemoveMoney(cid, 1000000) == TRUE) then doPlayerAddItem(cid,2158,1) doSendMagicEffect(getCreaturePosition(cid),tmp, CONST_ME_MAGIC_RED) else doPlayerSendCancel(cid, "Você não tem o dinheiro suficiente.") return TRUE end elseif(words == "!sellaol") then if doPlayerRemoveItem(cid,2173,1) == TRUE then doPlayerAddMoney(cid, 10000) doSendMagicEffect(getCreaturePosition(cid),tmp, CONST_ME_MAGIC_RED) else doPlayerSendCancel(cid, "Você não tem o Amulet of Loss(AoL)") end end return TRUE end copie e cole qualquer arquivo.lua e renomeie para gemakina.lua dentro adicione isto: function onSay(cid, words, param) if(words == "!buygemakina") then if(doPlayerRemoveMoney(cid, 1000000) == TRUE) then doPlayerAddItem(cid,2154,1) doSendMagicEffect(getCreaturePosition(cid),tmp, CONST_ME_MAGIC_RED) else doPlayerSendCancel(cid, "Você não tem o dinheiro suficiente.") return TRUE end elseif(words == "!sellaol") then if doPlayerRemoveItem(cid,2173,1) == TRUE then doPlayerAddMoney(cid, 10000) doSendMagicEffect(getCreaturePosition(cid),tmp, CONST_ME_MAGIC_RED) else doPlayerSendCancel(cid, "Você não tem o Amulet of Loss(AoL)") end end return TRUE end ainda em scripts copie e cole qualquer arquivo.lua e renomeie para gemadruid.lua dentro adicione isto: function onSay(cid, words, param) if(words == "!buygemadruid") then if(doPlayerRemoveMoney(cid, 1000000) == TRUE) then doPlayerAddItem(cid,2155,1) doSendMagicEffect(getCreaturePosition(cid),tmp, CONST_ME_MAGIC_RED) else doPlayerSendCancel(cid, "Você não tem o dinheiro suficiente.") return TRUE end elseif(words == "!sellaol") then if doPlayerRemoveItem(cid,2173,1) == TRUE then doPlayerAddMoney(cid, 10000) doSendMagicEffect(getCreaturePosition(cid),tmp, CONST_ME_MAGIC_RED) else doPlayerSendCancel(cid, "Você não tem o Amulet of Loss(AoL)") end end return TRUE end agora para finalizar va no se talkactions.xml e adicione estas tags: <talkaction words="!buygemasorcerer" script="gemasorc.lua"/> <talkaction words="!buygemapally" script="gemapally.lua"/> <talkaction words="!buygemadruid" script="gemadruid.lua"/> <talkaction words="!buygemakina" script="gemakina.lua"/> e pronto e so vc ter 1kk ser level 200 e falar !buygema e sua vocaçao e voce ganhara uma gema ai e so clicar com o botao direito e vc vai começar a brilhar é isso pessoal caso ajudei rep+ se tiverem duvidas postem aqui que eu ajudo Editado e pronto para usar vlw por reportarem ^^
  21. Ola galera vo coloka um script ake mto bom, player fala !deposit VALOR ou !depositeall e deposita todo seu dinheiro, pra tira !withdraw VALOR Ou !whitdrawall ppra tira tudo versao testada 8.60,8.62 e 9.10 Vamos la vai em \data\talkactions\scripts e dentro de script cria outra pasta Bank ficando assim \data\talkactions\scripts\Bank Coloka os seguinte script la dentro 1°-- balance.lua function onSay(cid, words, param) local config = { bankSystemEnabled = getBooleanFromString(getConfigInfo('bankSystem')), playerIsFighting = hasCondition(cid, CONDITION_INFIGHT) } if config.bankSystemEnabled == TRUE then if config.playerIsFighting == FALSE then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your account balance is " .. getPlayerBalance(cid) .. ".") return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Bank can not be used in fight.") return TRUE end else return FALSE end end 2°--deposit.lua function onSay(cid, words, param) local config = { bankSystemEnabled = getBooleanFromString(getConfigInfo('bankSystem')), playerIsFighting = hasCondition(cid, CONDITION_INFIGHT) } if config.bankSystemEnabled == TRUE then if config.playerIsFighting == FALSE then if(param == "") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Command requires param.") return TRUE end local m = tonumber(param) if(not m) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Command requires numeric param.") return TRUE end m = math.abs(m) if m <= getPlayerMoney(cid) then doPlayerDepositMoney(cid, m) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Alright, you have added the amount of " .. m .. " gold to your balance. You can withdraw your money anytime you want to. Your account balance is " .. getPlayerBalance(cid) .. ".") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You do not have enough money.") end return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Bank can not be used in fight.") return TRUE end else return FALSE end end 3°--deposit_all.lua function onSay(cid, words, param) local config = { bankSystemEnabled = getBooleanFromString(getConfigInfo('bankSystem')), playerIsFighting = hasCondition(cid, CONDITION_INFIGHT) } if config.bankSystemEnabled == TRUE then if config.playerIsFighting == FALSE then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Alright, you have added the amount of " .. getPlayerMoney(cid) .. " gold to your balance. You can withdraw your money anytime you want to.") doPlayerDepositAllMoney(cid) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Bank can not be used in fight.") return TRUE end else return FALSE end end 4°--transfer.lua function onSay(cid, words, param) local config = { bankSystemEnabled = getBooleanFromString(getConfigInfo('bankSystem')), playerIsFighting = hasCondition(cid, CONDITION_INFIGHT) } if config.bankSystemEnabled == TRUE then if config.playerIsFighting == TRUE then if(param == "") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Command requires param.") return TRUE end local t = string.explode(param, ",") local m = tonumber(t[2]) local tmp = string.explode(t[2], ",") if(not m) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "No money specified.") return TRUE end m = math.abs(m) if m <= getPlayerBalance(cid) then if playerExists(t[1]) then doPlayerTransferMoneyTo(cid, t[1], m) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have transferred " .. m .. " gold to " .. t[1] .. ". Your account balance is " .. getPlayerBalance(cid) .. " gold.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Player " .. t[1] .. " does not exist.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "There is not enough gold on your account. Your account balance is " .. getPlayerBalance(cid) .. ". Please tell the amount of gold coins you would like to transfer.") end return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Bank can not be used in fight.") return TRUE end else return FALSE end end 5°--transfer_all.lua function onSay(cid, words, param) local config = { bankSystemEnabled = getBooleanFromString(getConfigInfo('bankSystem')), playerIsFighting = hasCondition(cid, CONDITION_INFIGHT) } if config.bankSystemEnabled == TRUE then if(param == "") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Command requires param.") return TRUE end local t = string.explode(param, ",") if playerExists(param) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have transferred " .. getPlayerBalance(cid) .. " gold to " .. param .. ".") doPlayerTransferAllMoneyTo(cid, param) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Player " .. param .. " does not exist.") return TRUE end else return FALSE end end 6°--withdraw.lua function onSay(cid, words, param) local config = { bankSystemEnabled = getBooleanFromString(getConfigInfo('bankSystem')), playerIsFighting = hasCondition(cid, CONDITION_INFIGHT) } if config.bankSystemEnabled == TRUE then if config.playerIsFighting == FALSE then local m = tonumber(param) if(param == "") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Command requires param.") return TRUE end if(not m) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Command requires numeric param.") return TRUE end m = math.abs(m) if m <= getPlayerBalance(cid) then doPlayerWithdrawMoney(cid, m) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Here you are, " .. m .. " gold. Your account balance is " .. getPlayerBalance(cid) .. ".") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "There is not enough gold on your account.") end return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Bank can not be used in fight.") return TRUE end else return FALSE end end 7° e ultimo---withdraw_all.lua function onSay(cid, words, param) local config = { bankSystemEnabled = getBooleanFromString(getConfigInfo('bankSystem')), playerIsFighting = hasCondition(cid, CONDITION_INFIGHT) } if config.bankSystemEnabled == TRUE then if config.playerIsFighting == FALSE then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Here you are, " .. getPlayerBalance(cid) .. " gold.") doPlayerWithdrawAllMoney(cid) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Bank can not be used in fight.") return TRUE end else return FALSE end end Feito Tudo isso va em data\talkactions\talkactions.xml e coloque as seguintes linhas . <talkaction words="!balance" event="script" value="Bank/balance.lua" /> <talkaction words="!deposit" event="script" value="Bank/deposit.lua" /> <talkaction words="!withdraw" event="script" value="Bank/withdraw.lua" /> <talkaction words="!depositall" event="script" value="Bank/deposit_all.lua" /> <talkaction words="!withdrawall" event="script" value="Bank/withdraw_all.lua" /> SE PREFERIREM FAZE DOWNLOAD AKI ESTA [download]http://www.4shared.com/file/1VBeZD2r/Bank.html?[/download] Lenbrando que o script n é meu so tenho fais tempo n sei o nome do dono pode ser q ta na tag dentro dos script PESO DESCULPA PELO TOPICO DESORGANIZADO, N SO MTO DE FASE POSTAGEMS 40% (by: ???) 60% (by:eu por ter trasido ao xtibia) Se tiver algum outro post igual ou parecido me desculpe...Se gostaram +REP
  22. Galerinha eu estava vasculhando o xtibia ai achei o tópico do Luck0ake que tinha o luaScriptMaker 1.0 programa criado por ele com base em .lua para criar scripts do mesmo, então Baixei achei legal mais só que ele esta todo em inglês resolvi da umas modificadinhas e traduzi ele para português e então estou lançando a nova versão do luaScriptMaker, versão 1.1 \/DOWNLOAD ABAIXO\/ luaScriptMaker 1.1.rar Galerinha estou com o projeto de aprimorar o programa para obter mais funções e assim poder obter um script mais complexo! Poste suas opiniões para o programa Créditos: LuckOake> Por ter feito a primeira versão do programa, base que eu usei para fazer a nova
  23. GLOBAL FAST ATTACK - by BIA Bom hoje trago a todos vocês do Xtibia um global 8.6, sim um global porém ele não é um global como vários outros, nesse global ele é especificamente para fast attack, a experiencia independente de ser baixa ou alta serve para o servidor perfeitamente (recomendo a experiencia que já está no servidor), sabendo configurar direitinho não irá desequilibrar as vocações ou dar problemas. É o único até onde sei servidor com Trainers exclusivos com script, feito por min mesma com ajuda de um script de anihi não causando lag no servidor, quests exclusivas com muito rpg e diversão feitas por min mesma, entre elas quest do doppler amulet, elven legs e dragon scale legs, leinad ring, leinad spider amulet e leinad bat amulet. O servidor contém mais de 40 hunts vip novas, hunts novas nas city vip e uns tps, contém somente 3 cidades vip, addon bonus, bom não tem muito o que dizer. como sabem fotos valem mais do que mil palavras rsrs e entrar para ver vale mais do que mil fotos u-u Informações : Addon Bonus 3 City Vip Items Donates ou Vips como quiserem fazer 40 Novas Hunts Vips 20 Novas Hunts nas City Vip War System Quests Novas Sem Bugs TFS 0.4 Já Compilado e a Source Não Compilada. - "Explicarei mais sobre elas no final" Muito mais Print Screen: Templo de Thais Depot Depot Parte 2 Treiners Aparecem Treiners Desaparecem Checagem de Bless e Points no Login do Personagem Barco Vip e Itens donates Segundo andar depot Arena Hunting Arena Hunting - Alavanca para sair Hunts Vips Novas Hunts Vips Novas 2 Quest elven legs e dragon scale legs Quest Anihilator 1k Quest Doppler Amulet Quest Doppler Amulet 2 Quest S/b Amulet Distros: Se querem uma Distro com Ant-Div, No-otbm check, spoof system e War system compilem a source, se não utilizem a que vem no servidor que está só com war system. "pq só com war system? Não sei compilar em windows " Spoof System (Não Recomendo usar): Cuidado ao usar o spoof system: não me responsabilizo por banimento no otserver list ou quais quer problemas relacionados ao mesmo. (Lembrando que a distro que está compilada junto ao servidor não tem no-otbm check, anti divulgação ou spoof system) Se você compilou a distro que postei para ativar o spoof system adicione esta tag em seu config.lua: spoofPlayers = 0 Onde 0 é a quantidade para spoofar. Se você compilou a distro que postei para ativar o anti-div system, adcione esta tag em seu config.lua: advertisingBlock = ".net;servegame;no-ip,.net;.com;.com.br;.org;.pl;.net;.biz" Atenção se não for compilar troque o items.otb do servidor pelo do download items.otb abaixo se não irá dar erro.! Scans: Servidor: Source: Website Gesior: Items.otb: Downloads: Servidor: SPEEDYSHARE: 4SHARED: Source: SPEEDYSHARE: 4SHARED: Website Gesior: SPEEDYSHARE: 4SHARED: Items.otb: 4SHARED: Database: 4SHARED: Postarei assim que reseta-la por que a que tenho aqui não está resetada! (03/05/14) Creditos: Bianca Souza: 65% Xtibia (Em geral o forum, as pessoas, topicos e tudo que me ajudou a aprender um pouco de tudo): 35% Mãe: -100% Por ficar me chamando rsrs u-u Mãe: +100% Por me botar no mundo rsrs u-u Obs: Se alguem quer que eu especifique os creditos por alguma coisa me avise se não entra junto nos creditos do Xtibia '--' Obs: O servidor e livre para editarem e fazerem o que quiserem. Comentem! por favor, como é meu primeiro tópico quero saber o/no que precisa melhorar
  24. Base usada: PDA by Slicer, v1.9 Para quem não conhece o sistema de mega evoluções, recomendo acessar este link. A diferença é que a pedra (mega stone) não ocupa o espaço de um Held Item tier Y (visto que não são todos os servidores que possuem Held Itens). Instalação do sistema (atenção nos detalhes) data/lib: cooldown bar.lua: Troque o código da função getNewMoveTable(table, n) por este: function getNewMoveTable(table, n) if table == nil then return false end local moves = {table.move1, table.move2, table.move3, table.move4, table.move5, table.move6, table.move7, table.move8, table.move9, table.move10, table.move11, table.move12} local returnValue = moves if n then returnValue = moves[n] end return returnValueend No código da função doUpdateMoves(cid), troque o segundo: table.insert(ret, "n/n,") por: local mEvolveif not getCreatureName(summon):find("Mega") and getItemAttribute(getPlayerSlotItem(cid, 8).uid, "megaStone") then if not isInArray(ret, "Mega Evolution,") then table.insert(ret, "Mega Evolution,") mEvolve = true endendif not mEvolve then table.insert(ret, "n/n,")end Depois, em pokemon moves.lua: Troque: min = getSpecialAttack(cid) * table.f * 0.1 --alterado v1.6 por: min = getSpecialAttack(cid) * (table and table.f or 0) * 0.1 --alterado v1.6 Código da spell: elseif spell == "Mega Evolution" then local effect = xxx --Efeito de mega evolução. if isSummon(cid) then local pid = getCreatureMaster(cid) if isPlayer(pid) then local ball = getPlayerSlotItem(pid, 8).uid if ball > 0 then local attr = getItemAttribute(ball, "megaStone") if attr and megaEvolutions[attr] then local oldPosition, oldLookdir, health_percent_lost = getThingPos(cid), getCreatureLookDir(cid), (getCreatureMaxHealth(cid) - getCreatureHealth(cid)) * 100 / getCreatureMaxHealth(cid) doItemSetAttribute(ball, "poke", megaEvolutions[attr][2]) doSendMagicEffect(getThingPos(cid), effect) doRemoveCreature(cid) doSummonMonster(pid, megaEvolutions[attr][2]) local newPoke = getCreatureSummons(pid)[1] doTeleportThing(newPoke, oldPosition, false) doCreatureSetLookDir(newPoke, oldLookdir) adjustStatus(newPoke, ball, true, false) doCreatureAddHealth(newPoke, -(health_percent_lost * getCreatureMaxHealth(newPoke) / 100)) if useKpdoDlls then addEvent(doUpdateMoves, 5, pid) end end end end end Depois, em configuration.lua: megaEvolutions = { --[itemid] = {"poke_name", "mega_evolution"}, [11638] = {"Charizard", "Mega Charizard X"}, [11639] = {"Charizard", "Mega Charizard Y"},} Agora, em data/actions/scripts, código da mega stone: function onUse(cid, item) local mEvolution, ball = megaEvolutions[item.itemid], getPlayerSlotItem(cid, 8).uid if not mEvolution then return doPlayerSendCancel(cid, "Sorry, this isn't a mega stone.") elseif ball < 1 then return doPlayerSendCancel(cid, "Put a pokeball in the pokeball slot.") elseif #getCreatureSummons(cid) > 0 then return doPlayerSendCancel(cid, "Return your pokemon.") elseif getItemAttribute(ball, "poke") ~= mEvolution[1] then return doPlayerSendCancel(cid, "Put a pokeball with a(n) "..mEvolution[1].." in the pokeball slot.") elseif getItemAttribute(ball, "megaStone") then return doPlayerSendCancel(cid, "Your pokemon is already holding a mega stone.") end doItemSetAttribute(ball, "megaStone", item.itemid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Now your "..getItemAttribute(ball, "poke").." is holding a(n) "..getItemNameById(item.itemid)..".") doRemoveItem(item.uid) return trueend Depois, em goback.lua: Abaixo de: if not pokes[pokemon] then return trueend coloque: if pokemon:find("Mega") then local normalPoke = megaEvolutions[getItemAttribute(item.uid, "megaStone")][1] if normalPoke then doItemSetAttribute(item.uid, "poke", normalPoke) pokemon = normalPoke end end Depois, em data/creaturescripts/scripts, look.lua: Abaixo de: local boost = getItemAttribute(thing.uid, "boost") or 0 coloque: local extraInfo, megaStone = "", getItemAttribute(thing.uid, "megaStone")if megaStone then extraInfo = getItemNameById(megaStone) if pokename:find("Mega") then pokename = megaEvolutions[megaStone][1] endend Depois, acima do primeiro: doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) coloque: if extraInfo ~= "" then table.insert(str, "\nIt's holding a(n) "..extraInfo..".")end Já em data/talkactions/scripts, move1.lua: Abaixo de: function doAlertReady(cid, id, movename, n, cd) coloque: if movename == "Mega Evolution" then return true end Troque: if not move then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end por: if not move then local isMega = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "megaStone") if not isMega or name:find("Mega") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end local moveTable, index = getNewMoveTable(movestable[name]), 0 for i = 1, 12 do if not moveTable[i] then index = i break end end if tonumber(it) ~= index then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end local needCds = true --Coloque false se o pokémon puder mega evoluir mesmo com spells em cooldown. if needCds then for i = 1, 12 do if getCD(getPlayerSlotItem(cid, 8).uid, "move"..i) > 0 then return doPlayerSendCancel(cid, "To mega evolve, all the spells of your pokemon need to be ready.") end end end move = {name = "Mega Evolution", level = 0, cd = 0, dist = 1, target = 0} end E troque: doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", TALKTYPE_SAY) por: local spellMessage = msgs[math.random(#msgs)]..""..move.name.."!"if move.name == "Mega Evolution" then spellMessage = "Mega Evolve!"enddoCreatureSay(cid, getPokeName(mypoke)..", "..spellMessage, TALKTYPE_SAY) Se não quiser que o "Mega" apareça no nome do pokémon, vá em data/lib, level system.lua: Acima de: if getItemAttribute(item, "nick") then nick = getItemAttribute(item, "nick")end coloque: if nick:find("Mega") then nick = nick:match("Mega (.*)") if not pokes[nick] then nick = nick:explode(" ")[1] end end Caso queiram que cada mega evolução tenha um clã específico: Em move1.lua, acima de: move = {name = "Mega Evolution", level = 0, cd = 0, dist = 1, target = 0, f = 0, t = "?"} coloque: local megaEvoClans = { --[mega_stone_id] = "clan_name", [91912] = "Volcanic", [91913] = "Seavell", --etc,}if megaEvoClans[isMega] then if getPlayerClanName(cid) ~= megaEvoClans[isMega] then return doPlayerSendCancel(cid, "You can't mega evolve this pokemon.") endend Finalizando o tópico após uma pequena reestruturação na indexação, gostaria de levantar algo que acredito ser bem claro: o sistema é cheio de detalhes, muitas vezes minuciosos. Um simples erro e bugs aparecem por toda parte. Se você encontrou algum, pelo menos uma das duas seguintes condições acontecem: Base DIFERENTE da usada. Peço desculpas, mas não pretendo adaptar o sistema para todas as bases diferentes que aparecerem. Se a base for a mesma, você com certeza errou em algum ponto da instalação. O sistema foi testado inúmeras vezes, não apenas por mim, e seu funcionamento foi seguidamente comprovado. Façam bom uso, invocadores.
×
×
  • Criar Novo...