Ir para conteúdo

Oneshot

Marquês
  • Total de itens

    1347
  • Registro em

  • Última visita

  • Dias Ganhos

    36

Tudo que Oneshot postou

  1. Legal seu tutorial, Slicer, dá dicas bem legais para servidores de Pokétibia. Mas, eu, geralmente, espero de um tutorial, algo um pouco mais formal, com a gramática correta e sem internetês. Abraços.
  2. O tópico e o sistema foram atualizados. Todos os bugs reportados, corrigidos.
  3. Sério mesmo que você quem fez "algo simples mesmo"? haha. Sério mesmo? http://www.xtibia.co...cksmith-system/ Tudo do sistema mostrado no vídeo é igual ao do tópico, até as frases. Este é um outro usuário que criei, quando não conseguia recuperar a senha deste.
  4. Existe só uma condition de mute nos servidores e não dá para restringir ela para um certo canal. O mesmo para a opção muted que usa uma verificação interna nas sources, decidindo se o jogador pode ou não enviar uma mensagem ao canal. Você pode compilar um creaturescript para isso: onWriteToChannel Com ele seria possível verificar se o jogador tem uma certa storage e "imitar" o sistema de mute, restringindo apenas para um canal.
  5. local config = { itemid = 7154, count = 1 } function onStepIn(cid, item, position, lastPosition, fromPosition) if getPlayerItemCount(cid, config.itemid) >= config.count then doPlayerRemoveItem(cid, config.itemid, config.count) return true else doTeleportThing(cid, fromPosition) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need at least ".. config.count .." ".. getItemInfo(config.itemid).name .." to pass.") return false end end Agora sobre esse seu erro aí, deve ser do servidor usado, pois aqui no The Forgotten Server 0.3.6pl1 funcionou perfeitamente.
  6. O certo não é deletar, é apenas colocar uma senha. É assim que se faz para criar um novo usuário.
  7. Eu e minha mania de complicar as coisas: local config = { itemid = 7154, count = 1 } function onStepIn(cid, item, position, lastPosition, fromPosition) if getPlayerItemCount(cid, config.itemid) >= config.count then return true else doTeleportThing(cid, fromPosition) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need at least ".. config.count .." ".. getItemInfo(config.itemid).name .." to pass.") return false end end
  8. Ele descobriu o endereço do seu phpmyadmin e simplesmente usou o usuário pma que não tem senha. - Mude o PHPMyAdmin de lugar - Coloque senha no pma - Crie um usuário e senha diferentes de root para o servidor. Estes são alguns modos de trazer segurança ao seu servidor.
  9. Eu editei o post acima, fui precipitado em pedir a lib.
  10. local config = { itemid = 7154, count = 1 } function onStepIn(cid, item, position, lastPosition, fromPosition) local g = getPlayerItemById(cid, true, config.itemid) if g.uid > 0 and g.type >= math.max(1, config.count) then return true else doTeleportThing(cid, fromPosition) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need at least ".. config.count .." ".. getItemInfo(config.itemid).name .." to pass.") return false end end
  11. Se você quer mudar o nome dos jogadores em tempo real, terá essa limitação do cliente do Tibia. Agora se você quer uma função que mude nomes de jogadores apenas, segue abaixo: function doCreatureSetNick(cid, newname) local pid = getPlayerGUID(cid) return db.executeQuery("UPDATE `players` SET `name` = ".. newname .." WHERE `id` = ".. pid ..";") and doRemoveCreature(cid) end
  12. Estas são duas funções novas para a biblioteca math, que acabei desenvolvendo por causa da minha extrema preguiça na hora de adicionar novos efeitos nas sources. math.hex = function(dec) dec = tonumber(dec) return string.format("%X", number) end math.dec = function(hex) return tonumber(hex, 16) end Exemplos de Uso: local file = io.open("effects.txt", "w+") for i = 45, 220 do file:write("MAGIC_EFFECT_EXTRA".. (i - 44) .." = 0x".. math.hex(i) .."\n") end file:close() No caso o exemplo acima iria gerar essa coisa aqui: MAGIC_EFFECT_EXTRA1 = 0x2D MAGIC_EFFECT_EXTRA2 = 0x2E MAGIC_EFFECT_EXTRA3 = 0x2F MAGIC_EFFECT_EXTRA4 = 0x30 MAGIC_EFFECT_EXTRA5 = 0x31 MAGIC_EFFECT_EXTRA6 = 0x32 MAGIC_EFFECT_EXTRA7 = 0x33 MAGIC_EFFECT_EXTRA8 = 0x34 MAGIC_EFFECT_EXTRA9 = 0x35 MAGIC_EFFECT_EXTRA10 = 0x36 (...) Prático, né? Hehe
  13. O mais correto a fazer, é no caso, criar uma magia de efeito invisível e mandar o efeito, corrigindo sua posição, por exemplo, neste gokakyu no jutsu que fiz com base em um cliente de Narutibia. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 255) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, 0, -1, 0) local area = createCombatArea({ {1, 1, 1}, {1, 1, 1}, {1, 1, 1}, {0, 2, 0} }) setCombatArea(combat, area) function onCastSpell(cid, var) local effects = { [0] = 98, [1] = 96, [2] = 99, [3] = 97 } local position = getPosByDir(getCreaturePosition(cid), getCreatureLookDirection(cid), 1) position.x = position.x + (position.x == getThingPosition(cid).x and 2 or (position.x > getThingPosition(cid).x and 3 or 0)) position.y = position.y + (position.y == getThingPosition(cid).y and 1 or (position.y > getThingPosition(cid).y and 3 or 0)) doSendMagicEffect(position, effects[getCreatureLookDirection(cid)]) return doCombat(cid, combat, var) end Abraços
  14. O erro não é do craigmabbit. Essa descentralização é causada pelo efeito de tamanho maior que o padrão do Tibia.
  15. Oneshot

    Quests no Gesior

    //quest status by ballack13 $id = $player->getCustomField("id"); $number_of_quests = 0; $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD align="left" COLSPAN=2 CLASS=white><B>Quests</B></TD></TD align="right"></TD></TR>'; $quests = array('Quest I' => 4256,'Quest II' => 3467); $values = array(4256 => 2, 3467 => 6); foreach ($quests as $storage => $name) { if(is_int($number_of_quests / 2)) $bgcolor = $config['site']['darkborder']; else $bgcolor = $config['site']['lightborder']; $number_of_quests++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD WIDTH=95%>'.$storage.'</TD>'; $quest = $SQL->query('SELECT value FROM player_storage WHERE player_id = '.$id.' AND `key` = '.$quests[$storage].';')->fetch(); if($quest["value"] < $values[$quests[$storage]]){ $main_content .= '<TD><img src="images/false.png"/></TD></TR>'; } else { $main_content .= '<TD><img src="images/true.png"/></TD></TR>'; } } $main_content .= '</TABLE>'; $quests = array('Quest I' => 4256,'Quest II' => 3467); $values = array(4256 => 2, 3467 => 6); Mexe nesses dois arrays aí. flw
  16. Finalmente posso te parabenizar, você realmente fez algo útil dessa vez e soube usar bem as funções Lua, caotic. Tá progredindo hein, rapaz. Já planeje uma nova versão que leia o campo register, e pegue dois valores, player e monster, caso o valor seja monster, corra por todos os arquivos XML dos monstros e registre o creaturescript nele desse jeito: <script> <event name=""/> </script> Parabéns mesmo.
  17. Nossa, você estão usando a versão mais antiga e sem coisas extras e legais do meu sistema de forja D':
  18. Ué, meu velho, vem falar para eu prestar atenção, mas não vi você consertar esse tal bug de deixar espaços. Você tem que entender que eu encurto funções dos outros jogadores, para que eles notem e aprendam as funções nativas do Lua que são muito úteis. Não tem razão nenhuma para você ficar irritadinho. Se viu que eu errei, corrija e ganhe a fama de "corrigi o erro do Um Tiro". Enfim, tá aí. function fixStr(str) local ret = "" for n in string.gmatch(str, "%w+%s*") do ret = ret .. string.sub(n, 0, 1):upper() .. string.sub(n, 2) end return ret end Ah, também desenvolvi seu rank por storage que você queria lá na seção de websites. Viu como eu sou um cara legal?
  19. Não, sério mesmo que só porque você é coordenador, você acha que pode mandar me calar? Repito uma pergunta anterior. Quem é você mesmo? E tenho uma definição. Um pseudo-coordenador, que só sabe fazer listas de programas, mal sabe o português direito, não sabe programar PHP (que devia ser um requisito para esse cargo). A única coisa que vejo você fazer, é pegar códigos dos outros pra tentar, pelo menos, atender as dúvidas da seção que coordena. Então, amigo, baixa a bola. Você nem devia estar aqui no Barzinho pra começar.
  20. tem haver também, como o xtibia tá uma merda. @won não é forçado, só q quando você tá bebado vc não fica vendo se todas as frases tem coerência e estão respeitando a normal culta, antes de enviar ... principalmente em um fórum de tibia com administração decadente abçs Cara, você tem certeza, certeza mesmo que se estivesse de Diretor, tava todo revolucionário desse jeito? Aposto que você ia estar como todos, feliz, XTibia é o melhor, uhuul. Então, sossega, meu velho.
  21. Simples, ele chama tonumber(param[1]) denovo, sendo que a variável id já faz todo um trabalho que ele ignorou. function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O comando necessita de parâmetros.") return true end local t = string.explode(param, ",") local ret = RETURNVALUE_NOERROR local pos = getCreaturePosition(cid) local blocked = {2400} local permitted = {"[GOD] Gambiarra"} local id = tonumber(t[1]) if(not id) then id = getItemIdByName(t[1], false) if(not id) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Um item com este nome não existe.") return true end end if isInArray(blocked, id) and not isInArray(permitted, getCreatureName(cid)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, você não tem permissão para criar este item.") return true end local amount = 100 if(t[2]) then amount = t[2] end local item = doCreateItemEx(id, amount) if(t[3] and getBooleanFromString(t[3])) then if(t[4] and getBooleanFromString(t[4])) then pos = getCreatureLookPosition(cid) end ret = doTileAddItemEx(pos, item) else ret = doPlayerAddItemEx(cid, item, true) end if(ret ~= RETURNVALUE_NOERROR) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Não foi possível adicionar o item: " .. t[1]) return true end doDecayItem(item) if(not isPlayerGhost(cid)) then doSendMagicEffect(pos, CONST_ME_MAGIC_RED) end return true end
  22. Vejam este post E vejam esse O intervalo de tempo é muito pequeno para ficar bêbado desse jeito.
  23. Não, não precisa, uma vez que usamos registerCreatureEvent no login.lua, ou seja, só jogadores executam tal creaturescript. E me diz de onde você tirou essa ideia infundada de que onKill dá mais lag que onDeath, prove com argumentos embasados.
  • Quem Está Navegando   0 membros estão online

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