Ir para conteúdo

9k22

Membro
  • Registro em

  • Última visita

Tudo que 9k22 postou

  1. 9k22 postou uma resposta no tópico em Suporte & Pedidos
    Adicionei CHANGELOG... Projeto está avançando devagar pois sou preguiçoso EKOPKEOPWKEOPW POXa, to trabalhando em um Global FULL sozinho do ZERo ai tb queria oq? kk Nem existem houses registradas no mapa. Eu que adicionei manualmente (ainda faltam algumas cidades). (isso é bom pois elimina bugs futuros de colocar enfeite em parede e o mesmo sumir) kk
  2. 9k22 postou uma resposta no tópico em Formação de Equipe
    Boa sorte Vankk, sou teu fã... Se não fosse meu projeto... Está sugando minha alma/vida kkkkkk
  3. 9k22 postou uma resposta no tópico em Suporte Tibia OTServer
    Em config.lua procure por emoteSpells = true troque para emoteSpells = false
  4. Tenta: https://technet.microsoft.com/pt-br/library/cc753731(v=ws.11).aspx
  5. É linux? Se sim, precisa conceder permissão 777 nas pastas das imagens e dos logotipos das guilds...
  6. Cara, eu achava impossível desbloquear as portas do meu moldem da NET porém pesquisando no youtube várias vezes consegui fazer tal feito. Da uma procurada no youtube cara. E outra, te ajudar nisso por fórum é complicado, precisa compartilhar tela ou algo do tipo para facilitar.
  7. 9k22 postou uma resposta no tópico em Ouvidoria
    Meu amigo, dpois me falam q esse CODE ou qualquer coisa relacionada ao tipo não é bugado... Tentei 10000x tentar tirar esssa poha da imagem e não consegui, já to puto e ainda vou tenta ajudar os mlk e não consigo editar os paranauê em paz... QUando cliquei em citar simplismente bugou, não queria deletar o link do próprio fórum... Cansei tb ¬¬ OBS: já tinha informado esse erro antes, sem falar que o CODE é horrível pq as vezes você posta o código ele pula 1x todas as linhas e também buga a parte de identação Uu
  8. Da uma olhada neste tópico. Ele ensina como fazer: Lembrando que para não ocorrer bugs ou lags o máximo que você pode por é 200 (o mais seguro) Ai você modifica if (SpeedAttack < 200) { return 200;
  9. Se o fast attack chegar a atkspeed="500" ou inferior, apenas nas sources amigo.
  10. 9k22 postou uma resposta no tópico em Suporte Tibia OTServer
    Eu tenho o script aqui, versão OtX (tfs 0.3.7). Ele funciona bem, no entanto, a parte de dar os itens para os jogadores não está funcionando. Gostaria também de fazer o jogador que escolher a vocação 'knight', o npc perguntar se ele quer usar sword, axe ou club. Eu também gostaria de fazer o npc verificar a cap e se você não tiver, fazer o npc falar que o player não possui cap e encerrar a conversa. Obrigado!! Este é o erro do executável: Script in PasteBin: http://pastebin.com/qNfv4uRP local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local Topic = {} local vocation = {} local town = {} local destination = {} local TOWN_ISLANDOFDESTINY = 6 local islandOfDestinyEnabled = false local config = { vocations = { ["sorcerer"] = { text = "A SORCERER! ARE YOU SURE? THIS DECISION IS IRREVERSIBLE!", vocationId = 1, -- wand of vortex {{2190, 1}}, -- health potion and mana potion {{7618, 2}, {7620, 2}} }, ["druid"] = { text = "A DRUID! ARE YOU SURE? THIS DECISION IS IRREVERSIBLE!", vocationId = 2, -- snakebite rod {{2182, 1}}, -- health potion and mana potion {{7618, 2}, {7620, 2}} }, ["paladin"] = { text = "A PALADIN! ARE YOU SURE? THIS DECISION IS IRREVERSIBLE!", vocationId = 3, --equipment dwrven shield, 5 spear, ranger's cloak, ranger legs scarf, legion helmet {{2525, 1}, {2389, 5}, {2660, 1}, {8923, 1}, {2643, 1}, {2661, 1}, {2480, 1}}, --container rope, shovel, health potion, bow, 50 arrow {{2120, 1}, {2554, 1}, {7618, 1}, {18559, 1}, {2456, 1}, {2544, 50}} }, ["knight"] = { text = "A KNIGHT! ARE YOU SURE? THIS DECISION IS IRREVERSIBLE!", vocationId = 4, --equipment dwarven shield, steel axe, brass armor, brass helmet, brass legs scarf {{2525, 1}, {8601, 1}, {2465, 1}, {2460, 1}, {2478, 1}, {2643, 1}, {2661, 1}}, --container jagged sword, daramian mace, rope, shovel, health potion {{8602, 1}, {2439, 1}, {2120, 1}, {18559, 1}, {2554, 1}, {7618, 1}} } } } 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 onPlayerEndTrade(cid) npcHandler:onPlayerEndTrade(cid) end function onPlayerCloseChannel(cid) npcHandler:onPlayerCloseChannel(cid) end --///////////////////////////START SCRIPT(oracle))///////////////////////////-- function greetCallback(cid) if(getPlayerLevel(cid) < 8) then npcHandler:say("CHILD! COME BACK WHEN YOU HAVE GROWN UP!", cid) return false elseif(getPlayerLevel(cid) >= 9) then npcHandler:say(getCreatureName(cid) .. ", I CAN'T LET YOU LEAVE - YOU ARE TOO STRONG ALREADY! YOU CAN ONLY LEAVE WITH LEVEL 9 OR LOWER.", cid) return false else local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid Topic[talkUser], vocation[talkUser], town[talkUser], destination[talkUser] = 0, 0, 0, 0 return true end end function creatureSayCallback(cid, type, msg) local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if(not npcHandler:isFocused(cid)) then return false elseif msgcontains(msg, "yes") and Topic[talkUser] == 0 then npcHandler:say(islandOfDestinyEnabled and "I WILL BRING YOU TO THE ISLAND OF DESTINY AND YOU WILL BE UNABLE TO RETURN HERE! ARE YOU SURE?" or "IN WHICH TOWN DO YOU WANT TO LIVE: {CARLIN}, {AB'DENDRIEL}, {KAZORDOON}, {VENORE} OR {THAIS}?", cid) Topic[talkUser] = islandOfDestinyEnabled and 4 or 1 elseif Topic[talkUser] == 0 then npcHandler:unGreet(cid) elseif msgcontains(msg, "carlin") and Topic[talkUser] == 1 then npcHandler:say("IN CARLIN! AND WHAT PROFESSION HAVE YOU CHOSEN: {KNIGHT}, {PALADIN}, {SORCERER}, OR {DRUID}?", cid) Topic[talkUser] = 2 town[talkUser] = 4 destination[talkUser] = {x=32360, y=31782, z=7} elseif msgcontains(msg, "ab'dendriel") and Topic[talkUser] == 1 then npcHandler:say("IN AB'DENDRIEL! AND WHAT PROFESSION HAVE YOU CHOSEN: {KNIGHT}, {PALADIN}, {SORCERER}, OR {DRUID}?", cid) Topic[talkUser] = 2 town[talkUser] = 5 destination[talkUser] = {x=32732, y=31634, z=7} elseif msgcontains(msg, "kazordoon") and Topic[talkUser] == 1 then npcHandler:say("IN KAZORDOON! AND WHAT PROFESSION HAVE YOU CHOSEN: {KNIGHT}, {PALADIN}, {SORCERER}, OR {DRUID}?", cid) Topic[talkUser] = 2 town[talkUser] = 3 destination[talkUser] = {x=32649, y=31925, z=11} elseif msgcontains(msg, "thais") and Topic[talkUser] == 1 then npcHandler:say("IN THAIS! AND WHAT PROFESSION HAVE YOU CHOSEN: {KNIGHT}, {PALADIN}, {SORCERER}, OR {DRUID}?", cid) Topic[talkUser] = 2 town[talkUser] = 2 destination[talkUser] = {x=32369, y=32241, z=7} elseif msgcontains(msg, "venore") and Topic[talkUser] == 1 then npcHandler:say("IN VENORE! AND WHAT PROFESSION HAVE YOU CHOSEN: {KNIGHT}, {PALADIN}, {SORCERER}, OR {DRUID}?", cid) Topic[talkUser] = 2 town[talkUser] = 1 destination[talkUser] = {x=32957, y=32076, z=7} elseif Topic[talkUser] == 1 then npcHandler:say("{CARLIN}, {AB'DENDRIEL}, {KAZORDOON}, {VENORE} OR {THAIS}?", cid) Topic[talkUser] = 1 elseif msgcontains(msg, "sorcerer") and Topic[talkUser] == 2 then npcHandler:say("A SORCERER! ARE YOU SURE? THIS DECISION IS IRREVERSIBLE!", cid) Topic[talkUser] = 3 vocation[talkUser] = 1 elseif msgcontains(msg, "druid") and Topic[talkUser] == 2 then npcHandler:say("A DRUID! ARE YOU SURE? THIS DECISION IS IRREVERSIBLE!", cid) Topic[talkUser] = 3 vocation[talkUser] = 2 elseif msgcontains(msg, "paladin") and Topic[talkUser] == 2 then npcHandler:say("A PALADIN! ARE YOU SURE? THIS DECISION IS IRREVERSIBLE!", cid) Topic[talkUser] = 3 vocation[talkUser] = 3 elseif msgcontains(msg, "knight") and Topic[talkUser] == 2 then npcHandler:say("A KNIGHT! ARE YOU SURE? THIS DECISION IS IRREVERSIBLE!", cid) Topic[talkUser] = 3 vocation[talkUser] = 4 elseif Topic[talkUser] == 2 then npcHandler:say("{KNIGHT}, {PALADIN}, {SORCERER}, OR {DRUID}?", cid) Topic[talkUser] = 2 elseif msgcontains(msg, "yes") and Topic[talkUser] == 3 then npcHandler:say("SO BE IT!", cid) Topic[talkUser] = 0 doPlayerSetVocation(cid, vocation[talkUser]) doPlayerSetTown(cid, town[talkUser]) npcHandler:releaseFocus(cid) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) doTeleportThing(cid, destination[talkUser]) doSendMagicEffect(destination[talkUser], CONST_ME_TELEPORT) local targetVocation = config.vocations[Vocation(vocation[talkUser]):getName():lower()] for i = 1, #targetVocation[1] do player:addItem(targetVocation[1][i][1], targetVocation[1][i][2]) end local backpack = player:addItem(1987) for i = 1, #targetVocation[2] do backpack:addItem(targetVocation[2][i][1], targetVocation[2][i][2]) end elseif Topic[talkUser] == 3 then npcHandler:unGreet(cid) elseif Topic[talkUser] == 4 then if msgcontains(msg, "yes") then npcHandler:say("SO BE IT!", cid) Topic[talkUser] = 0 doPlayerSetTown(cid, TOWN_ISLANDOFDESTINY) npcHandler:releaseFocus(cid) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) doTeleportThing(cid, {x=32091,y=32027,z=7}) doSendMagicEffect({x=32091,y=32027,z=7}, CONST_ME_TELEPORT) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Welcome to the Island of Destiny. Walk north to find trainers who will help you find a suitable vocation.") doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "The surface of this island is a protection zone. You can't attack or regain health here. If you need healing, talk to Yandur.") doAddMapMark(cid, {x=32099,y=31996,z=7}, MAPMARK_EXCLAMATION, "Island of Destiny - Training Centre") doAddMapMark(cid, {x=32098,y=31986,z=7}, MAPMARK_GREENNORTH, "Ship to Mainland") else npcHandler:unGreet(cid) end end return true end --///////////////////////////END SCRIPT(oracle)///////////////////////////-- npcHandler:setCallback(CALLBACK_GREET, greetCallback) npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  11. 9k22 postou uma resposta no tópico em Suporte Tibia OTServer
    E esse é para as versões inferiores (tfs 0.3 e 0.4) caso alguém caia neste tópico procurando... function onThink(cid, interval, lastExecution) local positions = { ["Trainers"] = {{ x = 152, y = 42, z = 7}, color = 179}, -- branco obviamente ["Teleports"] = {{ x = 155, y = 42, z = 7}, color = 179}, -- branco obviamente ["Axe"] = {{ x = 164, y = 51, z = 6}, color = 180}, -- vermelho ["Club"] = {{ x = 166, y = 51, z = 6}, color = 180}, -- vermelho ["Sword"] = {{ x = 168, y = 51, z = 6}, color = 180}, -- vermelho ["Mag Level"] = {{ x = 167, y = 53, z = 6}, color = 191}, -- rosa ["Distance"] = {{ x = 165, y = 53, z = 6}, color = 60}, -- verde obviamente } for text, pos in pairs(positions) do doSendAnimatedText(pos[1], text, pos.color) end return true end
  12. Apenas o Help e o Party channel abriram '-'
  13. AAlá '-' Carlin = {x= 150, y= 150, z= 7} Thais = {x= 141, y= 150, z= 7} Venore = {x= 158, y= 150, z= 7} valor_carlin = 100 valor_thais = 100 valor_venore = 100 function onSay(cid, words, param, channel) local days = getPlayerPremiumDays(cid) if days == 0 or days <= 1 then doPlayerSendCancel(cid, 'Necessário premium account pra poder usar o Fly.') end if getTilePzInfo(getPlayerPosition(cid)) then if (param == 'Thais') then if getPlayerMoney(cid) >= valor_thais then -- checa money doPlayerRemoveMoney(cid, valor_thais) -- remove money doTeleportThing(cid, Thais) doSendMagicEffect(getPlayerPosition(cid), 10) end elseif (param == 'Carlin') then if getPlayerMoney(cid) >= valor_carlin then -- checa money doPlayerRemoveMoney(cid, valor_carlin) -- remove money doTeleportThing(cid, Carlin) doSendMagicEffect(getPlayerPosition(cid), 10) end elseif (param == 'Venore') then if getPlayerMoney(cid) >= valor_venore then -- checa money doPlayerRemoveMoney(cid, valor_venore) -- remove money doTeleportThing(cid, Venore) doSendMagicEffect(getPlayerPosition(cid), 10) end else local str = "(Carlin , Thais , Venore) " doShowTextDialog(cid, 2160, str) end else doPlayerSendCancel(cid, "Voce so pode em area pz.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) end end ta ae
  14. Eu usá-lo para abrir Player's "Private Chat Channel": Código: DoPlayerOpenChannel (cid, 65535) Não funciona =/ NOTA: Se eu usar doPlayerOpenChannel (cid, 8), ele trabalha .. Mas eu gostaria de fazer o nome do jogador aparecer EX: Test's Channel
  15. 9k22 postou uma resposta no tópico em Ouvidoria
    OW, melhor arrumar esse as vezes da até preguiça de postar scripts namoral.. [CODE] OIEWEOIWOe EKOPWKDOPWD DKWOPDJWIEJIW [/CODE] O pior que não possui code em lua, é em html WTF? E quando vc coloca, não tem como editar para arrumar erro, tem q deleta tudo e fazer dnovo ¬¬
  16. Q viado vc é HUIEWHUIEHWUI Vou fazer para ele, meu mestre HUEHEUHEUHEUHEUHE Carlin = {x= 150, y= 150, z= 7} Thais = {x= 141, y= 150, z= 7} Venore = {x= 158, y= 150, z= 7} valor_carlin = 100 valor_thais = 100 valor_venore = 100 function onSay(cid, words, param, channel) local days = getPlayerPremiumDays(cid) if days == 0 or days <= 1 then doPlayerSendCancel(cid, 'Necessário premium account pra poder usar o Fly.') end if getTilePzInfo(getPlayerPosition(cid)) then if (param == 'Thais') then if getPlayerMoney(cid) >= 1 then -- checa money doPlayerRemoveMoney(cid, valor_thais) -- remove money doTeleportThing(cid, Thais) doSendMagicEffect(getPlayerPosition(cid), 10) end elseif (param == 'Carlin') then if getPlayerMoney(cid) >= 1 then -- checa money doPlayerRemoveMoney(cid, valor_carlin) -- remove money doTeleportThing(cid, Carlin) doSendMagicEffect(getPlayerPosition(cid), 10) end elseif (param == 'Venore') then if getPlayerMoney(cid) >= 1 then -- checa money doPlayerRemoveMoney(cid, valor_venore) -- remove money doTeleportThing(cid, Venore) doSendMagicEffect(getPlayerPosition(cid), 10) end else local str = "(Carlin , Thais , Venore) " doShowTextDialog(cid, 2160, str) end else doPlayerSendCancel(cid, "Voce so pode em area pz.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) end end
  17. lá em config.lua troca sqlType = "mysql" por sqlType = "sqlite"
  18. 9k22 postou uma resposta no tópico em Suporte & Pedidos
    Quando você gosta de tudo perfeitamente, inclusive das falas originais do NPC!!! Npc Amber 100% - addon + book + salmon Todo meu servidor é projetado apartir do TibiaWiki.
  19. Vem cá, teu script funcionava ou ele não funciona e vc quer fazer funcionar e adicionar essa descrição ai?
  20. 1- Em relação ao funcionamento do Tibia, qual a ordem de execução dos arquivos para o funcionamento do jogo ?, melhor dizendo como o jogo funciona? R: Uai, o Executável já mostra como ele inicia o servidor, ele vai abrindo e checando por partes.. Começa com Database, action, globalevents, talkaction.... só olhar assim que abrir o executável q ele vai executando por ordem. 2- Eu baixei um OT qualquer e dei uma olhada na pasta principal (otserver) onde se encontra (mods,data) e percebi que existe séries de arquivos com extensões diferentes, qual a principal função deles? Arquivo em bloco de notas: _woe Arquivo em TXT: aps_changelog Arquivo executavel (engrenagem grande): autorestarter Arquivo (engrenagem menor): iconv.dll Arquivo em folha em branco: Styler.s3db (Pelo visto não da para abrir pelo windows): 2.1- Para que serve esses arquivos? R: _woe é onde você configura o script (war of emperium). Ao abri-lo você entenderá melhor. (pode abrir como documento de texto) aps_changelog é o CHANGELOG (atualizações e modificações) que o carinha que liberou o download fez. (pode deletar) O autorestarter, para quem usa windows, caso o servidor caia ou o distro feche, ele abre o mesmo sozinho. Styler.s3db, para quem não usa mysql, esse é o famoso SQL, para ligar o servidor sem precisar de website. os Dll é para abrir o executável, sem eles é impossível abri-los. 2.2- Qual diferença da engrenagem maior para a menor ? R: Se for o executável 'theforgottenserver' é para abrir o servidor. Se for o autorestarter, como respondi acima, é para abrir o 'theforgottenserver' automaticamente caso ele feche. 2.3- Qual diferença de um arquivo txt e um arquivo em bloco de notas e qual o papel do mesmo (bloco de notas, documento de texto) ? R: Esse pergunta ai faz eu pensar que você não possui conhecimento nenhum sobre windows kkkkk Não tem diferença nenhuma. Para melhor auxilio, instale o NotePad++ pois com ele você vai abrir todos os arquivos do servidor. 2.4- Para que serve o arquivo com folha em branco e por que não da para abrir no windows ? R: Pq é a database em SQL, você só abre ele com Sqlite (não lembro se o nome é esse, um desenho de uma pena). 2.5- Para que serve o arquivo autorestarter (com engrenagem grande) ? R: Respondi acima, é para abrir o servidor sozinho caso o servidor feche ou caia. 3- Para que serve essas extensões ? OBS: Estão na pasta principal do OT server que baixei. .sql: .dll: .sh: .s3db: .woe: R: Dll's são para abrir o executável. Ele nada mais é que como qualquer outro programa, precisa de suas Dll's para abri-lo. .sql é a database web do servidor, que precisa de website que no caso seria mysql. sh eu não lembro, preciso saber o nome completo do arquivo. .s3db é database do servidor, que não precisa de website que no caso seria o sqlite. .woe é documento de evento. War of Emperium. 4- Uma coisa que eu reparei, em alguns servers que eu baixava antigamente o arquivo " config.lua " vem sem a extensão ".lua" por que ? R: É uma das linguagem de programação usada no tibia, .lua para scripts em geral. 5- Na minha pasta contém um arquivo chamado libeay32.dll e outro libeay32 - Copia.dll o por que existe esses dois arquivos iguais ? R: Erro do carinha que colocou o servidor para download. Você baixou algum baiak ai e esses arquivos são um lixo kk 6- Na pasta do meu OT contém um arquivo (papel em branco) chamado theforgottenserver para que ele serve ? R: Bem, se o 'theforgottenserver' estiver em branco é porque foi compilado em Linux...
  21. Cara, eu também estava com o mesmo problema, tive que refazer todo o script... Tenta trocar match.max por match.maxn
  22. local config = { affected = 100, -- how many players (deathAssits) from table deathList should this script be executed for? killStorageValue = 3943, deathStorageValue = 3944, -- commands for the texts (those inside of ||, example: |KILLS| to show skills): KILLS, KILLERNAME, TARGETNAME rewardItem = { use = true, itemid = 5943, minLevel = false, -- false if you don't want any level req minLevelDiff = false, -- false if you don't want any level diff req (negative numbers allowed). }, killMessage = { use = true, text = "You owned |TARGETNAME|! You have now |KILLERKILLS| kills!", messageClass = MESSAGE_STATUS_CONSOLE_BLUE }, broadcastMessage = { use = true, minLevel = false, -- false if you don't want any level req minLevelDiff = false, -- false if you don't want any level diff req (negative numbers allowed). text = "|KILLERNAME| [|KILLERLEVEL|] Matou |TARGETNAME| [|TARGETLEVEL|]! E Arracou Seu Coracao!", messageClass = MESSAGE_STATUS_CONSOLE_ORANGE }, killerAnimation = { use = false, text = "Killer!", -- Only 9 letters! No "commands" here. color = 144 }, targetAnimation = { use = false, text = "Owned!", -- Only 9 letters! No "commands" here. color = 180 } } function onDeath(cid, corpse, deathList) for i = 1, math.min(config.affected, getConfigInfo('deathAssistCount')) do local killer = deathList if(isPlayer(killer) == TRUE) then local targetKills = math.max(0, getPlayerStorageValue(cid, config.killStorageValue)) + 1 local targetDeaths = math.max(0, getPlayerStorageValue(cid, config.deathStorageValue)) + 1 local killerKills = math.max(0, getPlayerStorageValue(killer, config.killStorageValue)) + 1 local killerDeaths = math.max(0, getPlayerStorageValue(killer, config.deathStorageValue)) + 1 setPlayerStorageValue(killer, config.killStorageValue, targetKills) setPlayerStorageValue(cid, config.deathStorageValue, targetDeaths) local killerLevel = getPlayerLevel(killer) local targetLevel = getPlayerLevel(cid) local levelDiff = targetLevel - killerLevel local values = { ["KILLERKILLS"] = killerKills, ["KILLERDEATHS"] = killerDeaths, ["KILLERNAME"] = getCreatureName(killer), ["KILLERLEVEL"] = killerLevel, ["TARGETKILLS"] = targetKills, ["TARGETDEATHS"] = targetDeaths, ["TARGETNAME"] = getCreatureName(cid), ["TARGETLEVEL"] = targetLevel } function formateString(str) return(str:gsub("|([A-Z]+)|", (function(a) return values[a] end))) end if(config.rewardItem.use and (not config.rewardItem.minLevel or targetLevel >= config.rewardItem.minLevel) and (not config.rewardItem.minLevelDiff or levelDiff >= config.rewardItem.minLevelDiff)) then local uid = doPlayerAddItem(killer, config.rewardItem.itemid, 30) doItemSetAttribute(uid, "name", "" ..config.Tname.. " Heart's") doItemSetAttribute(uid, "description", "Killed at Level "..config.Tlevel.." by "..config.Kname..". " .. (getCreatureSkullType(cid) <= SKULL_GREEN and "(Unjustified)" or "(Justified)")) end if(config.killMessage.use) then doPlayerSendTextMessage(killer, config.killMessage.messageClass, formateString(config.killMessage.text)) end if(config.broadcastMessage.use and (not config.broadcastMessage.minLevel or getPlayerLevel(cid) >= config.broadcastMessage.minLevel) and (not config.broadcastMessage.minLevelDiff or levelDiff >= config.broadcastMessage.minLevelDiff)) then broadcastMessage(formateString(config.broadcastMessage.text), config.broadcastMessage.messageClass) end if(config.killerAnimation.use) then doSendAnimatedText(getCreaturePosition(killer), config.killerAnimation.text, config.killerAnimation.color) end if(config.targetAnimation.use) then doSendAnimatedText(getCreaturePosition(cid), config.targetAnimation.text, config.targetAnimation.color) end end end return true end
  23. https://github.com/mattyx14/otxserver/tree/otxv2_6 OTX (tfs 0.3.7) com cast system. Apenas distro e pasta data clean. Bom proveito e boa sorte com o projeto!
  24. Ta muito confuso mesmo. Você quer dizer erros do servidor não abrir ou os itens ficarem com ids diferentes? Ou você da look e o nome do item não existir aparecendo "contact the administrador"?

Informação Importante

Confirmação de Termo