Ir para conteúdo

Rusherzin

Membro
  • Registro em

  • Última visita

Tudo que Rusherzin postou

  1. Não testei esse código, mas fiz rapidinho aqui no site mesmo: local cfg = { -- vocs id qtd id qtd [1] = {{4,8}, {{2430, 1}, {2380, 1}}}, [2] = {{3,7}, {{2173, 1}, {2380, 1}}}, [3] = {{1,5}, {{2189, 1}, {2380, 1}}}, [4] = {{2,6}, {{8857, 1}, {7380, 5}}} } function onUse(cid, item) local voc = getPlayerVocation(cid) if getPlayerStorageValue(cid, 38493) < 1 then for i,v in ipairs(cfg) do if voc == v[1][1] or voc == v[1][2] then for p=1, #v[2] do doPlayerAddItem(cid, v[2][p][1], v[2][p][2]) end doPlayerSendTextMessage(cid, 25, "Congratulations!!") doPlayerSetStorageValue(cid, 38493, 1) end end else doPlayerSendCancel(cid, "It's empty.") end return true end Adicionei ao código uma parte que tu pode adicionar a quantidade de cada item. Se não entender como configurar o, só perguntar aqui, mas eu comentei para que ficasse mais fácil de entender a tabela.
  2. Tenta assim. Dá para usar o math.random numa boa sim. function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) if isPlayer(cid) == true then if (getPlayerSlotItem(cid, 9).itemid == 11387) then if (math.random(1, 100) >= 51) then pos = getCreaturePos(cid) doCreatureSetDropLoot(cid, false) doPlayerSetLossPercent(cid, PLAYERLOSS_SKILLS, 0) doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 0) doPlayerSetLossPercent(cid, PLAYERLOSS_MANA, 0) doSendMagicEffect(pos, 49) end end end return true end
  3. Eu gostaria de ajudar, sempre quis fazer parte de um mas nunca soube por onde começar.
  4. O código-fonte é a source mesmo. Tem com passar o arquivo SQL que está usando?
  5. Tem um script executando essa query (npc, talkaction..) ou é algo na source mesmo? Realmente estranho a query não conter "Leader" e estar dando esse erro, se tiver o código-fonte será mais fácil de resolver o erro.
  6. Rusherzin postou uma resposta no tópico em Suporte Tibia OTServer
    Posta o script da spell.
  7. Rusherzin postou uma resposta no tópico em Suporte Tibia OTServer
    Qual a versão do tfs?
  8. Rusherzin postou uma resposta no tópico em Suporte Tibia OTServer
    Executa essas queries na aba SQL do teu PhpMyAdmin. ALTER TABLE `player_items` ADD `serial` VARCHAR (50) NOT NULL; ALTER TABLE `players` ADD `broadcasting` INT(11) DEFAULT 0;
  9. Acredito que seja só usar essa tag no item: <attribute key="absorbPercentAll" value="5"/>
  10. É, o problema é nas stages. Posta o arquivo stages.xml e o serverinfo.php completo.
  11. Tentou com db.executeQuery? Se não der certo, tenta botar db.getResult, não é o mais indicado a se fazer, mas acredito que vá editar o banco de dados anyway.
  12. Acho que esse erro é na parte de mostrar as stages, mas posta as linhas 40~50 do arquivo para termos certeza do que é.
  13. Rusherzin postou uma resposta no tópico em Suporte Tibia OTServer
    Ah, sim, entendi. Qual script que tu achou? Posta ele aí para vermos se é possível adaptá-lo.
  14. Rusherzin postou uma resposta no tópico em Suporte Tibia OTServer
    Não é só botar true no houseNeedPremium do config.lua?
  15. Já tentou deixar o ip fixo e entrar usando o 127.0.0.1?
  16. Rusherzin postou uma resposta no tópico em Suporte Tibia OTServer
    Tenta algo assim (não testei): function onAdvance(player, skill) if skill == SKILL_LEVEL and player:isPlayer() then if player:getLevel() > 600 then player:addExperience(3564169800 - player:getExperience()) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, 'Max level is 600!') end end return true end Só uma observação, não sei qual é a função para pegar a experiência necessária para certo level nessa versão do TFS, então peguei a exp 3564169800 (level 600) no site do Tibia e adicionei manualmente.
  17. Não clicou com o botão direito e marcou a opção "buy with backpacks"? Essa opção vende itens dentro de uma backpack (que custa 20 gold coins), é só clicar com botão direito e clicar em "buy with no backpacks".
  18. Rusherzin postou uma resposta no tópico em Suporte Tibia OTServer
    Acha o que o erro é que tu estás fechando a tag duas vezes. Em xml, isso: <item id="14767" article="a" name="Woman Decorative"/> É equivalente a isso: <item id="14767" article="a" name="Woman Decorative"> </item> Então, ou tu fechas na própria linha com uma barra "/" ou tu fechas com </item>. Creio que a solução mais prática seja assim: <item id="14507" article="a" name="new big wooden table"/> <item id="14767" article="a" name="Woman Decorative"/> <item id="14768" article="a" name="Dark Decorative"/> <item id="14769" article="a" name="Skier Decorative"/>
  19. Cara, creio que o erro seja tu ter botado "1" como nome da variável. Nomes de variáveis não podem começar com números.
  20. O erro não ficou "diferente" depois de trocar para true? Ele deveria indicar qual coluna está faltando.
  21. Está deixando o id igual a 0? Se sim, pode ser isso, tenta botar algum outro id.
  22. CREATE TABLE "z_ots_guildcomunication" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" VARCHAR(255) NOT NULL, "type" VARCHAR(255) NOT NULL, "action" VARCHAR(255) NOT NULL, "param1" VARCHAR(255) NOT NULL, "param2" VARCHAR(255) NOT NULL, "param3" VARCHAR(255) NOT NULL, "param4" VARCHAR(255) NOT NULL, "param5" VARCHAR(255) NOT NULL, "param6" VARCHAR(255) NOT NULL, "param7" VARCHAR(255) NOT NULL, "delete_it" INTEGER(2) NOT NULL DEFAULT '1' )
  23. Coloque isso no config.php. (e configure de acordo com os dias da semana e a hora do evento) Mon, Tue, Wed, Thu, Fri, Sat, Sun são Segunda, Terça, Quarta, Quinta, Sexta, Sábado e Domingo, respectivamente. $config['site']['event_count'] = array("CTF Event" => array("Mon,Tue,Wed,Thu,Fri,Sat,Sun", "13:08"), "Battlefield Event" => array("Tue,Wed,Thu,Fri,Sat,Sun", "16:18"), "Zombie Event" => array("Tue,Wed,Thu,Fri,Sat,Sun", "16:50"), "Snowball Event" => array("Tue,Wed,Thu,Fri,Sat,Sun", "17:50") ); E no layout.php, no local dos widgets, coloque isso: <script> var _0x407d=["\x66\x6C\x6F\x6F\x72","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x63\x6F\x75\x6E\x74\x64\x6F\x77\x6E","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x30","\x3A","\x65\x76\x65\x6E\x74\x43\x6F\x75\x6E\x74\x28","\x2C\x20\x27","\x27\x29","\x45\x76\x65\x6E\x74\x20\x4F\x70\x65\x6E\x65\x64\x2E"];function eventCount(_0x473dx2,_0x473dx3){var _0x473dx4;var _0x473dx5=_0x473dx2- 1;var _0x473dx6=_0x473dx3;var _0x473dx7=Math[_0x407d[0]](_0x473dx5/ 60/ 60);var _0x473dx8=Math[_0x407d[0]]((_0x473dx5- _0x473dx7* 3600)/ 60);var _0x473dx9=Math[_0x407d[0]]((_0x473dx5- (_0x473dx8* 60)- (_0x473dx7* 3600)));if(_0x473dx5> 0){document[_0x407d[3]](_0x407d[2]+ _0x473dx6)[_0x407d[1]]= (_0x473dx7< 10?_0x407d[4]+ _0x473dx7:_0x473dx7)+ _0x407d[5]+ (_0x473dx8< 10?_0x407d[4]+ _0x473dx8:_0x473dx8)+ _0x407d[5]+ (_0x473dx9< 10?_0x407d[4]+ _0x473dx9:_0x473dx9);_0x473dx4= setTimeout(_0x407d[6]+ _0x473dx5+ _0x407d[7]+ _0x473dx6+ _0x407d[8],1000)}else {document[_0x407d[3]](_0x407d[2]+ _0x473dx6)[_0x407d[1]]= _0x407d[9];cleanTimeOut(_0x473dx4)}} </script> <div id="NetworksBox" class="Themebox" style="background-image:url(<?PHP echo $layout_name;?>/images/themeboxes/events.png);"> <?php echo '<div style="padding-top:40px;">'; foreach($config['site']['event_count'] as $key => $datearray){ $dates = explode(",", $datearray[0]); $datesave = array(); $i=0; foreach($dates as $date){ if(in_array(date("D", strtotime("now")), $dates)){ if(date("H:i", strtotime("now")) > $datearray[1]){ $datesave[$i] = strtotime("next ".$date.$datearray[1])-time(); $i++; } else{ $datesave[0] = strtotime(date("Y-m-d", time())." ".$datearray[1]) - time(); } } else { $datesave[$i] = strtotime("next ".$date.$datearray[1])-time(); $i++; } } echo '<center><div style="font-size:14px;"><b>'.$key.'</b></div><div style="font-size:14px;" id="countdown'.$key.'"></div>'; echo "<script>eventCount(".min($datesave).",'".$key."')</script>"; } echo '</center></div>'; ?> <div class="Bottom" style="background-image:url(<?PHP echo $layout_name; ?>/images/general/box-bottom.gif);"></div> </div> A imagem que usei foi essa que está abaixo. Coloque-a em layouts/images/themeboxes/.
  24. Okay, farei amanhã, não prometo nada idêntico ou perfeito, mas funcional.
  25. Esqueci de postar o script que fiz. Bom, não é nada complexo ou bem-feito, mas é um começo. Se tiver algumas ideias de magia, eu posso fazer algo mais elaborado. Coloque essas duas funções no final do arquivo lib/050-function.lua. function getNextTiles(playerPos) local sx = {-1, -1, 0, 1, 1, 1, 0, -1} local sy = {0, 1, 1, 1, 0, -1, -1, -1} local positions = {} for i=1, #sx do local positiontable = {x=playerPos.x+sx[i], y=playerPos.y+sy[i], z=playerPos.z} table.insert(positions, positiontable) end return positions end function aroundEffect(time, mindmg, maxdmg, effect, const, i, cid) local table = getNextTiles(getCreaturePosition(cid)) local lastpos = (tonumber(i) == 1) and table[#table] or table[i-1] if (i<=8) then local thing = getThingfromPos({x=table[i].x, y=table[i].y, z=table[i].z, stackpos=253}) doSendDistanceShoot(lastpos, table[i], effect) doSendMagicEffect(table[i], const) if (thing.itemid > 0) then local dmg = math.abs(math.random(mindmg, maxdmg)) doCreatureAddHealth(thing.uid, -dmg) doSendAnimatedText(table[i], "-"..dmg, 180) end lastpos = table[i] return addEvent(aroundEffect, time, time, mindmg, maxdmg, effect, const, i+1, cid) else return false end end E no arquivo da spell ficaria basicamente assim: function onCastSpell(cid, var) aroundEffect(1, 100, 500, 3, CONST_ME_FIREATTACK, 1, cid) end Para configurar é só editar os parâmetros: aroundEffect(time, mindmg, maxdmg, effect, const, i, cid) time = tempo entre cada efeito da magia em milisegundos (1000 = 1 segundo) (esse tempo multiplicado por 8 vai ser o tempo de execução da magia) mindmg = dano mínimo maxdmg = dano máximo effect = o efeito missile que será usado const = o segundo efeito (pode encontrar uma lista deles em lib/000-constant.lua) i = coloca sempre 1 (coloquei isso antes para outra parte da ideia) cid = deixa cid também

Informação Importante

Confirmação de Termo