Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 07/14/14 em todas áreas

  1. [TalkAction] Sistema de Jail !

    ernaix69 e 2 outros reagiu a Hadggar por uma resposta no tópico

    3 pontos
    Opa galera blz? hoje vou trazer um sistema para vocês de jail, então vamos la ! Algumas Funções ! Funções: *Exemplo, GM quer prender um player que ta fazeno algu de errado, ai ele fala !jail ,4(no exemplo ele ficara 4 minutos preso), éo nome do fulano, !jail 4,fulano ,!jail 15,fulano ou !jail 30,fulano. * Verificação jogador o tempo de prisão (mostra data unjail) * auto unjail jogadores * Kick todos os jogadores da prisão depois de acidente / restart [teletransporte para jogador templo] Primeiramente vá em \data\talkactions e abra o talkactions.xml é lá adicione: <talkaction words="!jail" script="jailsystem.lua"/> <talkaction words="!unjail" script="jailsystem.lua"/> <talkaction words="/jail" script="jailsystem.lua"/> <talkaction words="/unjail" script="jailsystem.lua"/> Agora vá em \data\talkactions\scripts é crie um arquivo chamado jailsystem.lua é la adicione : -- Default jail time in seconds -- default_jail = 30 -- The permission you need to jail someone -- grouprequired = 4 -- StorageValue that the player gets -- jailedstoragevalue_time = 1338 jailedstoragevalue_bool = 1339 -- Set the position of the jail: -- jailpos = { x = 1037, y = 1004, z =7 } -- Set the position once unjailed: -- unjailpos = { x = 1029, y = 1005, z =7 } -- auto kicker, dont edit jail_list = {} jail_list_work = 0 function checkJailList(param) addEvent(checkJailList, 1000, {}) for targetID,player in ipairs(jail_list) do if isPlayer(player) == TRUE then if getPlayerStorageValue(player, jailedstoragevalue_time) < os.time() then doTeleportThing(player, unjailpos, TRUE) setPlayerStorageValue(player, jailedstoragevalue_time, 0) setPlayerStorageValue(player, jailedstoragevalue_bool, 0) table.remove(jail_list,targetID) doPlayerSendTextMessage(player,MESSAGE_STATUS_CONSOLE_ORANGE,'You were kicked from jail! See you later :)') end else table.remove(jail_list,targetID) end end end function onSay(cid, words, param) if jail_list_work == 0 then jail_list_work = addEvent(checkJailList, 1000, {}) end if param == '' and (words == '!unjail' or words == '/unjail') then if getPlayerStorageValue(cid, jailedstoragevalue_time) > os.time() then doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'You are jailed until ' .. os.date("%H:%M:%S", getPlayerStorageValue(cid, jailedstoragevalue_time)) .. ' (now is: ' .. os.date("%H:%M:%S", os.time()) .. ').') else if getPlayerStorageValue(cid, jailedstoragevalue_bool) == 1 then table.insert(jail_list,cid) doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'You will be kicked from jail in one second.') else doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'You are not jailed.') end end return TRUE end local jail_time = -1 for word in string.gmatch(tostring(param), "(%w+)") do if tostring(tonumber(word)) == word then jail_time = tonumber(word) end end local isplayer = getPlayerByName(param) if isPlayer(isplayer) ~= TRUE then isplayer = getPlayerByName(string.sub(param, string.len(jail_time)+1)) if isPlayer(isplayer) ~= TRUE then isplayer = getPlayerByName(string.sub(param, string.len(jail_time)+2)) if isPlayer(isplayer) ~= TRUE then isplayer = getPlayerByName(string.sub(param, string.len(jail_time)+3)) end end end if jail_time ~= -1 then jail_time = jail_time * 60 else jail_time = default_jail end if words == '!jail' or words == '/jail' then if getPlayerGroupId ( cid ) >= grouprequired then if isPlayer(isplayer) == TRUE then doTeleportThing(isplayer, jailpos, TRUE) setPlayerStorageValue(isplayer, jailedstoragevalue_time, os.time()+jail_time) setPlayerStorageValue(isplayer, jailedstoragevalue_bool, 1) table.insert(jail_list,isplayer) doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'You jailed '.. getCreatureName(isplayer) ..' until ' .. os.date("%H:%M:%S", getPlayerStorageValue(isplayer, jailedstoragevalue_time)) .. ' (now is: ' .. os.date("%H:%M:%S", os.time()) .. ').') doPlayerSendTextMessage ( isplayer, MESSAGE_INFO_DESCR, 'You have been jailed by '.. getCreatureName(cid) ..' until ' .. os.date("%H:%M:%S", getPlayerStorageValue(isplayer, jailedstoragevalue_time)) .. ' (now is: ' .. os.date("%H:%M:%S", os.time()) .. ').') return TRUE else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Player with this name doesn\'t exist or is offline.") return FALSE end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You don't have access to unjail other players.") return FALSE end elseif words == '!unjail' or words == '/unjail' then if getPlayerGroupId ( cid ) >= grouprequired then if isPlayer(isplayer) == TRUE then doTeleportThing(isplayer, unjailpos, TRUE) setPlayerStorageValue(isplayer, jailedstoragevalue_time, 0) setPlayerStorageValue(isplayer, jailedstoragevalue_bool, 0) table.remove(jail_list,targetID) doPlayerSendTextMessage(isplayer,MESSAGE_STATUS_CONSOLE_ORANGE,getCreatureName(cid) .. ' let you go out from jail! See you later :)') doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'You unjailed '.. getCreatureName(isplayer) ..'.') else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Player with this name doesn\'t exist or is offline.") return FALSE end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You don't have access to unjail other players.") return FALSE end end return FALSE end Algumas configurações grouprequired = 4 -- aki séra até o grupo que poderar usar no caso group 4 pra baixo. jailpos = { x = 1037, y = 1004, z =7 } -- aki séra a posição para aonde o player irar quando for preso. unjailpos = { x = 1029, y = 1005, z =7 }- -aki séra para aonde ele for quando ele n tiver mais preso, no caso unjail. Creditos: Gesior.pl EU. Lembre-se eu testei em tibia 8.54 é 8.60 é funcionou perfeitamente !
  2. 3 pontos
    Olá pessoal tudo bem? Eu tava mexendo numas pastas aqui e achei esse script de boost stone muito simples. Ele boosta seu pokemon mas depois de tantos boost ele pode falhar é um pouco parecido com o do otpokemon. data/actions/scripts/boost stone.lua Tag em data/actions/actions.xml Foi testado em PDA sem level! Bom espero que tenham gostado e bom proveito!
  3. [TFS 1.0] Unique Teleportation System

    ViitinG e 2 outros reagiu a fezeRa por uma resposta no tópico

    3 pontos
    Olá Galera, vi esse script em outro fórum achei muito bacana e vim trazer pra cá já que vi que aqui no TK não existe... Se trata de um script que você usando um comando!save, você salva sua posição e depois você usando outro comando você aparece naquela posição salva, caso não estiver com pz. Mas lembre-se: não da pra salvar uma posição que seja em protect zone ou em uma house! Você usa !teleport para escolher para onde quer ir (exemplo): Para salvar sua posição você usa !saveTeleport e o nome do local que irá ficar guardado, desse modo: Apos salvar o local que você queira, usando o comando irá aparecer assim: Após escolher o local, e clicar em Teleport, você irá para a posição salva... Você pode configurar o maximo de pontos que um player pode salvar: maxPortPoints = 10 Você também tem a opção de deletar alguma posição usando: !deleteTeleport Agora vamos ao que interessa : Execute isto a sua database: CREATE TABLE IF NOT EXISTS `player_teleport` ( `id` int(11) NOT NULL AUTO_INCREMENT, `player_id` int(11) NOT NULL, `slot` int(11) NOT NULL, `posx` int(11) NOT NULL DEFAULT '0', `posy` int(11) NOT NULL DEFAULT '0', `posz` int(11) NOT NULL DEFAULT '0', `name` varchar(255) NOT NULL COMMENT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB; Em login.lua Abaixo de return true, adicione: player:registerEvent("Teleport") Em creaturescripts.xml: <event type="modalWindow" name="Teleport" script="teleport.lua"/> Crie um arquivo .lua em creaturescripts com o nome de teleport e coloque dentro: function onModalWindow(cid, modalWindowId, buttonId, choiceId) local player = Player(cid) local playerGuid = player:getGuid() if modalWindowId == 1 then if buttonId == 0x00 then -- Select if not teleport.canTeleportWhileInfight and getCreatureCondition(cid, CONDITION_INFIGHT) == false then local resultId = db.storeQuery("SELECT `posx`, `posy`, `posz`, `name` FROM `player_teleport` WHERE `player_id` = " .. playerGuid .. " AND slot = ".. choiceId) if resultId ~= false then local pos = {x = result.getDataInt(resultId, "posx"), y = result.getDataInt(resultId, "posy"), z = result.getDataInt(resultId, "posz")} local portName = result.getDataString(resultId, "name") player:teleportTo(pos, true) player:sendTextMessage(22, "You have successfully transported yourself to ".. portName ..".") player:sendMagicEffect(CONST_ME_TELEPORT) end result.free(resultId) else player:sendCancelMessage("You cannot teleport while beeing infight.") end elseif buttonId == 0x01 then -- Cancel return false end elseif modalWindowId == 2 then if buttonId == 0x00 then -- Delete local slot = db.storeQuery("SELECT `name` FROM `player_teleport` WHERE `player_id` = " .. playerGuid .." AND slot = ".. choiceId .."") local portName = result.getDataString(slot, "name") db.query("DELETE FROM `player_teleport` WHERE `player_id` = " .. playerGuid .. " AND slot = ".. choiceId .."") player:sendTextMessage(22, "You have successfully removed ".. portName ..".") result.free(slot) elseif buttonId == 0x01 then -- Cancel return false end end return true end Em talkactions.xml: <talkaction words="!teleport" separator=" " script="teleport.lua"/> <!-- Abre a janela das posições--> <talkaction words="!saveTeleport" separator=" " script="teleport.lua"/> <!-- Salva uma posição --> <talkaction words="!deleteTeleport" separator=" " script="teleport.lua"/> <!-- Deleta uma posição --> Crie um arquivo .lua em talkactions com o nome de teleport e coloque dentro: function onSay(cid, words, param) local player = Player(cid) if teleport.premiumOnly and player:getPremiumDays() < 1 and player:getGroup():getId() < 4 then return player:sendCancelMessage("You need a premium account to use this.") end if words == "!saveTeleport" then if not Tile(player:getPosition()):getHouse() and not getTilePzInfo(player:getPosition()) then player:savePortPosition(string.lower(param)) else player:sendCancelMessage("You can't save positions in a house / protection zone") end elseif words == "!teleport" then local modal = ModalWindow(1, "Teleport List", "Choose your destination:") playerGuid = player:getGuid() local ret = false for var = 1, teleport.maxPortPoints do local slot = db.storeQuery("SELECT `name` FROM `player_teleport` WHERE `player_id` = " .. playerGuid .." AND slot = ".. var .."") if slot ~= false then local portName = result.getDataString(slot, "name") modal:addChoice(var, "".. portName .."") result.free(slot) ret = true end end if ret then modal:addButton(0x00, "Teleport") modal:setDefaultEnterButton(0x00) end modal:addButton(0x01, "Cancel") modal:setDefaultEscapeButton(0x01) modal:sendToPlayer(player) elseif words == "!deleteTeleport" then local modal = ModalWindow(2, "Teleport List", "Choose which to delete:") playerGuid = player:getGuid() local ret = false for var = 1, teleport.maxPortPoints do local slot = db.storeQuery("SELECT `name` FROM `player_teleport` WHERE `player_id` = " .. playerGuid .." AND slot = ".. var .."") if slot ~= false then local portName = result.getDataString(slot, "name") modal:addChoice(var, "".. portName .."") result.free(slot) ret = true end end if ret then modal:addButton(0x00, "Delete") modal:setDefaultEnterButton(0x00) end modal:addButton(0x01, "Cancel") modal:setDefaultEscapeButton(0x01) modal:sendToPlayer(player) end return false end Em global.lua teleport = { maxPortPoints = 10, canTeleportWhileInfight = false, premiumOnly = false } function Player.savePortPosition(self, description) local playerGuid = self:getGuid() local pos = self:getPosition() local port = 0 for i = 1, teleport.maxPortPoints do local slot = db.storeQuery("SELECT `name` FROM `player_teleport` WHERE `player_id` = " .. playerGuid .." AND slot = ".. i .."") if slot == false then port = i ret = true break end result.free(slot) end if ret then db.query("INSERT INTO `player_teleport` (`player_id`, `slot`, `posx`, `posy`, `posz`, `name`) VALUES (".. playerGuid ..", ".. port ..", ".. pos.x ..", ".. pos.y ..", ".. pos.z ..", '".. description .."');") self:sendTextMessage(22, "You have successfully saved the transportation point. ".. description ..".") self:sendMagicEffect(CONST_ME_MAGIC_BLUE) else self:sendCancelMessage("You cannot have more then ".. teleport.maxPortPoints .." save points.") end end A configuração fica em global.lua como pode ver: teleport = { maxPortPoints = 10, -- Maximo de locais. canTeleportWhileInfight = false, -- Se o player pode se teletransportar com PZ. premiumOnly = false -- Para premiuns ou não. } Bom é só isso pessoal... Aproveitem e abusem desse sistema, mas lembrando que é apenas para TFS 1.0! Créditos: Evil Hero (pelo script todo) Disturbbed (tradução)
  4. [TalkAction] "!Exiva NPC"

    CoyoteStark e 2 outros reagiu a Hadggar por uma resposta no tópico

    3 pontos
    Olha resolvi trazer essa talkaction para vocês, é um poco diferente, tipo as vezes você es perdido numa Cidade é precisa achar o NPC, é não sabe aonde ele estar? então essa script irar te ajudar ! vamos la ! data/talkactions/scripts/ é crie um arquivo chamado find_npc.lua é la adicione: local config = { cost = 100 } function onSay(cid, words, param, channel) if(param == "" or param == nil) then return false end if doPlayerRemoveMoney(cid, config.cost) == FALSE then doPlayerSendCancel(cid, "You do not have enough money.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return true end local getNpc = getCreatureByName(param) if isNpc(getNpc) == TRUE then local playerPos, npcPos = getCreaturePosition(cid), getCreaturePosition(getNpc) local px, py = 0, 0 local pS = "" local text = "" if(playerPos.x == npcPos.x) and (playerPos.y < npcPos.y) then px = 1 py = npcPos.y - playerPos.y pS = "south" elseif(playerPos.x == npcPos.x) and (playerPos.y > npcPos.y) then px = 1 py = playerPos.y - npcPos.y pS = "north" elseif(playerPos.x < npcPos.x) and (playerPos.y == npcPos.y) then px = npcPos.x - playerPos.x py = 1 pS = "east" elseif(playerPos.x > npcPos.x) and (playerPos.y == npcPos.y) then px = playerPos.x - npcPos.x py = 1 pS = "west" elseif(playerPos.x > npcPos.x) and (playerPos.y > npcPos.y) then px = playerPos.x - npcPos.x py = playerPos.y - npcPos.y pS = "north-west" elseif(playerPos.x > npcPos.x) and (playerPos.y < npcPos.y) then px = playerPos.x - npcPos.x py = npcPos.y - playerPos.y pS = "south-west" elseif(playerPos.x < npcPos.x) and (playerPos.y < npcPos.y) then px = npcPos.x - playerPos.x py = npcPos.y - playerPos.y pS = "south-east" elseif(playerPos.x < npcPos.x) and (playerPos.y > npcPos.y) then px = npcPos.x - playerPos.x ps = playerPos.y - npcPos.y pS = "north-east" end if(px <= 4 and py <= 4) then text = "" .. getCreatureName(getNpc) .. " is standing next you." elseif((px > 4 and px <= 100) and (py > 4 and py <= 100)) or ((px > 4 and px <= 100) and (py <= 4)) or ((px <= 4) and (py > 4 and py <= 100)) then text = "" .. getCreatureName(getNpc) .. " is to the " .. pS .. "." elseif((px > 100 and px <= 274) and (py > 100 and py <= 274)) or ((px > 100 and px <= 274) and (py <= 100)) or ((px <= 100) and (py > 100 and py <= 274)) then text = "" .. getCreatureName(getNpc) .. " is far to the " .. pS .. "." elseif((px > 274 and px <= 280) and (py > 274 and py <= 280)) or ((px > 274 and px <= 280) and (py < 274)) or ((px < 274) and (py > 274 and py <= 280)) then text = "" .. getCreatureName(getNpc) .. " is very far to the " .. pS .. "." elseif(px > 280 and py > 280) or (px > 280 and py < 280) or (px < 280 and py > 280) then text = "" .. getCreatureName(getNpc) .. " is to the " .. pS .. "." end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, text) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN) return false else doPlayerSendCancel(cid, "A npc with that name does not exist.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return true end end data/talkactions/talkactions.xml é la adicione a seguinte tag: <talkaction words="!exiva" filter="quotation" event="script" value="find_npc.lua"/> Lembra-se Testei em Tibia 8.54 é Tibia 8.60. é funcionou perfeitamente ! Creditos: Darkhaos EU Gostou ? REP++
  5. [Creaturescript] A Morte

    ADM Mayk on BaiakME e um outro reagiu a narazaky por uma resposta no tópico

    2 pontos
    Olá pessoal do TK, essas script eu achei bem legal, quando um jogador morre aparece a morte e leva a alma dele. ele é bem simplesinha e achei melhor disponibilizar para o TK Imagem Em creaturescript crie um arquivo chamado DeathSystem.lua e coloque isso dentro: no login.lua cole isso antes do ultimo return true: e no creaturescript.xml coloca isso: agora vamos criar um monstro chamado "a morte" vai na pasta monster e crie um arquivo assim "a morte.xml" com isso dentro: e por fim... cole essa tag no monster.xml: OBS: a morte só irá aparecer caso um jogador morrer por um outro jogador. créditos: Eduardo Carvalho Espero ter ajudado
  6. 2 pontos
    Olá TK TK TK! Venho hoje trazer um sisteminha de troca de sexo, exemplo: o player é male quer virar female ou vice-versa. Muitos não gostam de usar o GP para troca de sexo para que evite player ficar trocando toda hora. Então nesse script a troca de sexo é por dias vip! Vamos ao que interessa: Em talkactions/scripts crie um arquivo com o nome de trocarsexo.lua e adicione o seguinte dentro: function onSay(cid, words, param, channel) local config = {costPremiumDays = 0} if(getPlayerSex(cid) >= 2) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce nao pode mudar para o mesmo sexo.") return TRUE end if(getPlayerPremiumDays(cid) < config.costPremiumDays) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Desculpe, mas voce nao tem dias vip- change sex custa " .. config.costPremiumDays .. " days.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end if(getPlayerPremiumDays(cid) < 65535) then doPlayerAddPremiumDays(cid, -config.costPremiumDays) end if(getPlayerSex(cid) == PLAYERSEX_FEMALE) then doPlayerSetSex(cid, PLAYERSEX_MALE) else doPlayerSetSex(cid, PLAYERSEX_FEMALE) end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce trocou seu sexo e perdeu " .. config.costPremiumDays .. " days of premium time.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_RED) return TRUE end Em data/talkctions/talkactions.xml adicione a seguinte linha: <talkaction words="!trocarsexo" script="trocarsexo.lua" /> FIM! Qualquer dúvida não deixe de perguntar aqui no tópico, não tenha vergonha ninguém nasceu sabendo. Créditos: Doidin Absolute Até a próxima babyes!
  7. [GlobalEvent] Novo Sistema de loteria, TFS 0.4

    Zzjj e um outro reagiu a Hadggar por uma resposta no tópico

    2 pontos
    Opa galera blz? hj venho aki postar novo sistema de loteria TFS 0.4, testei em NTO é Tibia 8.54 é 8.60 é funcionou perfeitamente ! então vamos la, Primeiramente vá em \data\globalevents\scripts é crie um arquivo chamado lottery.lua é la adicione : local configuration = { lottery_hour = "1", - Hours after how many hours should get lottery is explained really ... reward_count = 4, - As items / rewards? so you want 4 random items, then write 4 ... site = 1 - No need to explain: p } onThink function (range, lastExecution) local actors getPlayersOnline = () local list = {} for i, tid in ipairs (players) do list [i] = tid end Local winner list = [math.random (1, # list)] if (config.website == 1) then db.executeQuery ("INSERT INTO` lotto `(` `) VALUES (name '" .. getCreatureName (winner) .. "');") end doBroadcastMessage ('[lottery system] Winner:' .. getCreatureName (winner) .. 'Reward: Surprise Bag'! '- Congratulations (followed by lottery' .... config.lottery_hour .. ')') doPlayerAddItem (winner, 6571, config.reward_count) return TRUE end Algumas configurações Acima: lottery_hour = "1", - Dé quantas é quantas horas séra sorteada. reward_count = 4, - Quanto itens / recompensas? assim que você quer 4 itens aleatórios, em seguida, escrever 4 ... Ok Agora vá em /data/globalevents/ é abra globalevents.xml é la adicione <globalevent name="lottery" interval="4050000" event="script" value="lottery.lua"/> Agora vamos fazer as sorteações a cada player que vencer então va em \data\actions\scripts é la crie um arquivo chamado bagloterry.lua é lá adicione: - Created by GHETTOBIRD - PRESENT_BLUE location = {2160, 2160} - Add more items if you want to just separate them with a item id ... PRESENT_RED location = {2160, 2514} - same as above;) onUse (cid, item fromPosition, itemEx, toPosition) function Local count = 1 if (item.itemid == 6570) then Local randomChance = math.random (1, # PRESENT_BLUE) if (randomChance == 1) then count = 2 elseif (randomChance == 2) then count = 2 end doPlayerAddItem (cid, PRESENT_BLUE [randomChance], count) elseif (== item.itemid 6571), then Local randomChance = math.random (1, # PRESENT_RED) randomChance is> 0 and randomChance <4, then count = 2 end doPlayerAddItem (cid, PRESENT_RED [randomChance], count) end doSendMagicEffect (fromPosition, CONST_ME_GIFT_WRAPS) doRemoveItem (item.uid 1) return true end Algumas Informações Sobre a script acima ! PRESENT_BLUE location = {2160, 2160} - Adicionar mais itens, se você quiser apenas separá-los com um id item ... PRESENT_RED location = {2160, 2514} - mesmo que acima Agora vá em /data/actions é abra actions.xml é la adicione a seguinte tag; <action fromid="6570" toid="6571" event="script" value="bagloterry.lua"/> ésso isso mesmo ! testei aki funcionou 100% espero que gostem !
  8. [Talkaction] Comprar Vida - Baiaks

    juvelino e um outro reagiu a Absolute por uma resposta no tópico

    2 pontos
    Olá linduxos do TK, trago hoje um script que venho modificando, é um script talkaction de comprar vida, ideal para servidores baiaks, exp alta e tudo mais. Com um simples comando seus jogadores poderão comprar vida. O dinheiro é removido ao usar o comando e é adicionado no mesmo momento vida ao char Vamos ao que interessa, em data/talkactions/talkactions.xml adicione a seguinte linha: <talkaction words="!comprarvida" event="script" value="comprarvida.lua"/> Pós adicionar a linha, vá em data/talkactions/scripts e crie um arquivo com o nome de comprarvida.lua e adicione o seguinte: function onSay(cid, words, param) if doPlayerRemoveItem(cid,2160,50) and getCreatureMaxHealth(cid) <= 2107735400 then setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + 200) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MORTAREA) doPlayerPopupFYI(cid, "voce recebeu 200 de life por 500k.") else doPlayerPopupFYI(cid, "Voce nao tem 500k ou ja atingiu o limite máximo de vida.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_FLAMEAREA) end return TRUE end Configuração a seu gosto/servidor: if doPlayerRemoveItem(cid,2160,50) = 2160 é o número do item, no caso aí está por gold (crystal coins) ; ,50 = quantia de crystal coins que irá custar. Caso deseja fazer por um item vip, uma moeda vip algo específico coloque em 2160 o id do item, exemplo: 5985,QUANTIA. no caso 1. setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + 200) = +200 é o tanto de vida que o personagem irá ganhar ao comprar. <= 2107735400 then = Máximo de vida que o player pode ter, no caso este número é o tanto que o client do tibia suporta (todos os servidores) As mensagens são visíveis e poderão ser editadas. doPlayerPopupFYI(cid = as magias irão aparecer em janelas para fechar, caso queira que apareça no Default substitua a parte por: doPlayerSendTextMessage(cid . Creditos: Absolute Subwat Caso haja alguma dúvida/crítica/elogio, comente! Espero ver vários servidores usando Absolute.
  9. [8.54] Pidgeot Island PxG

    slyton e um outro reagiu a Kuuhaku por uma resposta no tópico

    2 pontos
    Bom eu postei essa hunt no tibiaking em 2013 acho que foi minha primeira hunt! Tentei basear na "pidgeot island" que tem na pxg! Não tem muito o que falar kk! Obs: Essas sprites da print são de um outro client! Então ira ter alguma diferença na print e pra quem fazer o download! (compatível com pda) -- Download https://www.mediafire.com/?ujuncn1n66xzor7 Scan https://www.virustotal.com/pt/file/59215c7b48c54f382c2b8233e0792dd740e60050a25c86182900ce0efad62d4c/analysis/1405391675/ Creditos: 98% Eu 2% Murluka (Me ensinou usar as bordas da areia antigamente!)
  10. Nolis Show Off

    WhisperingSorrow e um outro reagiu a Cat por uma resposta no tópico

    2 pontos
  11. Qual xampp?

    narazaky e um outro reagiu a iErrorzz por uma resposta no tópico

    2 pontos
    Não tem problema nenhum usar xamp em windows 8 , se der Algum erro Comente qual foi o erro
  12. Importando Database Do Server

    iErrorzz e um outro reagiu a ViitinG por uma resposta no tópico

    2 pontos
    @iErrorzz é extremamente proibído pedir suporte fora do fórum amigo ! Leia as regras do fórum : http://www.tibiaking.com/forum/topic/1281-regras-gerais/?p=7680#entry7680
  13. 1 ponto
    Fala galerinha linda do TK, vejo muita gente reclamando do battlefield do nosso amigo Vodkart, mas aqui funciona 100%, creio que seja rejeição nos TFS, mas então resolvi trazer a vocês um battlefield que venho customizando a algum tempo, o mesmo possui em alguns servidores poloneses, globalwar e cia. O Evento é um pouco modificado do que o tradicional battlefield, porém acho que ficou mais legal, é de pegar a bandeira do time inimigo, para dar um pouco mais de emoção que tal? rs. Preste atenção nos arquivos e como configurar, estarei explicando tudo passo a passo. Atenção, o comando para abrir o evento é: /battlefield 20 (o 20 é o número de participantes, no caso 10 no time vermelho e 10 no preto, coloque sempre números pares para balancear corretamente o evento) Vamos ao que interessa: Primeiramente, em data/libs crie um arquivo com o nome de battlefield.lua e adicione o seguinte dentro: battlefield = { storage = 201206300801, storage2 = 201206300802, tpPos = {x=32342, y=32213, z=7}, -- aonde aparecerá o teleport pos_team_1 = {x=31621,y=31860,z=7}, -- posição do team 1 (do lado direito) pos_team_2 = {x=31582,y=31860,z=7}, -- posição do team 2 (do lado esquerdo) spectors = {{x=31593,y=31853,z=6},{x=31609,y=31853,z=6},{x=31593,y=31866,z=6},{x=31609,y=31866,z=6}}, -- aonde aparecerá os espectadores (em volta do battlefield) team1Name = "Black Assassins", team2Name = "Red Barbarians", } function doBroadCastBattle(type,msg) for _, cid in pairs(getPlayersOnline()) do if getPlayerStorageValue(cid, battlefield.storage2) ~= -1 then doPlayerSendTextMessage(cid,type,msg) end end return true end function removeTp() local t = getTileItemById(battlefield.tpPos, 1387) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(battlefield.tpPos, CONST_ME_POFF) end end function OpenWallBattle() local x = true local B = { [1] = {1056,{x=31601, y=31858, z=6, stackpos = 1}}, -- posição da barreira [2] = {1056,{x=31601, y=31859, z=6, stackpos = 1}}, -- posição da barreira [3] = {1056,{x=31601, y=31860, z=6, stackpos = 1}}, -- posição da barreira [4] = {1056,{x=31601, y=31861, z=6, stackpos = 1}} -- posição da barreira } for i = 1, #B do if getTileItemById(B[i][2], B[i][1]).uid == 0 then x = false end if x == true then doRemoveItem(getThingfromPos(B[i][2]).uid,1) else doCreateItem(B[i][1], 1, B[i][2]) end end end function getWinnersBattle(storage) local team = storage == 1 and battlefield.team1Name or battlefield.team2Name doBroadcastMessage("Players from team ".. team .." won the event battlefield,they received a Master Surprise Bag!") setGlobalStorageValue(battlefield.storage, -1) removeTp() OpenWallBattle() for _, cid in pairs(getPlayersOnline()) do if getPlayerStorageValue(cid, battlefield.storage2) ~= -1 then doRemoveCondition(cid, CONDITION_OUTFIT) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) if getPlayerStorageValue(cid, battlefield.storage2) == storage then doPlayerAddItem(cid,6571,1) end setPlayerStorageValue(cid, battlefield.storage2, -1) end end end Como configurar este passo; Pós o primeiro passo, crie um arquivo em actions/scripts com o nome de battlefieldAbsolute.lua e adicione o seguinte dentro: function onUse(cid, item, fromPosition, itemEx, toPosition) local team = getPlayerStorageValue(cid, battlefield.storage2) if (item.actionid == 45001 and team == 1) or (item.actionid == 45002 and team == 2) then getWinnersBattle(team) end return true end Em actions.xml, adicione as seguintes linhas: <action actionid="49901" event="script" value="battlefieldAbsolute.lua"/> <action actionid="45002" event="script" value="battlefieldAbsolute.lua"/> Pós o segundo passo, vá até sua pasta creaturescripts/scripts e crie um arquivo com o nome de combat.lua e adicione o seguinte: function onLogin(cid) if getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) == -1 then setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, 0) setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, 0) setGlobalStorageValue(_Lib_Battle_Info.storage_count, 0) end registerCreatureEvent(cid, "BattleTeam") registerCreatureEvent(cid, "BattleDeath") return true end function onCombat(cid, target) if isPlayer(cid) and isPlayer(target) then if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) == 1 and getPlayerStorageValue(target, _Lib_Battle_Info.TeamOne.storage) == 1 then doPlayerSendCancel(cid, "You may not attack your team mates.") return false end if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) == 1 and getPlayerStorageValue(target, _Lib_Battle_Info.TeamTwo.storage) == 1 then doPlayerSendCancel(cid, "You may not attack your team mates.") return false end return true end return true end function onPrepareDeath(cid, deathList, lastHitKiller, mostDamageKiller) if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) >= 1 then setPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage, -1) setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage)-1) doRemoveCondition(cid, CONDITION_OUTFIT) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "[Battle Field] You Are Dead!") if getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) == 0 then getWinnersBattle(_Lib_Battle_Info.TeamTwo.storage) else doBroadCastBattle(23,"[BattleField Information] ".._Lib_Battle_Info.TeamOne.name.." "..getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage).." VS "..getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage).." " .._Lib_Battle_Info.TeamTwo.name) end elseif getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) >= 1 then setPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage, -1) setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage)-1) doRemoveCondition(cid, CONDITION_OUTFIT) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "[Battle Field] You Are Dead!") if getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage) == 0 then getWinnersBattle(_Lib_Battle_Info.TeamOne.storage) else doBroadCastBattle(23,"[BattleField Information] ".._Lib_Battle_Info.TeamOne.name.." "..getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage).." VS "..getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage).." " .._Lib_Battle_Info.TeamTwo.name) end end return true end Ainda na mesma pasta crie outro arquivo com o nome de pdeath.lua com o seguinte conteúdo: (ATENÇÃO QUE NA MESMA PASTA SÃO 2 ARQUIVOS) function onPrepareDeath(cid, corpse, lastHitKiller, mostDamageKiller) if getPlayerStorageValue(cid, config_tvt.green_kills) > 0 then doTeleportThing(cid, config_tvt.green_pos) setGlobalStorageValue(red_kills, getGlobalStorageValue(red_kills) + 1) end if getPlayerStorageValue(cid, config_tvt.red_kills) > 0 then doTeleportThing(cid, config_tvt.red_pos) setGlobalStorageValue(red_kills, getGlobalStorageValue(green_kills) + 1) end doPlayerSendTextMessage(cid, 27, "You dead! by Absolute") return true end Em creaturescripts/creaturescripts.xml adicione as seguintes linhas: <event type="preparedeath" name="BattlefieldP" event="script" value="pdeath.lua"/> <event type="combat" name="BattlefieldC" event="script" value="combat.lua"/> Pós o terceiro passo, em movements/scripts crie um arquivo com o nome de battlefieldAbsolute.lua e adicione o seguinte: local conditionBlack = createConditionObject(CONDITION_OUTFIT) setConditionParam(conditionBlack, CONDITION_PARAM_TICKS, -1) addOutfitCondition(conditionBlack, {lookType = 134, lookHead = 114, lookBody = 114, lookLegs = 114, lookFeet = 114}) local conditionRed = createConditionObject(CONDITION_OUTFIT) setConditionParam(conditionRed, CONDITION_PARAM_TICKS, -1) addOutfitCondition(conditionRed, {lookType = 143, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94}) function onStepIn(cid, item, position, fromPosition) if getPlayerAccess(cid) > 3 then doTeleportThing(cid, battlefield.pos_team_1) return true elseif getGlobalStorageValue(battlefield.storage) == 0 then doTeleportThing(cid, battlefield.spectors[math.random(#battlefield.spectors)]) return true end if getGlobalStorageValue(battlefield.storage) > 0 then if getGlobalStorageValue(battlefield.storage) % 2 == 0 then setPlayerStorageValue(cid, battlefield.storage2, 1) doAddCondition(cid, conditionBlack) doTeleportThing(cid, battlefield.pos_team_1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. battlefield.team1Name .. "!") else setPlayerStorageValue(cid, battlefield.storage2, 2) doAddCondition(cid, conditionRed) doTeleportThing(cid, battlefield.pos_team_2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. battlefield.team2Name .. "!") end setGlobalStorageValue(battlefield.storage, getGlobalStorageValue(battlefield.storage)-1) if getGlobalStorageValue(battlefield.storage) == 0 then doBroadcastMessage("Battlefield will start in 1 minute, please create your strategy!") addEvent(doBroadcastMessage, 60*1000, "BattleField will begin now!") addEvent(OpenWallBattle, 60*1000) else doBroadcastMessage("We are waiting "..getGlobalStorageValue(battlefield.storage).." players to Battlefield starts.") end end return true end Em movements.xml adicione a seguinte linha: <movevent type="StepIn" actionid="45000" event="script" value="battlefieldAbsolute.lua"/> Á pedidos fiz o comando para abrir manualmente, então em talkactions/scripts crie um arquivo com o nome de battlefieldopenAbsolute.lua e coloque: function onSay(cid, words, param) if getGlobalStorageValue(battlefield.storage) ~= -1 then doPlayerSendCancel(cid, "The event is already open.") return true elseif not tonumber(param) or param % 2 ~= 0 then doPlayerSendCancel(cid, "You must choose an even number.") return true end doBroadcastMessage("The event BattleField was opened and We are waiting "..param.." Players! Team divided into "..((param)/2).." VS "..((param)/2)) setGlobalStorageValue(battlefield.storage, tonumber(param)) local tp = doCreateItem(1387, 1, battlefield.tpPos) doItemSetAttribute(tp, "aid", 45000) return true end Em talkactions.xml adicione a linha: <talkaction words="/battlefield" access="3" event="script" value="battlefieldopenAbsolute.lua"/> Screenshots do mapa do evento; Clique em spoiler para ver. Download & Scan do mapa;
  14. [Sprites] Minato NTO Brasil

    Cain Jorge reagiu a Hadggar por uma resposta no tópico

    1 ponto
    Opa galera blz , malz sé publiquei na area errada ,-,. hoje vou trazer para vocês as sprites do minato do nto brasil que então foram mt bem elaboradas , eu tirei do meu server para publicar aki para vocês não sei se fiz certo , mais enfim resolvi traze-las para vocês, talvez estarei postano a do madara que tenho e mts outras, acredito que pocas pessoas conseguem as sprites do NTO Brasil é todos preucuram, então vamos la. Aki a imagem das sprites: Mt Show neh? Downloads: http://www.4shared.com/rar/Q05kDr7nba/Minato_Outfits_Do_NTO_Brasil.html? Scan: https://www.virustotal.com/pt/file/5167e4544d2b6dc2c892b0bb844d4b6d5da220eff587e66fc3464032777a21a1/analysis/1405371523/ Creditos: ScreMMO (EU) Gostou ? REP+
  15. Anel de Sauron

    Jeff Delay reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    Fala galera do TK, criei esse anelzinho pra servers que procuram inovar.. bom, oque ele faz?? Simples, ele torna o usuário invisível. aff, mas já existe o stealth ring que faz isso! Sim mas dessa vez eu digo invisível mesmo, nenhum monstro ou players conseguirá te ver. que lixo, assim qualquer player vai poder ficar invisível e passar no meio dos monstros e players.. vai estragar o server Aí é que vc se engana porque o anel vem uma maldição, quem usar ele vai perdendo 3% de vida por segundo (ajustável) e só vai estragar o server se vc sair distribuindo o anel pra todos os players haha O anel em si possui duas versões, na primeira ele retira 3% de vida por segundo, na segunda ele adiciona uma condição que te deixa perdendo uma quantidade fixa de vida, CONTUDO, na segunda versão aparece uma poça de sangue cada vez que toma o dano então dá pros players te pegarem caso vc coloque o anel e resolva fugir kkkkk Vou chamar aqui de versão 1 e 2 respectivamente. OBS: ISSO É EM MOVEMENTS! 1ª versão (sem sangue mas que tira 3% de vida por segundo): local invisible = createConditionObject(CONDITION_GAMEMASTER, -1, false, GAMEMASTER_INVISIBLE) local outfit = createConditionObject(CONDITION_INVISIBLE, -1, false) local percent = 3 local tempo = 1 -- em segundos function onEquip(cid, item, slot) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "By using this ring you will become fully invisible and lose health over time because of it's curse.") function lifesteal(cid) steal = addEvent(lifesteal, 1000*tempo, cid) if isCreature(cid) then doSendAnimatedText(getCreaturePos(cid), "-"..math.floor((getCreatureMaxHealth(cid) * (percent/100))), 144, cid) doCreatureAddHealth(cid, -math.floor(getCreatureMaxHealth(cid) * (percent/100))) end end lifesteal(cid) doAddCondition(cid, invisible) doAddCondition(cid, outfit) doSendMagicEffect(getCreaturePos(cid), 12) return true end function onDeEquip(cid, item, slot) doTransformItem(item.uid, 2165) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You're no longer receiving the special bonus..") stopEvent(steal) doRemoveCondition(cid, CONDITION_INVISIBLE) doSendMagicEffect(getCreaturePos(cid), 12) doRemoveCondition(cid, CONDITION_GAMEMASTER, GAMEMASTER_INVISIBLE) return true end 2ª versão (a cada 1,5 segundos ele te tira um dano configurado e deixa uma poça de sangue embaixo de vc facilitando que te identifiquem mesmo estando invisivel): local invisible = createConditionObject(CONDITION_GAMEMASTER, -1, false, GAMEMASTER_INVISIBLE) local outfit = createConditionObject(CONDITION_INVISIBLE, -1, false) local condition = createConditionObject(CONDITION_PHYSICAL) setConditionParam(condition, CONDITION_PARAM_DELAYED, TRUE) addDamageCondition(condition, -1, 1500, -500) function onEquip(cid, item, slot) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "By using this ring you will become fully invisible and lose health over time because of it's curse.") doAddCondition(cid, condition) doAddCondition(cid, invisible) doAddCondition(cid, outfit) doSendMagicEffect(getCreaturePos(cid), 12) return true end function onDeEquip(cid, item, slot) doTransformItem(item.uid, 2165) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You're no longer receiving the special bonus..") doRemoveCondition(cid, CONDITION_PHYSICAL) doRemoveCondition(cid, CONDITION_INVISIBLE) doSendMagicEffect(getCreaturePos(cid), 12) doRemoveCondition(cid, CONDITION_GAMEMASTER, GAMEMASTER_INVISIBLE) return true end Agora edite no items.xml o stealth ring pra que ele seja infinito: <item id="2202" article="a" name="stealth ring"> <attribute key="weight" value="100" /> <attribute key="slotType" value="ring" /> <attribute key="transformDeEquipTo" value="2165" /> </item> e em movements.xml adicione essas linhas: <movevent type="Equip" itemid="2202" slot="ring" event="script" value="stealth.lua"/> <movevent type="DeEquip" itemid="2202" slot="ring" event="script" value="stealth.lua"/> Editando: Na primeira versão vc pode alterar as seguintes coisas que estão em colorido: local invisible = createConditionObject(CONDITION_GAMEMASTER, -1, false, GAMEMASTER_INVISIBLE) local outfit = createConditionObject(CONDITION_INVISIBLE, -1, false) local percent = 3 local tempo = 1 -- em segundos em vermelho é o tempo que dura a invisibilidade... -1 é infinito em azul é a porcentagem de vida que perde por tempo em verde é o tempo em que se perde vida.. nesse caso a cada 1 segundo perde 3% Na segunda versão vc pode editar as mesmas coisas do primeiro só que o tempo e o dano pelo tempo estão na condition: local condition = createConditionObject(CONDITION_PHYSICAL) setConditionParam(condition, CONDITION_PARAM_DELAYED, TRUE) addDamageCondition(condition, -1, 1500, -500) em vermelho é o numero de vezes que vai tirar vida. Mais uma vez -1 significa infinito (infinito até remover o anel) em azul é o dano que vc toma a cada tempo (lembre-se de deixar sempre um - na frente se não ele vai adicionar vida) em verde é o tempo em que se perde vida.. nesse caso a cada 1 segundo e meio retira 500 de vida Bom, é isso.. um script simples mas que vai ajudar muita gente pelo fato de usar conditions não tão comuns e de uma forma diferente haha
  16. PDA By: [GOD Anna]

    arcaydecom reagiu a Wend por uma resposta no tópico

    1 ponto
    Eae Galera do Fórum, Estava editando esse Server Para deixar online Mais estava Sem tempo e Achei Melhor Postar para usarem como Base • Menu: ├ Informações; ├ Ediçoes; ├ Erros; ├ Prints; ├ Download; └ Creditos. • Informações Basicas • • Edições / Ajustes • • Erros Do Servidor • • PrintScreen • Novos Lendarios:: Ancient Aero:: Articuno Quest:: NPC de Teleport:: • Download's • Servidor:: http://www.4shared.com/rar/06OG8lB5ba/pda_by_bolz_verso_god_anna.html? OtClient:: http://www.4shared.com/rar/x5LgTQKLce/otclient.html? Scan:: 4Shared Já faz Scan *--* Para nossa Alegria @Atualizado v2 • Menu: ├ Ediçoes; ├ Prints; ├ Download; • Edições / Ajustes • • PrintScreen • Ditto System:: Held System:: • Download's • Servidor 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? Scan 4Shared Já faz Scan • Creditos • Slicer (pelo servidor) Brun123 (por alguns scripts, e por criar o pda) Stylo Maldoso (pelo mapa) Bolz (por editar Maior Parte do Server) Gabrielsales (Pelo Held System) Eu (Por Minhas Edições) Xtibia (por alguns scripts)
  17. [8.60] EekBaiak by [ADM] Eek

    samuel.show reagiu a juliosky por uma resposta no tópico

    1 ponto
    Eae galera do TK, vim pra postar hoje aqui pra vcs meu ot que eu mesmo editei a grande parte dele... meu primeiro post ai de ot meu aki. Tenho ele a um bom tempo ja, mais venho sempre melhorando, agr descidi postar aqui pra vcs, configurem ao seus gostos. Oque coloquei ao sv ? Distro Tfs 0.3.6 City totalmente reformulada 8.60 Nova city donate Removido 8 Vips; Adicionado 2 Vips, 1 free e outra Donate Items, set editados Items donate Novas areas hunts Novas quests Monstros novos Area de eventos Cassino 5 Novos eventos automaticos adicionados; CTF ( Capture de Flag ) Zombie event Battle field Blood Castle Castle 24h GFS ( Guild Frag System ) ​Bom entre outras coisas, mais o mais importante está ai e adicionado por mim ! Record de player 92 em 1 semana. Algumas Screenshots - Templo - Teleports - Itens donate - City Vip donate SCAN - Virus total Download - Mediafire É isso galera do TK, REP+ se gostar e REP- se caso nao gostou, comente,critique oq quiserem
  18. 1 ponto
    • Menu: ├ Informações; ├ Ediçoes; ├ Erros; ├ Prints; ├ Download; └ Creditos. • Informações Basicas • • Edições / Ajustes • • Erros Do Servidor • • PrintScreen • • Download's • Servidor GabrielTxu 3.2 Final version Download Servidor (4Shared): http://www.4shared.com/rar/SMZMibFB/Server_Gabrieltxu_32.html Download Client (4Shared): http://www.4shared.com/rar/3QPtxVX-/Client_GabrielTxu_32__Final_Ve.html • Creditos • Gabrieltxu Kalvin Zeref Shirou AdmAlexandre -> Por Postar No TK OBS : EU NÃO SOU O CRIADOR ENTÃO BUGS NAO É COMIGO
  19. 1 ponto
    Boa noite Galera Passei a noite passando esse sistema de MOD para Arquivos Separados, Achei alguem erros de cid,pid, varieveis e os concertei. Vamos la: Testado 59x TFS : 0.4 rev 3777 Refazendo o Tutorial *.* Na Pasta LIB Caminha: /data/lib/ Crie um arquivo.lua chamado RushLib.lua e Adicione : Nesse Arquivo Estão as Configurações Apenas Leia os Comentarios inseridos nele. --data/lib function doPlayerRemoveLethalConditions(cid) local tmp = {1, 2, 4, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 32768, 65536} for i = 1, #tmp do if(hasCondition(cid, tmp)) then doRemoveCondition(cid, tmp) end end return true end t = { a = 32145, -- nao modifique se nao souber oq esta fazendo g = 32146, -- nao modifique se nao souber oq esta fazendo l = 32147, -- nao modifique se nao souber oq esta fazendo u = 32148, -- nao modifique se nao souber oq esta fazendo h = 32149, -- nao modifique se nao souber oq esta fazendo wv = 32150, -- nao modifique se nao souber oq esta fazendo c = 0, -- nao modifique se nao souber oq esta fazendo q = "Rush Event has been started! Enjoy and have fun!", --mensagem que vai ser exibida quando o evento começar f = 5447, -- nao modifique se nao souber oq esta fazendo f_1 = 5448, -- nao modifique se nao souber oq esta fazendo f_2 = 5449, -- nao modifique se nao souber oq esta fazendo d_1 = {x = 986, y = 1116, z = 6}, -- posição do tempo vermelho ao começar evento d_2 = {x = 986, y = 1116, z = 6}, -- posição do tempo azul ao começar evento x = "Event won't start bacause too few people were willing to participate", --mensagem que vai ser exibida quando o evento não começar w = {x = 986, y = 1114, z = 7}, --posição da sala de espera, onde os players vão ficar antes de começar lvl = 100, --level minimo para participar do evento v = 25, --a quantidade de frags que será necessária para o time ganhar mn = 4, --quantidade minima de players para começar o evento m = 40, --maximo de players dentro do evento o = "Event was completed, RED TEAM has won Rush Event!", --mensagem exibida quando o time vermelho ganhar y = "Event was completed, BLUE TEAM has won Rush Event!", --mensagem exibida quando o time azul ganhar i_1 = 2160, --id do premio (agora é crystal coin = 2160) i_2 = 10, --quantidade do premio (agora esta 10 crystal coins) t = 5, --tempo para começar o evento (agora esta is 5 minutos) r = 1 --tempo em que os resultados da batalha serão mostrados aos players (agora esta 1 minutos) } Em Creaturescripts/ No Arquivo CreatureScripts.xml Adicione as Tags <event type="combat" name="RushCombat" event="script" value="RushCreature.lua"/> <event type="attack" name="RushAttack" event="script" value="RushCreature.lua"/> <event type="preparedeath" name="RushDead" event="script" value="RushCreature.lua"/> <event type="outfit" name="RushOutfit" event="script" value="RushCreature.lua"/> Em CreatureScripts/Scripts Crie um Arquivo.lua e renomeie para RushCreature.lua e Adicione: --creature/scripts/login.lua --registerCreatureEvent(cid, "RushCombat") --registerCreatureEvent(cid, "RushAttack") --registerCreatureEvent(cid, "RushDead") --registerCreatureEvent(cid, "RushOutfit") --creaturescripts/creature.xml --<event type="combat" name="RushCombat" event="script" value="RushCreature.lua"/> --<event type="attack" name="RushAttack" event="script" value="RushCreature.lua"/> --<event type="preparedeath" name="RushDead" event="script" value="RushCreature.lua"/> --<event type="outfit" name="RushOutfit" event="script" value="RushCreature.lua"/> function onCombat(cid, target) if(getGlobalStorageValue(t.a) == 1) then if isPlayer(cid) and isPlayer(target) then if getPlayerStorageValue(cid, t.f) == 1 and getPlayerStorageValue(target, t.f) == 1 then if getPlayerStorageValue(cid, t.f_1) == getPlayerStorageValue(target, t.f_1) then return doPlayerSendCancel(cid, "Sorry, you cannot attack your own team.") and false end end end end return true end function onOutfit(cid, old, current) if(getGlobalStorageValue(t.a) == 1) then if getPlayerGroupId(cid) > 3 then return true end if getPlayerStorageValue(cid, t.h) == 0 then if getPlayerStorageValue(cid, t.f) > -1 then doPlayerSendCancel(cid, "You cannot change your outfit during the event.") return false end end end return true end function onAttack(cid, target) if(getGlobalStorageValue(t.a) == 1) then if isPlayer(cid) and isPlayer(target) then if getPlayerStorageValue(cid, t.f) == 1 and getPlayerStorageValue(target, t.f) == 1 then if getPlayerStorageValue(cid, t.f_1) == getPlayerStorageValue(target, t.f_1) then return doPlayerSendCancel(cid, "Sorry, you cannot attack your own team.") and false end end end end return true end function onPrepareDeath(cid, deathList) if(not isPlayer(cid)) then return true end if getGlobalStorageValue(t.a) == 1 then local strings = {""} local j, position, corpse = 1, 1, 0 for _, pid in ipairs(deathList) do if isCreature(pid) == true then strings[position] = j == 1 and "" or strings[position] .. ", " strings[position] = strings[position] .. getCreatureName(pid) .. "" j = j + 1 else strings[position] = j == 1 and "" or strings[position] .. ", " strings[position] = strings[position] .."a field item" j = j + 1 end end for i, str in ipairs(strings) do if(str:sub(str:len()) ~= ",") then str = str .. "." end desc = "You recognize " desc = desc .. "" .. getCreatureName(cid) .. ". He was killed by " .. str end if(getPlayerSex(cid) == 1) then corpse = doCreateItem(3058, getCreaturePosition(cid)) else corpse = doCreateItem(3065, getCreaturePosition(cid)) end doItemSetAttribute(corpse, "description", desc) if((getPlayerStorageValue(cid, t.g) % 2) == 1) then setGlobalStorageValue(t.u, getGlobalStorageValue(t.u)+1) else setGlobalStorageValue(t.l, getGlobalStorageValue(t.l)+1) end local red = getGlobalStorageValue(t.l) local blue = getGlobalStorageValue(t.u) if blue < t.v or red < t.v then if(isPlayer(cid) == false) then return true end if((getPlayerStorageValue(cid, t.g) % 2) == 1) then doTeleportThing(cid, t.d_1) doSendMagicEffect(getCreaturePosition(cid), 10) doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doPlayerRemoveLethalConditions(cid) if getCreatureSkullType(cid) == SKULL_WHITE then doCreatureSetSkullType(cid, 0) end else doTeleportThing(cid, t.d_2) doSendMagicEffect(getCreaturePosition(cid), 10) doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doPlayerRemoveLethalConditions(cid) if getCreatureSkullType(cid) == SKULL_WHITE then doCreatureSetSkullType(cid, 0) end end end if blue >= t.v then doBroadcastMessage(t.y, MESSAGE_STATUS_WARNING) setGlobalStorageValue(t.h, 1) for _, pid in ipairs(getPlayersOnline()) do if(getPlayerStorageValue(pid, t.f_1) == 1) then doPlayerAddItem(pid, i_1, i_2) end end elseif red >= t.v then doBroadcastMessage(t.o, MESSAGE_STATUS_WARNING) setGlobalStorageValue(t.h, 1) for _, pid in ipairs(getPlayersOnline()) do if(getPlayerStorageValue(pid, t.f_2) == 1) then doPlayerAddItem(pid, i_1, i_2) end end end if getGlobalStorageValue(t.h) == 1 then setGlobalStorageValue(t.a, 0) setGlobalStorageValue(t.h, 0) setGlobalStorageValue(t.wv, -1) setPlayerStorageValue(cid, t.f, -1) setPlayerStorageValue(cid, t.g, 0) setPlayerStorageValue(cid, t.l, 0) setPlayerStorageValue(cid, t.u, 0) setPlayerStorageValue(cid, t.f_1, -1) setPlayerStorageValue(cid, t.f_2, -1) setPlayerStorageValue(cid, t.h, -1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), true) doSendMagicEffect(getCreaturePosition(cid), 10) doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doPlayerRemoveLethalConditions(cid) for _, pid in ipairs(getPlayersOnline()) do if(getPlayerStorageValue(pid, t.f_1) == 1 or getPlayerStorageValue(pid, t.f_2) == 1) then setPlayerStorageValue(pid, t.f, -1) doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid))) doSendMagicEffect(getCreaturePosition(pid), CONST_ME_TELEPORT) setPlayerStorageValue(pid, t.g, 0) setPlayerStorageValue(pid, t.l, 0) setPlayerStorageValue(pid, t.u, 0) setPlayerStorageValue(pid, t.f_1, -1) setPlayerStorageValue(pid, t.f_2, -1) setPlayerStorageValue(pid, t.h, -1) doCreatureAddHealth(pid, getCreatureMaxHealth(pid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true) doCreatureAddMana(pid, getCreatureMaxMana(pid)) doPlayerRemoveLethalConditions(pid) end end return false end return false end return true end Em CreatureScripts/Scripts/ Localize o Arquivo Chamado Login.lua abra-o e Adiciona antes do RETURN TRUE o seguinte : registerCreatureEvent(cid, "RushCombat") registerCreatureEvent(cid, "RushAttack") registerCreatureEvent(cid, "RushDead") registerCreatureEvent(cid, "RushOutfit") Em GlobalEvents/ Abra o Arquivo chamado GlobalEvents.xml e Adicione s Seguinte Tag : <globalevent name="Recognition" interval="1500" event="script" value="RushGlobalRecognition.lua"/> Em CreatureScripts/Scripts/ Crie um arquivo.lua chamado RushGlobalRecognition.lua e Adicione : --globalevents/globalevents.xml --<globalevent name="Recognition" interval="150000" event="script" value="RushGlobalRecognition.lua"/> function onThink(interval, lastExecution, thinkInterval) if(getGlobalStorageValue(t.a) == 1) then for _, pid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(pid, t.f) == 1 then if(getPlayerStorageValue(pid, t.f_1) == 0) then doSendAnimatedText(getCreaturePosition(pid), "RED TEAM", TEXTCOLOR_RED) elseif(getPlayerStorageValue(pid, t.f_1) == 1) then doSendAnimatedText(getCreaturePosition(pid), "BLUE TEAM", TEXTCOLOR_LIGHTBLUE) end end end return true end return true end Em TalkActions/ Abra o TalkActions.xml e Adicione as Seguintes Tags: <talkaction words="!start" event="script" access="5" value="RushTalkOpen.lua"/> <talkaction words="!rush" event="script" value="RushTalkJoin.lua"/> Em TalkActions/Scripts/ Crie um arquivo.lua chamado RushTalkOpen e Adicione : --globalevents/globalevents.xml --<globalevent name="RushStart" time="15:53" event="script" value="RushGlobalOpen.lua"/> function onTime(interval, lastExecution) setGlobalStorageValue(t.g, 1) setGlobalStorageValue(t.u, 0) setGlobalStorageValue(t.l, 0) setGlobalStorageValue(t.a, 1) setGlobalStorageValue(t.c, 0) setGlobalStorageValue(t.wv, 0) doBroadcastMessage("Attention! Immediately register to Rush Event, event will start for ".. t.t .." minutes. All players can join to event typing this command: !rush", MESSAGE_STATUS_WARNING) addEvent(function() doBroadcastMessage("Rush event, started in 2 minutes. If you want to join, type this command: !rush", MESSAGE_STATUS_WARNING) end, (t.t - 2) * 1000 * 60) addEvent(function() doBroadcastMessage("Rush event, started in a minute. If you want to join, type this command: !rush", MESSAGE_STATUS_WARNING) end, (t.t - 1) * 1000 * 60) addEvent(start, t.t * 1000 * 60, cid) end function results() if(getGlobalStorageValue(t.a) == 1) then local red = getGlobalStorageValue(t.l) local blue = getGlobalStorageValue(t.u) doBroadcastMessage("Rush Events, results:\nRed Team scored: ".. red .." frags.\nBlue Team scored: ".. blue .." frags.\nMatch is under way to ".. t.v .." frags.", MESSAGE_STATUS_WARNING) addEvent(results, t.r * 1000 * 60) end end function start(cid) if(getGlobalStorageValue(t.a) == 1 and getGlobalStorageValue(t.c) >= t.mn) then doBroadcastMessage(t.q, MESSAGE_STATUS_WARNING) setGlobalStorageValue(t.wv, 1) addEvent(results, t.r * 1000 * 60) for _, pid in ipairs(getPlayersOnline()) do local myOutfit = getCreatureOutfit(pid) local red = {lookType = myOutfit.lookType, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = myOutfit.lookAddons} local blue = {lookType = myOutfit.lookType, lookHead = 86, lookBody = 86, lookLegs = 86, lookFeet = 86, lookTypeEx = 0, lookAddons = myOutfit.lookAddons} if getPlayerStorageValue(pid, t.f) == 1 then doCreatureAddHealth(pid, getCreatureMaxHealth(pid)) doCreatureAddMana(pid, getCreatureMaxMana(pid)) if((getPlayerStorageValue(pid, t.g) % 2) == 1) then doCreatureChangeOutfit(pid, red) setPlayerStorageValue(pid, t.h, 0) doTeleportThing(pid, t.d_1) setPlayerStorageValue(pid, t.f, 1) setPlayerStorageValue(pid, t.f_1, 0) setPlayerStorageValue(pid, t.f_2, 1) doSendMagicEffect(getCreaturePosition(pid), 10) doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "You are in RED TEAM!\nThis battle will continue up to ".. t.v .." frags!") else doCreatureChangeOutfit(pid, blue) setPlayerStorageValue(pid, t.h, 0) doTeleportThing(pid, t.d_2) setPlayerStorageValue(pid, t.f, 1) setPlayerStorageValue(pid, t.f_1, 1) setPlayerStorageValue(pid, t.f_2, 0) doSendMagicEffect(getCreaturePosition(pid), 10) doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "You are in BLUE TEAM!\nThis battle will continue up to ".. t.v .." frags!") end end end elseif(getGlobalStorageValue(t.c) < t.mn) then doBroadcastMessage(t.x, MESSAGE_STATUS_WARNING) setGlobalStorageValue(t.a, 0) for _, pid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(pid, t.f) == 1 then setPlayerStorageValue(pid, t.f, -1) doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid))) doSendMagicEffect(getCreaturePosition(pid), CONST_ME_TELEPORT) end end end end Em TalkActions/Scripts/ Crie um arquivo.lua chamado RushTalkJoin.lua e adicione : --talkactions/talkactions.xml --<talkaction words="!rush" event="script" value="RushTalkJoin.lua"/> function onSay(cid, words, param, channel) if getGlobalStorageValue(t.a) == 1 and getGlobalStorageValue(t.wv) ~= 1 then if getPlayerLevel(cid) >= t.lvl then if getPlayerStorageValue(cid, t.f) == -1 then if getTilePzInfo(getPlayerPosition(cid)) == true then if getGlobalStorageValue(t.c) < t.m then setGlobalStorageValue(t.c, getGlobalStorageValue(t.c)+1) if getGlobalStorageValue(t.c) == t.m then doPlayerSendCancel(cid, "Event is full [" .. getGlobalStorageValue(t.c) .. " players]!") else doBroadcastMessage("" .. getPlayerName(cid) .. " has joined to Rush Event! Actually we have: " .. getGlobalStorageValue(t.c) .. " players!", 19) end setPlayerStorageValue(cid, t.f, 1) setPlayerStorageValue(cid, t.h, -1) doTeleportThing(cid, t.w) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) setPlayerStorageValue(cid, t.g, getGlobalStorageValue(t.g)) setGlobalStorageValue(t.g, tonumber(getGlobalStorageValue(t.g))+1) else doPlayerSendCancel(cid, "Event is full [" .. getGlobalStorageValue(t.c) .. " players]!") return true end else doPlayerSendCancel(cid, "You must be in protection zone.") return true end else doPlayerSendCancel(cid, "You are already registered in this event.") return true end else doPlayerSendCancel(cid, "Your level is too low to participate in this event.") return true end else doPlayerSendCancel(cid, "At the moment there are no records for this event.") return true end return true end Prontinho sistema Instalado ! Apenas Configure as Variaveis no Arquivo Rushlib.lua, o primeiro do Tutorial. Comando para Abrir o Evento !start Comando para Participar do Evento !rush OBSERVAÇÃO: NUNCA FECHAR O SERVIDOR COM O EVENTO ABERTO, SEMPRE ESPERE O EVENTO FINALIZAR CASO FAZER ISSO BUGARÁ AS STORAGES. Creditos ? Eu Achei em outro Forum e o Mod estava falando que era do ChaitoSoft não tenho Certeza mais Segue. ChaitoSoft ( Provavelmente Roksas) Emerson = 40% - Pois eu Achei Alguns Bugs e Removi e Por Ter Feitos em Varios Arquivos. MAP: https://www.mediafire.com/?cxoqqth3s9heqzx SCAN: https://www.virustotal.com/en/file/279eee03261c0d329177ee5ad54e3a746da366fd5a3da491daeaf3204f6e3315/analysis/1405238306/ Map.rar
  20. Khorem

    webertdiniz reagiu a Krex por uma resposta no tópico

    1 ponto
    Oi, eu sou o Goku! -sqn Introdução Sobre o projeto Objetivos Andamento Minimap atual Agradecimentos / contribuições Itens atuais Fim INTRODUÇÃO "Khorem" é um projeto de um novo jogo com base no OTClient. Ele vem sendo desenvolvido desde 2012 basicamente por mim (Krex) e alguns amigos que contribuem com doações. A princípio, a intenção era de colocar em prática conteúdo visto na faculdade e reunir a paixão por RPG. Agora (cerca de dois anos depois), o projeto continua de pé, e com previsão de ficar online ainda em 2014. SOBRE O PROJETO O projeto tem como inspiração histórias medievais como Crônicas de Gelo e Fogo e Senhor dos Anéis. Serão inicialmente 3 "grandes" cidades, cada uma com suas características próprias: clima, liderança, situação econômica e até mesmo religião. Além disso, dezenas de pequenos vilarejos, pousadas e fazendas poderão ser encontradas espalhadas pelo mapa (normalmente com uma só família vivendo). Cada NPC tem uma família ou história pra contar. Caso você pergunte a ele seu "name" ele vai te responder o nome e sobrenome (caso tenha uma "família"). Isso significa que se você perguntar sobre outro NPC da mesma família, ele poderá te dizer algo: que gosta dele, que não gosta, que não se conhecem muito bem... ou quem sabe que tem uma quest com algo pra você entregar pra ele... Isso também vale pra NPCs que moram na mesma região. Afinal, como podem dois moradores de uma mesma vila não terem o que falar um sobre o outro? Exemplo básico: O jogo vai ter algumas "diferenças" pra outros jogos no mesmo padrão. Os monstros terão um sistema de leveis, e sua força/vida/loots e experiência vão aumentando a cada nível. Um rato no nível 1, por exemplo, tem 10 de vida, dá 5 pontos de experiência e pode dropar até 5 moedas de bronze. No nível 2, ele tem 20 de vida e dá 10 de experiência e pode dropar até 10 moedas de bronze, além de um pedaço de queijo, que no nível 1 não é parte do loot.. No nível 3, ele tem 30 de vida, 15 de experiência, 15 moedas de bronze por aí vai... O sistema de dinheiro também vai ser um pouco diferente: a moeda mais baixa é a de bronze, depois prata e por ultimo de ouro. Em alguns lugares, itens poderão ser utilizados como "moeda alternativa" ou ter um valor mais alto do que o geral: no deserto por exemplo, NPCs podem preferir negociar por comida do que moedas de ouro. Couro é bem visto na área gelada. Independente de sua vocação ou raça, você pode treinar diferentes skills da mesma forma. As armas serão divididas em uma ou duas mãos (no caso de melee, e tanto faz usar um machado ou espada), distance e magic. A intenção é te dar mais liberdade em pvp, que por acaso, será um outro diferencial. O principal diferencial do PvP serão as raças. Inicialmente serão duas: human e orcs. Cada raça vai viver em uma cidade diferente, e o pvp entre elas será "enforced" - ou seja, você poderá matar um jogador da outra raça sem punição. Entretanto, não poderá matar um jogador da mesma raça. As magias de dano NÃO dão dano em pessoas da MESMA raça. As magias de cura NÃO CURAM as pessoas da OUTRA RAÇA. Sobre as quests: Um pouco (sério, tem bem pouca coisa aí!) da história/roleplay: Genesis (segundo os humanos) Genesis (segundo os orcs) Lauthern Ruins (Parte I - Resumo) Lauthern Ruins - (Parte II - Blake 'Fasthands') Mainport (Resumo) Oakhem (Resumo) Sandstone (Resumo) Snowden (Resumo) OBS: As cidades de Sandstone e Snowden ainda não estão sendo feitas. Digamos que estão programadas pra updates futuros OBJETIVOS A intenção é de tornar o Khorem um jogo com todo o aspecto de um livro, onde o jogador pode contribuir para o resultado final. Monstros diferentes e com leveis Jogabilidade diferente - quests com puzzles diferentes e etc Possibilidade de jogadores personalizarem sua classe/raça PVP mais dinâmico, baseado em MOBAs como League of Legends/Dota Variedade de livros, histórias, NPCs e etc ANDAMENTO Completo até então: Mapa base completo. (minimap abaixo) Monstros com level . Sistema de raças. Pequena parte dos NPCs e quests completos. 15+ monstros até o momento. 60+ equipamentos e armas até o momento. Em andamento: Mais NPCs e Quests (eu) Outfits male/female (outra pessoa) Spells (outra pessoa) MINIMAP ATUAL O - Base Orc H - Base Humana Orkhan - Antiga Base Orc (no subsolo); Goblin Mountain; Lauthern Ruins - Atual Base Orc; Vila (pode comprar houses); (o animal aqui pulou o número 5); Uninhabited Fields; Vila (pode comprar houses); Death Hills; Vila (pode comprar houses); Goblins; Clay Deserts; Desert (futuramente a cidade de Sandstone); Oakhem Forest Oakhem City Mainport - Cidade Humana (no andar +1) Draco Mountain AGRADECIMENTOS / CONTRIBUÇÕES Como já disse, até então estou fazendo "tudo" no projeto sozinho, mas de lá pra cá algumas pessoas já me ajudaram diretamente e indiretamente no Khorem, seja com doações de sprites, scripts, feedback... etc. Agradeço muito a cada uma delas: - Insaend - Etchebeur - Darkzerus - Garou - Deragon - LooktovasK - Miller Se eu esqueci de alguém só me lembrar que edito aqui ITENS ATUAIS FIM (ounão)
  21. [OTC] Barra de HP no OTclient

    Mojiin reagiu a Wend por uma resposta no tópico

    1 ponto
    Oiie Trazendo um Tutorial Hoje Bem simples, mais que uns Membros estão precisando Ele vai ensinar Para quando você soltar seu Pokemon o "HP" do Pokemon aparecer Logo abaixo do "HP" do Player.. Tipo assim como na imagem:: Você esta com essa Mesma Dúvida? Segue tutorial ae:: 1* vá no Seu data\lib e abra o some functions.lua Logo no começo do arquivo dê 2 vezes enter para pular 2 Linha, e coloque isso no começo do Arquivo:: 2* vá no data\movements\scripts e abra o arquivo portrait.lua Procure por:: if not getItemAttribute(item.uid, "poke") then e depois do end Adicione isso AQ:: ai procure por if not getItemAttribute(item.uid, "poke") then De novo, e depois do end adicione isso:: 3* vá em data\creaturescripts\scripts e abra o arquivo exp2.0.lua e procure por:: valor = math.abs(valor) --alterado v1.9 if isSummon(attacker) then e Substitua por esse:: 4* vá em data\actions\scripts e abra o revive.lua Procure por:: doCureStatus(cid, "all", true) e substitua por esse:: 5* vá em data\actions\scripts e abra o potion.lua procure por:: if math.floor(turn/10) == turn/10 then doSendMagicEffect(getThingPos(cid), effect) end e substitua por esse;: 6* vá em data\npc\scripts e abra o arquivo heal.lua e adicione isso lá no final do arquivo:: obs: antes dos "end" Autor:: AnnaFeeh Stilo Maldoso
  22. Ai tu vai em criar nova database e nela clica em Importar e pronto.
  23. Tu fez o backup da database antiga?
  24. (Resolvido)Coluna fora do lugar

    srjean reagiu a Absolute por uma resposta no tópico

    1 ponto
    Vai no seu phpmyadmin e execute no sql: INSERT INTO `z_news_tickers` (`date`, `author`, `image_id`, `text`, `hide_ticker`) VALUES (1274867862, 1, 1, 'Absolute é uma Delicia!', 0); @Erro: Isso ocorre porque está sem news ticker.
  25. QUAL MELHOR TFS PARA OT 10.41 ?

    raverzl2 reagiu a TioSlash por uma resposta no tópico

    1 ponto
    Cara para OTServ 10.41 cê tem que usar a versão mais recente... Já parou para pensar que quando sai uma versão nova quer dizer que novas funções foram adicionadas e que novos bugs foram corrigidos? TFS 1.0 sempre Boa sorte no projeto
  26. 1 ponto
    Tente mudar a linha: function onstartup() Para: function onStartup()
  27. [TFS 1.0] Unique Teleportation System

    ViitinG reagiu a fezeRa por uma resposta no tópico

    1 ponto
    A parte de configuração é aqui: teleport = { maxPortPoints = 10, -- Maximo de locais. canTeleportWhileInfight = false, -- Se o player pode se teletransportar com PZ. premiumOnly = false -- Para premiuns ou não. } no caso canTeleportWhileInfight está false então não pode usar o comando com PZ/PK Já para tirar dinheiro voce pode colocar isso doPlayerRemoveMoney(cid, 10000) 100 = 1k 1000 = 10k 10000 = 100k 100000 = 1kk
  28. Stages não funcionam

    slyton reagiu a TioSlash por uma resposta no tópico

    1 ponto
    Está errado ai ainda!
  29. Nolis Show Off

    luanluciano93 reagiu a Cat por uma resposta no tópico

    1 ponto
  30. (Resolvido)[Dúvida] Speed

    Hadggar reagiu a kaiquegabriel por uma resposta no tópico

    1 ponto
    Vê se te ajuda: http://www.tibiaking.com/forum/topic/12786-pedido-addons-bonus/
  31. (Resolvido)Status Website

    fezeRa reagiu a Thiago Rulexz por uma resposta no tópico

    1 ponto
    vá em \xampp\htdocs\layouts\tibiacom\layout.php Procure Por if($config['status']['serverStatus_online'] Corrija Abaixo echo $config['status']['serverStatus_players'].'<br /><font color="Green">Players Online</font>'; else echo '<font color="red"><b>Server<br />OFFLINE</b></font>';
  32. (Resolvido)[RUNA] Destroy Field Bugada

    tirso reagiu a Gabrielk por uma resposta no tópico

    1 ponto
    vai em actions e procura o arquivos destroyfield e troca por esse... function onUse(cid, item, frompos, item2, topos) fieldpos = topos fieldpos.stackpos = 254 fielditem = getThingfromPos(fieldpos) if getPlayerMagLevel(cid) >= 3 then if fielditem.itemid > 0 and fielditem.itemid ~= 1497 and fielditem.itemid ~= 1498 then doSendMagicEffect(topos,2) doRemoveItem(fielditem.uid,1) if item.type > 1 then doChangeTypeItem(item.uid,item.type-1) else doRemoveItem(item.uid,1) end else doSendMagicEffect(frompos,2) return 0 end else doSendMagicEffect(frompos,2) doPlayerSendCancel(cid,"You don't have the required magic level to use that rune.") end return 1 end
  33. Khorem

    Weekend reagiu a Krex por uma resposta no tópico

    1 ponto
    Um novo teaser: Inicialmente, esses serão os looks iniciais dos orcs em suas três classes: Só pra comparar, até então os orcs só tinham esse look: E ai, melhorou?
  34. 1 ponto
    Pra OTs, somente Apache e Mysql... o Filezilla é FTP, meio inutil, no meu caso...
  35. (Resolvido)Como colocar [Donate] no nick

    Guilherme reagiu a Wiz Khalifa por uma resposta no tópico

    1 ponto
    Va em actions/scripts e crie um arquivo chamado vipname.lua Adicione isto : function onUse(cid, item, fromPosition, itemEx, toPosition) if item.uid == 35400 then queststatus = getPlayerStorageValue(cid,35400) if queststatus == -1 or queststatus == 0 then doCreatureSay(cid, "VOcê recebeu seu beneficio por ser vip!", TALKTYPE_ORANGE_1) db.executeQuery("UPDATE `players` SET `name` = '[Donate] "..getCreatureName(cid).."' WHERE `id` = "..getPlayerGUID(cid)..";") doPlayerSendTextMessage(cid,25,"Você será kickado em 5 segundos para mudança de nome.") doPlayerAddAddons(cid, 1) addEvent(doRemoveCreature, 5*1000, cid, true) setPlayerStorageValue(cid, 35400, 1) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_HOLYDAMAGE) else doPlayerSendTextMessage(cid,22,"você ja tem o [Donate] no nome.") end return true end end E adicione a seguinte tag em actions/actions.xml <action actionid="35400" event="script" value="vipname.lua"/> Agora vá em seu MAP Editor e crie uma chest com as action 35400 e Unique 35400 Se não conseguir veja esse tutorial : http://www.tibiaking.com/forum/topic/27092-sistemas-de-vips-com-vip-no-nome/ Te ajudei ? REP+
  36. (Resolvido)[Ajuda] trocar nome dos itens

    Amanditaah reagiu a ViitinG por uma resposta no tópico

    1 ponto
    Aqui :
  37. 1 ponto
    Atualize para esse : Se quiser mudar de outro npc e so muda o : "Vip Free Ring",2036,3000000; Vermelho : Preço Rosa : Nome Azul : ID do Item
  38. (Resolvido)[Ajuda] trocar nome dos itens

    Amanditaah reagiu a ViitinG por uma resposta no tópico

    1 ponto
    Basta trocar o nome e manter o ID,exemplo helmet : (se quiser mudar o nome no game também,é só ir em item.xml e mudar o nome.) Vip Free Helmet,2502,3000000;
  39. 1 ponto
    De uma olhadinha no script do NPC. Lá deve ter, qualquer coisa poste o mesmo aqui para eu da uma olhada.
  40. (Resolvido)[Ajuda] trocar nome dos itens

    Amanditaah reagiu a ViitinG por uma resposta no tópico

    1 ponto
    O tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "OTServ → Suporte OTServ → Suporte de OTServ Geral" Para: "OTServ → Suporte OTServ → Suporte de Scripts"
  41. Data > spells > spells.xml Onde estiver needlearn="0", mude para needlearn="1".
  42. (Resolvido)[RUNA] Destroy Field Bugada

    Leoo Zanin reagiu a fezeRa por uma resposta no tópico

    1 ponto
    Então não esta o problema nas runas em si... deve ser algo em seu actions/mods/sources não da pra saber exatamente =s
  43. Pokemons "falando"

    luanluciano93 reagiu a lucasalsre por uma resposta no tópico

    1 ponto
    Olá pessoal, antes de lerem meu post, saibam que só não posso postar imagens pois estou postando do meu tablet, e se houver algum erro ortográfico, me desculpem. Também não posso arrumar o post muito bem pelo mesmo motivo, e assim que eu tiver acesso ao meu PC, tento arrumar. O que o script faz: ​Faz com que ao a pessoa dizer !x e alguma coisa, o pokemon fala essa tal coisa.  Os passos que você tem que seguir: ​1° passo: Vá na pasta do seu ot/data/talkactions/scripts, adicione um arquivo chamado pokemon falando.lua e coloque isso dentro dele: function onSay(cid,words,param) local pokemons = getCreatureSummons(cid) if #pokemons == 0 then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Faça o seu pokemon sair da pokebola.") end doCreatureSay(getCreatureSummons(cid)[1],param,TALKTYPE_SAY) return true end ​Feche e salve.  2° passo: Volte uma pasta (vá para a pasta de seu ot/data/talkactions), abra o arquivo talkactions.xml em forma de bloco de notas, adicione uma linha e coloque isso nela:  Gente, novamente pessoas desculpas por não estar arrumado, caso alguém possa editar e colocar os scripts dentro de spoiler , agradeço muito.
  44. Khorem

    Kluivert reagiu a Krex por uma resposta no tópico

    1 ponto
    Outras imagens: Família gosmenta :3 Melhor amigo do homem? Nem todos os bardos tem bom gosto. Uma criatura que ainda não tinha aparecido aqui, Goats! E um mini easter-egg...
  45. BOSS INQ + TP ABERTO + PROXIMA SALA

    rodrigodias12 reagiu a ViitinG por uma resposta no tópico

    1 ponto
    Show cara,a um tempo atrás eu tava com problemas na INQ e tava precisando de um script que fizesse isso.Só tenho um dúvida,não é necessário adicionar a tag no monster ? : <script> <event name="inquisitionPortals"/> </script> Obrigado por compartilhar com a galera !
  46. [OLD/OTC] Aumentado o Limite de Sprites

    Procure reagiu a Wend por uma resposta no tópico

    1 ponto
    o "Dat" e "Spr" Vão ficar extendidos *--*
  47. [Pedido] Bloqueando 1/1 do gesior

    Bluetooth reagiu a MaxSilver por uma resposta no tópico

    1 ponto
    Primeiramente vá na database do seu servidor vá em accounts procure pela conta name 1 e senha 1 (provavelmente será a primeira) depois disso vá em page access e modifique para 2 Após transfira os characters "samples" do account manager para outra conta deixe só o proprio Account Manager na acc. Em seguida abra a pasta do seu site depois abra a pasta config e logo depois abra o arquivo config.php Procure por: // ACC MAKER OPTIONS config $config['site']['access_news'] = 2; // access level needed to edit news $config['site']['access_admin_panel'] = 3; // access level needed to open admin panel Modifique Para // ACC MAKER OPTIONS config $config['site']['access_news'] = 3; // access level needed to edit news $config['site']['access_admin_panel'] = 3; // access level needed to open admin panel Feito isso volta a pasta do seu site e abra o arquivo accountmanagement.php logo depois do <?PHP adicione isso: if($group_id_of_acc_logged == 2) $main_content .= '<h1>Account Manager Bloqueado.'; else Pronto após executar todos os passos seu account manager estará bloqueado para acessos no site Ele ficara impossibilitado de mudar o password do account manager pelo site !! Gostou? REP +
  48. [Pedido] Castle 24h

    flpteles reagiu a Qwizer por uma resposta no tópico

    1 ponto
    eu tenho vou postar, eu dei uma editada mais vou ver se tenho o original e te mando por PM
  49. Pokemon Com todos os lendarios e com 5 Geração

    DarkRed reagiu a tatooo por uma resposta no tópico

    1 ponto
    Amigo Esse Servidor Tem 40 Pokemons da 5° geraçao e Varios Lendarios Não São todos mais o Restante é só voce Adicionar no Cliente http://www.mediafire.com/?41tth1y28qw915h Se for Util Da um Rep+ aee
  50. Peça aqui sua hotkey para ElfBot NG

    iderise reagiu a herrmann por uma resposta no tópico

    1 ponto
    Olá Gpedro , bom amigo , não sei se é possivel , mais queria saber se tem como fazer uma Hotkey assim ! Tem certas pessoas que costuma mostrar seus itens encima do DP , e outros " noob's" costuma avacalhar , jogar lixo e tal .. Queria saber se tem como fazer uma hotkey de puxar os lixos para debaixo de você e o iten que você quer , ele pega e puxar para sua backpack ... Como funcionar . Colocar o ID do iten que eu queira pegar para minhabackpack , e o restante que eu não colocar o ID ele jogar para debaixo do meu personagem. Agradeço desde já!!!
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo