Ir para conteúdo

FeeTads

Membro
  • Registro em

  • Última visita

Tudo que FeeTads postou

  1. essa imagem eh o headline, provavelmente não está instalado no seu site, ou provavelmente a imagem com o nome da pagina não existe, normalmente ela se encontra no cabeçalho, vc pode tirar e baixar o headline pra funciona. com o comando: pra nginx: sudo cp /usr/share/nginx/html/pages/headline.ttf /usr/share/fonts/truetype/ && cd /usr/share/fonts/truetype && sudo fc-cache -fv *(OBS: Caso não consiga utilizar o comando, instale o fc-cache: $ sudo apt install fontconfig) pra apache sudo cp /var/www/html/pages/headline.ttf /var/www/fonts/truetype/ && cd /var/www/fonts/truetype && sudo fc-cache -fv *(OBS: Caso não consiga utilizar o comando, instale o fc-cache: $ sudo apt install fontconfig)
  2. isso significa que seu server não fechou o OTXserver ou o TFS, o executável, significa que vc n fechou a screen etc.., e o processo ainda continua ativo. para parar esse erro, só digitar no terminal killall -9 theotxserver ou, onde ta theotxserver, mudar pro nome do executável do seu servidor
  3. até consigo sim, só que vou viajar agora dia 5 kkkkkkk só consigo mexer nesse script la pelo dia 15+ mano, qualqur coisa te mando no pv quando for mexer.
  4. atualmente alguns usam pela source, eu uso uam função na source de add experience, ai posso fazer as potions conforme essa função, oq eh mais facil, de que scriptar pra aumentar a rate ganha tlg?
  5. pq essa função do mod com login configura pra dar mais exp
  6. tenta colocar um onLogin function onLogin(cid) setPlayerStorageValue(cid, 62164, 0) return true que quando o player logar, vai resetar a storage caso queira que a storage não saia mesmo deslogando, e só acabe quando o player realmente tiver fora do time de 60 mins, precisa colocar a storage como os.time @King Laker
  7. bem facil resolver isso amigo. abre 2 arquivos da sua source "luascript.cpp" e depois abre o "luascript.h" em luascript.cpp procure por "doCreatureChannelSay" ou "doPlayerSendTextMessage" E adicione abaixo: //doPlayerOpenChannel(cid, channelId) lua_register(m_luaState, "doPlayerOpenChannel", LuaInterface::luaDoPlayerOpenChannel); depois, FAÇA NOVAMENTE a busca pelo "doCreatureChannelSay" ou "doPlayerSendTextMessage" até chegar em uma função +/- assim: int32_t LuaInterface::luaDoPlayerSendTextMessage(lua_State* L) { vai ter varias coisas dentro dessa função, então COM CUIDADO, após o fechamento dela após o " } " procure pela chave que fecha essa função, e adicione essa função abaixo: int32_t LuaInterface::luaDoPlayerOpenChannel(lua_State* L) { //doPlayerOpenChannel(cid, channelId) uint16_t channelId = popNumber(L); uint32_t cid = popNumber(L); ScriptEnviroment* env = getEnv(); if(env->getPlayerByUID(cid)) { lua_pushboolean(L, g_game.playerOpenChannel(cid, channelId)); return 1; } errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushboolean(L, false); return 1; } IMPORTANTE** preste bem atenção pra não colocar uma função dentro da outra, coloque a função exatamente ABAIXO da outra. feito isso, vá em luascript.h PROCURE novamente por "doCreatureChannelSay" ou "doPlayerSendTextMessage" e adicione abaixo: static int32_t luaDoPlayerOpenChannel(lua_State* L); após isso, recompile sua source, apenas com "make" não precisa recompilar ela toda do 0, pode recompilar apenas esses arquivos, e reabrir seu ot com o novo exe e pronto, estará 100% funcionando a função. caso isso tudo não de certo, me avise, que ai precisará adicionar algumas coisas em mais 3 arquivos.
  8. tenta assim então function onUse(cid, item, frompos, position, topos) -- Não mecha. local storage = 1000 -- Storage a cada quest que for criada aumente um numero da storage pra qnd vc pegar o baú de outra quest ñ aparecer que vc já fez. local item = 2476 -- Id do item ira ganhar. local quantidade = 1 -- Quantidade ira ganhar. local level = 30 -- Level que precisa pra fazer. if getPlayerLevel(cid) >= level and getPlayerStorageValue(cid,storage) == -1 then -- Não mecha. local cria_item = doCreateItemEx(item, 1) --cria o item doItemSetAttribute(cria_item,"description","Quest Feita pelo jogador "..getCreatureName(cid).."!") --add o atributo descrição local receive = doPlayerAddItemEx(cid, cria_item) -- Não mecha. if receive == RETURNVALUE_NOERROR then -- se o receive que add item ao player não retornar erro doSendAnimatedText(topos, "Cleck!", 66) doSendMagicEffect(getCreaturePosition(cid), 94) setPlayerStorageValue(cid,storage,1) -- Não mecha. else doPlayerSendTextMessage(cid, 19, "ERROR! please check your cap or contact an admin!") end elseif getPlayerLevel(cid) <= level then -- Não mecha doPlayerSendCancel(cid, "The Legend\'s: Você precisa ser level "..level.." ou mais.") -- Mensagem que ira aparecer se o player tiver menos level que o necessario. doSendMagicEffect(getCreaturePosition(cid), 2) elseif getPlayerStorageValue(cid,storage) >= 1 then -- Não mecha. doPlayerSendCancel(cid, 'The Legend\'s: Você já recebeu seu prêmio.') -- Quando tentar pegar mais de uma vez o baú. doSendMagicEffect(getCreaturePosition(cid), 2) end return true end
  9. Este tópico foi movido para a seção de Suporte Otserv. function onUse(cid, item, frompos, position, topos) -- Não mecha. local storage = 1000 -- Storage a cada quest que for criada aumente um numero da storage pra qnd vc pegar o baú de outra quest ñ aparecer que vc já fez. local item = 2476 -- Id do item ira ganhar. local quantidade = 1 -- Quantidade ira ganhar. local level = 30 -- Level que precisa pra fazer. if getPlayerLevel(cid) >= level and getPlayerStorageValue(cid,storage) == -1 then -- Não mecha. setPlayerStorageValue(cid,storage,1) -- Não mecha. local cria_item = doCreateItem(item, 1) --cria o item doItemSetAttribute(cria_item,"description","Quest Feita pelo jogador "..getCreatureName(cid).."!") --add o atributo descrição doPlayerAddItem(cid, cria_item) -- Não mecha. doSendAnimatedText(topos, "Cleck!", 66) doSendMagicEffect(getCreaturePosition(cid), 94) doItemSetAttribute(itemEx.uid, "description", "Esse equipamento foi ... ") elseif getPlayerLevel(cid) <= level then -- Não mecha doPlayerSendCancel(cid, "The Legend\'s: Você precisa ser level "..level.." ou mais.") -- Mensagem que ira aparecer se o player tiver menos level que o necessario. doSendMagicEffect(getCreaturePosition(cid), 2) elseif getPlayerStorageValue(cid,storage) >= 1 then -- Não mecha. doPlayerSendCancel(cid, 'The Legend\'s: Você já recebeu seu prêmio.') -- Quando tentar pegar mais de uma vez o baú. doSendMagicEffect(getCreaturePosition(cid), 2) end return true end
  10. nunca joguei pokemon, n sei oq eh GBA kkkkkkkk tentei oq entendi pra te ajudar kkkkkk
  11. nesse case, provavelmente vc ta tentando adicionar uma nova skill, e isso eh bem complexo, tem tutorias no TK que ensinam como fazer o passo a passo, da uma procurada boa, ou caso vc não queira criar uma nova skill, só deletar esse case até o return true
  12. a chance total pra sumonar precisa ser 100% no total por essa contagem não faz muito sentido, pq tem chance de n aparecer nada, então fiz +/- assim: --[[ script edited by - Feetads TibiaKing ]]-- -- pode coloca essa function na LIB, e retirar o "local" pra usa-la em outro script sem precisar colocar de novo local function getMonstersFromArea(fromPos, toPos) local monsterInArea = {} for posx = fromPos.x, toPos.x do for posy = fromPos.y, toPos.y do for posz = fromPos.z, toPos.z do local tmp = getTopCreature({x=posx,y=posy,z=posz}).uid if(tmp > 0) then for s = 0, 255 do _search_pos = {x = posx, y = posy, z = posz, stackpos = s} tmpMonster = getThingfromPos(_search_pos).uid if tmpMonster > 0 and isMonster(tmpMonster) and not isSummon(tmpMonster) and not isInArray(monsterInArea, tmpMonster) then table.insert(monsterInArea, tmpMonster) end end end end end end return monsterInArea end local function func_createBoss(id_monster, player_pos) local fromPos = {x = 1000, y = 1000, z = 7} --canto superior esquerdo da sala (colocar mais SQM acima pra formar um quadrado EM VOLTA da sala) local toPos = {x = 1010, y = 1010, z = 7} --canto inferior direito da sala (colocar mais SQM abaixo pra formar um quadrado EM VOLTA da sala) local position_boss = {x = 1005, y = 1005, z = 7} -- POSIÇÃO QUE O BOSS IRÁ NASCER --local position_boss = player_pos -- caso queira que o boss nasça em cima do player, descomentar esse, E comentar o de cima local monsters = {"Bulbasaur", "Weedle", "Shiny Pikachu"} --nome dos monstros precisa corresponder ao que vc quer local checkMonster = getMonstersFromArea(fromPos, toPos) --função pra checar se tem monstro na sala if #checkMonster < 1 then -- < 1 é 0, ou seja, não tem created = doCreateMonster(monsters[id_monster], position_boss, false, true) --função pra forçar a criação do boss doCreatureSay(created, "Um Pokemon Salvagem Apareceu!", TALKTYPE_MONSTER) doSendMagicEffect(getCreaturePosition(created), 173) addEvent(function() if isCreature(created) and isMonster(created) then doRemoveCreature(created) end end, timer*60*1000) end end function onStepIn(cid, item, toPosition, fromPosition) local timer = 1 -- Tempo em minutos local rand = math.random(1, 1000) --numero random de 1 até 1000, NÃO MEXER local player_pos = getCreaturePosition(cid) if isCreature(cid) and isPlayer(cid) then if rand >= 1 and rand <= 400 then -- de 1 a 400 (40%) não aparece nada return true elseif rand > 400 and rand <= 700 -- de 400 a 700 (30%) aparece o bulbasaur func_createBoss(1, player_pos) elseif rand > 700 and rand <= 999 -- de 700 a 99 (29.9%) aparece o weedle func_createBoss(2, player_pos) elseif rand > 999 -- acima de 999 (0.1%) aparece o shyni pikachu func_createBoss(3, player_pos) end end return true end
  13. como o diego citou, vc pode adicionar esse autoloot do naze (o melhor que eu ja vi por sinal) e na parte de "talkations.cpp" existe as funcões "add" "remove" "money", vc comenta com /* */ todo o script de add e remover, deixa somente o gold ativo
  14. existe um função no tibia chamada "isInArray" basicamente ela significa isso mesmo, kkkkkkk, "está no array" quando vc precisar de mais de uma opção, ela vai te salvar muito no futuro, principalmente pra falas com NPC, ou checagem simples de item. seu script vai ficar assim: obs: coloquei os comentários pra vc poder entender melhor caso vá usar no futuro. --[[ Script Edited By Feetads - TibiaKing ]]-- local todos_items = {7504, 7505, 7506} -- criando o array com os outros items, só adicionar outros ID aqui function onUse(cid, item, fromPosition, itemEx, toPosition) local pos = {x=1841, y=826, z=7} --SEMPRE usar "local" antes das variaveis de script fora da LIB! if isInArray(todos_items, itemEx.itemid) then -- se estiver no array (todos_items) o itemEx.itemid então.... lembrando que o "todos_items" NÃO precisa estar entre chave "{todos_items}" porém vc pode colocar diretamente no if, ex: -- if isInArray({7504, 7505, 7506}, itemEx.itemid) then doTeleportThing(cid,pos) else doPlayerSendCancel(cid, "Use esta rock no lugar certo.") end return true end
  15. FeeTads respondeu ao post em um tópico de vitinhoo96 em Suporte Tibia OTServer
    não o global event kkkkk, quero saber como ta o seu site, como ta mostrando no site e coloca assim aqui: $queryCastle = $SQL->query("SELECT * FROM `guilds` WHERE `real_castle` = 1 ORDER BY id DESC LIMIT 1")->fetch(); eu sempre prefiro selecionar tudo com " * " do que selecionar especifico, ai vc altera dentro do script tipo $queryCastle['name']
  16. FeeTads respondeu ao post em um tópico de vitinhoo96 em Suporte Tibia OTServer
    depende de como ta seu script do castle e do site
  17. FeeTads respondeu ao post em um tópico de vitinhoo96 em Suporte Tibia OTServer
    mostra como fica no site pf, mas antes tenta colocar "->fetchAll();" no lugar de "->fetch();"
  18. tenta tirar o "return true" do apply_condition() assim: local function apply_condition(target) if isCreature(target) then --caso o target morra, acaba o condition dano = math.ceil(math.random(5000,10000)) --dano entre 5-10k doCreatureAddHealth(target, -dano) doSendAnimatedText(getCreaturePos(target), "-"..dano, 180) if tempo_de_condition > 0 then --tempo de condition no cabeçalho tempo_de_condition = tempo_de_condition - 1 -- diminui 1 na contagem addEvent(apply_condition, 1000, target) --addEvent de 1s que chama novamente a função end end end
  19. coloquei um text pra mostrar qual dano saiu: ele ta causando o dano apenas 1x?
  20. existem 2 formas de fazer isso, como o Imperius ali ja basicamente fez, da pra vc fazer por storage, OU, mudar a forma da alavanca, se a alavanca for puxada, muda o ID, e coloca um addEvent com timer pra ela voltar ao normal. assim: e um adendo, vi que vc usa o "getThingFromPos" isso meio que pega QUALQUER coisa da posição. caso queira pegar apenas CRIATURAS (monster ou player) use: local m = getTopCreature(colocar-aqui-a-position).uid --pega a creature da posição if m ~= 0 and isPlayer(m) then --se existir creature *E* for player então.... ... end
  21. precisa duplicar a MW no itemEditor, e retirar a propriedade de "block missiles" caso você faça isso, clientes 8.6 do tibia PADRÂO, irão debugar ao ver esse item, por causa da propriedade dele, então cuidado, pois só irá funcionar em client custom. obs: caso vc queira que funcione no client padrão da CIP, só procurar algum item no OBB que contenha "unpassable e blockpathfinder", duplicar e colocar a sprite de MW que quiser pelo obb, compilar e colocar em seu client. obs²: não esqueça de duplicar o script da MW no spells e spells.xml tbm, pra esse novo item
  22. é imaginei kkkkkkkk, não aplica em monster por causa do check de storage, vou arrumar: local percent = 30 --- Chance de Aplicar Condition local storage_CD = 2353255 --storage, se não souber não mexer local timer = 60 --timer em segundos pra aplicar o condition novamente local tempo_de_condition = 20 local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) local function apply_condition(target) if isCreature(target) then --caso o target morra, acaba o condition dano = math.ceil(math.random(5000,10000)) --dano entre 5-10k doCreatureAddHealth(target, -dano) doSendAnimatedText(getCreaturePos(target), "-"..dano, 180) if tempo_de_condition > 0 then --tempo de condition no cabeçalho tempo_de_condition = tempo_de_condition - 1 -- diminui 1 na contagem addEvent(apply_condition, 1000, target) --addEvent de 1s que chama novamente a função end end return true end function onUseWeapon(cid, var) local target = getCreatureTarget(cid) if getPlayerStorageValue(cid, storage_CD) - os.time() > 0 then return doCombat(cid, combat, var) -- não precisa nada dentro desse IF pq se não iria flodar a tela do player end local position1 = getThingPosition(target) if isCreature(variantToNumber(var)) then -- isCreature = TODAS as criaturas > isPlayer > somente em player > isMonster somente em mmonster if percent >= math.random(1,100) then doSendMagicEffect(position1, 346) setPlayerStorageValue(cid, storage_CD, os.time() + timer) apply_condition(target) end end return doCombat(cid, combat, var) end teste e ve se funciona
  23. tenta assim então: local percent = 30 --- Chance de Aplicar Condition local storage_CD = 2353255 --storage, se não souber não mexer local timer = 60 --timer em segundos pra aplicar o condition novamente local tempo_de_condition = 20 local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) local function apply_condition(cid, target) if isCreature(target) and isCreature(cid) then --caso o target morra, acaba o condition dano = math.ceil(math.random(5000,10000)) --dano entre 5-10k doTargetCombatHealth(target, cid, COMBAT_ENERGYDAMAGE, -dano, -dano, 255) --source function de combat if tempo_de_condition > 0 then --tempo de condition no cabeçalho tempo_de_condition = tempo_de_condition - 1 -- diminui 1 na contagem addEvent(apply_condition, 1000, cid, target) --addEvent de 1s que chama novamente a função end end return true end function onUseWeapon(cid, var) local target = getCreatureTarget(cid) if getPlayerStorageValue(target, storage_CD) - os.time() > 0 then return doCombat(cid, combat, var) -- não precisa nada dentro desse IF pq se não iria flodar a tela do player end local position1 = getThingPosition(target) if isCreature(variantToNumber(var)) then -- isCreature = TODAS as criaturas > isPlayer > somente em player > isMonster somente em mmonster if percent >= math.random(1,100) then doSendMagicEffect(position1, 346) setPlayerStorageValue(target, storage_CD, os.time() + timer) apply_condition(cid, target) end end return doCombat(cid, combat, var) end
  24. o meu não checa o condition, pq como falei, tem como aplicar condition energy/fire/poison por runa, ai o cara nunca vai levar o condition da arma, por isso eh mais facil substituir por storage que assim ele sempre vai tomar o condition. tenta assim: local percent = 30 --- Chance de Aplicar Condition local storage_CD = 2353255 --storage, se não souber não mexer local timer = 60 --timer em segundos pra aplicar o condition novamente local tempo_de_condition = 20 local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) local function apply_condition(cid, target) if isCreature(target) and isCreature(cid) then --caso o target morra, acaba o condition dano = math.ceil(math.random(5000,10000)) --dano entre 5-10k doTargetCombatHealth(target, cid, COMBAT_ENERGYDAMAGE, -dano, -dano, 255) --source function de combat if tempo_de_condition > 0 then --tempo de condition no cabeçalho addEvent(apply_condition, 1000, target) --addEvent de 1s que chama novamente a função tempo_de_condition = tempo_de_condition - 1 -- diminui 1 na contagem end end return true end function onUseWeapon(cid, var) local target = getCreatureTarget(cid) if getPlayerStorageValue(target, storage_CD) - os.time() > 0 then return true -- não precisa nada dentro desse IF pq se não iria flodar a tela do player end local position1 = getThingPosition(target) if isCreature(variantToNumber(var)) then -- isCreature = TODAS as criaturas > isPlayer > somente em player > isMonster somente em mmonster if percent >= math.random(1,100) then doSendMagicEffect(position1, 346) setPlayerStorageValue(target, storage_CD, os.time() + timer) apply_condition(cid, target) end end return doCombat(cid, combat, var) end caso não de certo, vou arrumar pra fazer com AddHealth ou AddMana no negativo, testa e ve se funciona mano pls
  25. O valor tá fixo pq o math.random tá fora do onUseWeapon coloca o math.random dentro do onUse e passa o dano por função

Informação Importante

Confirmação de Termo