Ir para conteúdo
  • Cadastre-se

Lyu

Membro
  • Total de itens

    459
  • Registro em

  • Última visita

  • Dias Ganhos

    18

Tudo que Lyu postou

  1. OTX é bacana! otxserver2 baseado em TFS 0.3.7 otxserver3 baseado em TFS 1.3
  2. Vamos lá irmão, preciso que você faça os testes e me informe se ocorrerá tudo bem. primeiramente vamos criar uma lib em data/libs com o nome lib-castexp.lua. data/lib/lib-castexp.lua : CASTEXP = {} CASTEXP_PERCENT = 0.5 CASTEXP_NEEDTIME = 20 -- seconds agora precisamos carregar essa biblioteca a partir do arquivo lib.lua que é carregado por global.lua. data/lib/lib.lua : dofile('data/lib/lib-castexp.lua') sabe as talkactions !cast e !stopcast? Então, iremos dar uma mexidinha nas mesmas. Irei disponibilizar ambos já mexidos porque acho que é o
  3. vc esqueceu de renomear o arquivo lua para transformwall.lua, verifica ai
  4. está faltando bibliotecas. Qual tfs está tentando compilar?
  5. Introdução : Muta um jogador no canal HELP por meio de um comando. game.cpp Procure por Game::playerSay, abaixo de player->setIdleTime(0) adicione : if (channelId == CHANNEL_HELP) { std::string helpmute = "0"; player->getStorage("455010", helpmute); time_t now = time(NULL); time_t seconds = atoi(helpmute.c_str()) - now; if (seconds > 0) { std::stringstream sec; sec << "You are muted for " << seconds << " seconds on this channel."; player->sendTextMessage(MSG_STATUS_SMALL, sec.str()); return false;
  6. Bom, se o intuito principal for apenas criar essa animação a partir da troca de outfits A e B, acho que esse caminho é suficiente xD Escolhi esse caminho por ser mais seguro, onde o personagem poderá deslogar e logar tranquilamente que já logará com a animação. Só remove a animação se remover o anel mesmo.
  7. o tempo é padrão do próprio evento onThink. Esse evento é executado a cada 1 segundo, no caso, o script.
  8. Tem como sim, mas isso é feito na source e requer uma baita modificada.
  9. verifique a vocação dos players. Na sua tabela de configuração só vejo suporte a vocações de 0 a 4, lembrando que existem vocações como Royal Paladin, Elite Knight etc, que vão de 5 a 8.
  10. Acho que não. Experimente mover a a lib do Upgrade para data/actions/lib, já que a única interface usada é Action Interface. O seu problema é um retorno nulo na linha 60, o que é estranhíssimo. Talvez esteja tendo problemas ao carregar as libs.
  11. Fiz aqui rapidinho, utilizei onThink por ser um método mais seguro e permitir reLogin sem interferir na troca de outfits. data/creaturescripts/scripts/outfitring.lua local config = { ring = 2205, outfits = { {lookType = 128, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookAddons = 3}, {lookType = 129, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookAddons = 3} } } function onThink(cid, interval) if getPlayerSlotItem(cid, CONST_SLOT_RING).itemid == config.ring then doSetCreatureOutfit(cid, config.out
  12. A forma mais simplificada de fazer isso, é retornando falso no evento onChangeOutfit e dando a outfit relacionada à vocação ao criar o personagem. Assim é meio que um bloqueio para evitar que mudem a outfit de seus personagens. o evento onChangeOutift você encontra no arquivo data/events/scripts/creature.lua.
  13. Fiz aqui rapidinho, testei e aparentemente está OK. Teste e me informe caso houver erros: transformwall.lua local walls = {1058, 9119, 10180, 1039} function onUse(cid, item, _, itemEx) local tmp = {} for _, v in ipairs(walls) do tmp[v] = #walls == _ and '_last' or walls[_ + 1] end local wall = tmp[itemEx.itemid] if not wall then return false end if wall == '_last' then doRemoveItem(itemEx.uid, 1) else doTransformItem(itemEx.uid, tmp[itemEx.itemid]) end return true end actions.xml <action itemid="id_do_item" event="script" value="transformwa
  14. É um bug no código. Altere a encoding para ANSI que aparecerá uma caractere especial na linha 732 do arquivo 050-function.lua; delete essa caractere.
  15. é um bug no código. Altera a encoding do arquivo para ANSI que irá aparecer na linha 1 uma caractere especial. Delete-a.
  16. tenta ai: local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 39) setAttackFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -2.2, -150, -2.5, 1) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 39) setAttackFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -2.2, -150, -2.5, 1) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(combat3, COMBAT_PA
  17. haha pois é, eu particulamente não usaria, mas notei que tem gente que gosta, então.. rs
  18. precisa, mas não é bixo de 7 cabeças rsrs
  19. Fala clã, tudo bom? Então, vi esse tal emote spells em um servidor e decidi fazer, e também, compartilhá-lo com vocês ? O que é? É um código simpleszinho que possibilita players escolherem a cor da mensagem das spells por meio de comando, LARANJA ou AMARELO, como nas imagens abaixo: Vamos aos códigos.. abra game.cpp, na função playerSaySpell, procure por: if (result == TALKACTION_BREAK) { if (!g_config.getBoolean(ConfigManager::EMOTE_SPELLS)) { return internalCreatureSay(player, TALKTYPE_SAY, words, false); } else { return internalCreatureSay(pl
  20. function onUse (cid,item,frompos,item2,topos) pos = {x=67, y=515, z=7} pos2 = getPlayerPosition(cid) UID_DO_BAU = 33334 STORAGE_VALUE = 33334 ID_DO_PREMIO = 2505 ID_DO_PREMIO2 = 2506 ID_DO_PREMIO3 = 2522 ID_DO_PREMIO4 = 8923 ID_DO_PREMIO5 = 7886 ID_DO_PREMIO6 = 2157 if getPlayerLevel(cid) >= 1000 then if item.uid == 33334 then queststatus = getPlayerStorageValue(cid,STORAGE_VALUE) if queststatus == -1 then doTeleportThing(cid,pos) doPlayerSendTextMessage(cid,22,"Parabens,Você completou a Magnata Quest.") doPlayerAddItem(cid,2505,1) doPlayerAddItem(cid,2506,1) doPlaye
  21. tá dizendo que na sua tabela guilds, não existe coluna chamada checkdata, tem que criar uma coluna com esse nome.
  22. Very nice my friend, thank you for shared it ?
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo