Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 03/21/16 em todas áreas
-
Já ia corrigir, mas o kawoszin foi mais rapido Agora vai funfar sussa.2 pontos
-
Sistema de EXAUST
Spring Trap e um outro reagiu a Yan Liima por uma questão
Tipo... Peguei o item, dei use nele ai fica usando por 2 horas certo? depois dessas 2 horas só poderia usar novamente depois de 24 horas? Ok vê se pelomenos ta funcionando tudo certo este que te mandei... Vo cagar aqui e tomar banho dar um saidinha e já volto (lanche fez mal) hasuhasuhasuha Tenta assim: Se não der quando voltar resolvo ^^2 pontos -
Ué não seria após o jogador usar ele só iria usar depois de 24 horas? Se for está aqui: function onUse(cid, item, frompos, item2, topos) local dolls = { [2344] = {pet = "Mewtwo"}, [2139] = {pet = "Mew"}, } local go = dolls[item.itemid] local summon = getCreatureSummons(cid) local storage = 311283 -- Storage para dar exhausted --------------------------------------------------- if #summon >= 1 then for _, pid in ipairs(summon) do doRemoveCreature(pid) doCreatureSay(cid, "Can go rest ["..go.pet.."]", TALKTYPE_ORANGE_1) end return true end if getPlayerStorageValue(cid, storage) > os.time() then return doPlayerSendCancel(cid, "Você já usou este item hoje, espere " .. getPlayerStorageValue(cid, storage) - os.time() .. " horas para poder usar de novo.") end doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid))) doCreatureSay(cid, "Let battle ["..go.pet.."]", TALKTYPE_ORANGE_1) setPlayerStorageValue(cid, storage, os.time()+param 24*60*60) -- tempo em segundos. return true end Eu sempre ajudo a galera com exhausted, sempre uso a mesma tag, da uma olhada no meu perfil que tu vai ver vários. Era só adaptar pro seu rsrs2 pontos
-
Os erros devem estar acontecendo pois o linux é case sensitive: O que ocorre é que o executável procura por um arquivo ou monstro chamado exemplo, mas ele foi feito com o nome Exemplo, no windows ambos são os mesmo arquivos, mas no linux são arquivos totalmente diferentes. Para resolver basta ver como o monstro está sendo chamado no caso Monster e renomear o arquivo que deve estar escrito monster ou algo parecido para Monster.2 pontos
-
Nova seção: Escola de Scripting LUA
AngellGreen reagiu a Caronte por um tópico no fórum
Olá EkzTibianos, tenho o prazer de informar que estarei criando conteúdos para uma nova seção! Aulas de Scripting, e conto muito com a sua presença. Se VOCÊ quer aprender LUA de um jeito fácil e descomplicado, junte-se a nós, e venha ver as aulas que vão lhe ensinar a fazer scripts do nível de quest à sistemas bem desenvolvidos. Com a minha ajuda, e talvez a ajuda de membros e equipe, vamos nos prontificar à criar um espaço de suporte na própria seção de aprendizado, para que suas dúvidas em relação à scripting sejam tiradas rápidamente. As aulas irão explicar conteúdos em etapas, cada aula antecessora será uma base para a sucessora, já tenho rascunho de conteúdos da Aula-[0], que irá trabalhar com a velha e chata lógica de programação (extremamente necessária - porém de um jeito diferente) e alguns termos que serão utilizados posteriormente. Também contaremos com Deveres de casa, para que possam por em prática o que aprenderam na aula atual, esses deveres irão render pontos para quem cumprir com sagacidade, que servirão para outra novidade que ainda virá. Estou esperando o feedback de vocês ansiosamente neste tópico, eu vou gostar muito caso tenha uma repercussão boa e que possa ajudar o máximo de pessoas possíveis...1 ponto -
[Poke Tournament] Show off sprites
Sexyboyy reagiu a PokeTournament por um tópico no fórum
Ola galera nesse topico irei mostrar alguns sprites e gifs do meu projeto Poke Tournament facebook Machop Ryu o proximo pokemon a ser adicionado será o cubone tauros skull o que acham dele? "depois faço uma gif" NOVO Squirtle Rafael remake Koffing e suas principais skills clefairy remake Eevee1 ponto -
T1Z1 - Exposição de sprites e sujestões
Administrador reagiu a zouk00 por um tópico no fórum
Olá pessoas, eu serei seu anfitrião essa noite :cool: Não sei se alguns de vocês me conhecem mas já trouxe bastante servidor de WoDBO e PokeTibia antigamente, meu nome era "CrazzyMaster". Juntamente com "Bianco" nós faremos história. Enfim, eu sempre curti jogos de sobrevivência apocalipse, então resolvi voltar depois de tanto tempo e abrir um servidor totalmente sério e dedicado. "O que terá no servidor?" Um servidor de sobrevivência na plataforma tfs é bem complexo, você pode fazer várias coisas, no momento estamos colocando: |Sistema de vasculhar - Lixo, entulhos, e mega drops de alguns monstros| |Sistema de tiros - os tiros serão por Target como sempre forão| |Sistema de montarias e veiculos - as montarias serão cavalos, e os veiculos serão carros, motos, caminhões, etc| |Sistema de fome e sede - estou tentando ao maximo adaptar esse sistema ao servidor| |Sistema de machucados/ferimentos - se você for atacado e se machucara terá que ter bandagens nas mãos, caso contrario irá sangrar| "Qual a previsão para ficar online?" Ainda é um mistério, mas o quanto antes possível. "Será um servidor pay to win?" Certamente não, o servidor contara sim com sua loja de itens e sistema vip, mas, a diferença vai ser variada, armas pouco mais fortes, vips terão acesso há area vip através de comando, vips poderão viajar pelo mapa com veiculos aquáticos ou através dos NPC's de viagem em cada final de mapa. Vips terão acesso a carros modificados. Deixem dúvidas e sujestões, abaixo deixarei um tópico de cada sprite nova que eu fizer. - SPRITES MODIFICADAS - ANTIGA - NOVA -1 ponto -
Use e Troque
fawkz12 reagiu a luizmachado1 por uma questão
Tag = } <action itemid="1955" event="script" value="Teste.lua"/>1 ponto -
Desculpe erro bobo rsrsrs : function onUse(cid, item, frompos, item2, topos) local dolls = { [2344] = {pet = "Mewtwo"}, [2139] = {pet = "Mew"}, } local go = dolls[item.itemid] local summon = getCreatureSummons(cid) local storage = 311283 -- Storage para dar exhausted if #summon >= 1 then for _, pid in ipairs(summon) do doRemoveCreature(pid) doCreatureSay(cid, "Can go rest ["..go.pet.."]", TALKTYPE_ORANGE_1) end return true end if getPlayerStorageValue(cid, storage) > os.time() then return doPlayerSendCancel(cid, "Você já usou este item hoje, espere " .. math.floor((getPlayerStorageValue(cid, storage) - os.time()) / (60*60)) .. " horas para poder usar de novo.") end doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid))) doCreatureSay(cid, "Let battle ["..go.pet.."]", TALKTYPE_ORANGE_1) setPlayerStorageValue(cid, storage, os.time() + 24*60*60) -- tempo em segundos. return true end1 ponto
-
[DUVIDA] Sobre Substituir algumas sprites do spr e dat!
morphred reagiu a LLossavaro por uma questão
Pode substituir sim, fica até melhor, pois não fica com 1459943869MB a spr kkkkk1 ponto -
[DUVIDA] Sobre Substituir algumas sprites do spr e dat!
morphred reagiu a LLossavaro por uma questão
@morphred Não tem nenhum problema não, você pode fazer isso numa boa, ou "estender" seu cliente para adicionar novos looktypes, itens, effects, distance shoots1 ponto -
1 ponto
-
Erro usando RME para poketibia
Arranca Prega reagiu a SamueLGuedes por uma questão
Colocou o Items.otb do seu servidor na pasta 854 do RME? e também selecionou a versão 8.54 do RME.1 ponto -
Erro na distro
bernardes22 reagiu a Danihcv por uma questão
Putz, os erros estão dixendo que esses arquivos que ele tá tentando abrir, não existem. Só isso. shusauhsa Ou seja, os scripts de certos npc's e de certos monstros não estão no local (diretório) correto. E é o que eu tava suspeitando mesmo, o problema está no data pack. Ele está incompleto, creio eu. Tente pegar a pasta data de outro servidor tfs 0.4 e substitua no lugar da sua atual.1 ponto -
Troque seu script do StdModule.learnSpell por esse : function StdModule.learnSpell(cid, message, keywords, parameters, node) local npcHandler = parameters.npcHandler if npcHandler == nil then error("StdModule.learnSpell called without any npcHandler instance.") end if not npcHandler:isFocused(cid) then return false end local player = Player(cid) if parameters.premium and player:isPremium() then if player:hasLearnedSpell(parameters.spellName) then npcHandler:say("You already know this spell.", cid) elseif player:getLevel() < parameters.level then npcHandler:say("You need to obtain a level of " .. parameters.level .. " or higher to be able to learn " .. parameters.spellName .. ".", cid) elseif type(parameters.vocation) == "table" then if not isInArray(parameters.vocation, player:getVocation():getId()) then npcHandler:say("This spell is not for your vocation", cid) end elseif type(parameters.vocation) == "number" then if player:getVocation():getId() ~= parameters.vocation and player:getVocation():getId() ~= parameters.vocation + 4 and vocation ~= 9 then npcHandler:say("This spell is not for your vocation", cid) end elseif not player:removeMoney(parameters.price) then npcHandler:say("You do not have enough money, this spell costs " .. parameters.price .. " gold.", cid) else npcHandler:say("You have learned " .. parameters.spellName .. ".", cid) player:learnSpell(parameters.spellName) end else npcHandler:say("You need a premium account in order to buy " .. parameters.spellName .. ".", cid) end npcHandler:resetNpc(cid) return true end e em vocation coloque : vocation = {id_vocation, id_vocation, id_vocation}(Para mais de 1 vocação) ou vocation = id_vocation(Para apenas 1 vocação)1 ponto
-
Erro usando RME para poketibia
Arranca Prega reagiu a luizmachado1 por uma questão
rme extendido link:http://www.mediafire.com/download/fyklwfdwcawxepv/Remeres+Map+Editor+By+Senhor.rar1 ponto -
^^ o vip dele é por storage. local cash = 500 -- Dinero que se nesecita para hacer el broadcast (en gps) local levelneeded = 8 -- Level necesario para hacer el broadcast local lenght = 100 -- Maximo de caracteres del mensaje local messagesort = MESSAGE_STATUS_WARNING -- can be "MESSAGE_STATUS_WARNING" or "TALKTYPE_ORANGE_1" check your global.lua for more... local exhaustTime = 1 * 60 * 1000 -- tiempo de exausted entre cada mensaje (para cambiar mas minutos cambia el 4 por x cantidad de minutos) local exhaust = createConditionObject(CONDITION_EXHAUST) setConditionParam(exhaust, CONDITION_PARAM_TICKS, exhaustTime) function onSay(cid, words, param) if (getPlayerStorageValue(cid, 85258) - os.time()) <= 0 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Só vips podem usar esse comando!") return true end if getCreatureCondition(cid, CONDITION_EXHAUST) then doPlayerSendCancel(cid, "Lo siento, nesecitas esperas 1 minutos para mansar otro mensaje") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end local name = getPlayerName(cid) local level = getPlayerLevel(cid) if not isCreature(cid) then doPlayerSendCancel(cid, 'You haven\'t a target!') doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end if param == nil then doPlayerSendCancel(cid, 'Nesecitas escribir algo!') doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end if string.len(param) > lenght then doPlayerSendCancel(cid, 'No mas de ' .. lenght .. ' caracteres. ') doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end if level < levelneeded then doPlayerSendCancel(cid, 'Tu nesecitas ser level '..levelneeded..' para hacer un broadcast!') doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end if doPlayerRemoveMoney(cid, cash) then broadcastMessage( ''..name..' ['..level..'] dice: ' .. param .. '', messagesort) exhaustion.set(cid, storageValue,exhaustTime) doAddCondition(cid, exhaust) else doPlayerSendCancel(cid, 'Tu nesecitas '..cash..' gps para hacer un broadcast!') doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end return true end1 ponto
-
Erro na distro
bernardes22 reagiu a Danihcv por uma questão
Certo... Quando os erros começaram? Exatamente na 1° vez que vc usou no linux? Se sim, podem ser 2 coisas: deu algum bug na compilação ou essa distro ta com problemas (pra saber se é essa ultima opção, vc deve tentar usar outra distro [ou outro servidor]). Se não, o erro deu-se por alguma modificação que vc fez em algum arquivo do data pack. Mas, de qqr forma, poste prints dos erros que aparecem.1 ponto -
Erro na distro
bernardes22 reagiu a Danihcv por uma questão
@@bernardes22, vc está utilizando distros diferentes? Se sim, vc deve utilizar o data pack respectivo com cada distro. *explicação: **exemplo de distro diferentes: tfs 0.3.6 e tfs 0.4 **o que é data pack? Quando me refiro a data pack estou me referindo à pasta data do servidor e as dll's necessárias pra distro rodar. Tópico Movido Este tópico foi movido de "OTServ → Scripting → Downloads Scripts" para "OTServ → Scripting → Suporte Scripting".1 ponto -
!cp para VIPS
Furabio reagiu a luizmachado1 por uma questão
local config = { premium = true, -- se precisa ser premium account (true or false) battle = true -- se precisa estar sem battle (true). Se colocar false, poderá usar comando no meio de batalhas } local pos = {x = 1053, y = 1051, z = 7} -- posição pra onde sera teleportado function onSay(cid, words, param) if config.premium and not isPremium(cid) then doPlayerSendCancel(cid, "Only premium members.") doTeleportThing(cid, pos) return true end if config.battle and getCreatureCondition(cid, CONDITION_INFIGHT) then doPlayerSendCancel(cid, "Your pokemon can't concentrate during battles.") return true end <talkaction words="!cp" hide="yes" event="script" value="cp.lua"/>1 ponto -
Perfect nick system 100%
dragonittao reagiu a Strogman por um tópico no fórum
exclusividade xtibia porfavor não postar em outro forum system exclusivo para o xtibia Bom vi muito gente a traz desse sistema e, então resolvi fazer esse nick para ajudar a galera que quer sair do Lixo do pda e começar um projeto bom com os open source. para quem não sabe, nick system é um system muito popular na família dos poketibias, é um system que muda o nome/adiciona um apelido no personagem, muda o nome de exibição no client o nome que fica em cima do personagem no jogo. fulano: Gristony como essa função funciona? Gristony: exatamente igual a do pda! Em ProtocolGame.cpp em baixo de: void ProtocolGameAddShopItem(NetworkMessage_ptr msg, const ShopInfo item){ const ItemType& it = Itemitems[item.itemId]; msg->AddU16(it.clientId); if(it.isSplash() || it.isFluidContainer()) msg->AddByte(fluidMap[item.subType % 8]); else if(it.stackable || it.charges) msg->AddByte(item.subType); else msg->AddByte(0x01); msg->AddString(item.itemName); msg->AddU32(uint32_t(it.weight * 100)); msg->AddU32(item.buyPrice); msg->AddU32(item.sellPrice);} adicione: void ProtocolGamereloadCreature(const Creature* creature){ if(!canSee(creature)) return; // we are cheating the client in here! uint32_t stackpos = creature->getTile()->getClientIndexOfThing(player, creature); if(stackpos >= 10) return; NetworkMessage_ptr msg = getOutputBuffer(); if(msg) { TRACK_MESSAGE(msg); stdlist<uint32_t>iterator it = stdfind(knownCreatureList.begin(), knownCreatureList.end(), creature->getID()); if(it != knownCreatureList.end()) { RemoveTileItem(msg, creature->getPosition(), stackpos); msg->AddByte(0x6A); msg->AddPosition(creature->getPosition()); msg->AddByte(stackpos); AddCreature(msg, creature, false, creature->getID()); } else AddTileCreature(msg, creature->getPosition(), stackpos, creature); }}void ProtocolGamesendCreatureNick(const Creature* creature){ reloadCreature(creature);} Em ProtocolGame.h em baixo de: void sendQuestInfo(Quest* quest); adicione: void reloadCreature(const Creature* creature);void sendCreatureNick(const Creature* creature); Em Player.h em baixo de: void sendCreatureShield(const Creature* creature) {if(client) client->sendCreatureShield(creature);} adicione: void sendCreatureNick(const Creature* creature) {if(client) client->sendCreatureNick(creature);} Em Creature.cpp em baixo de: partyShield = SHIELD_NONE; adicione: Nick = ""; Em Creature.h em baixo de: virtual const Monster* getMonster() const {return NULL;} adicione: stdstring Nick; Luascript.cpp em baixo de: //doPlayerSendCancel(cid, text) lua_register(m_luaState, "doPlayerSendCancel", LuaScriptInterfaceluaDoPlayerSendCancel); adicione: //doCreatureSetNick(cid, nick) lua_register(m_luaState, "doCreatureSetNick", LuaScriptInterfaceluaDoCreatureSetNick); em baixo de: int32_t LuaScriptInterfaceluaDoPlayerSendCancel(lua_State* L){ //doPlayerSendCancel(cid, text) stdstring text = popString(L); ScriptEnviroment* env = getEnv(); if(const Player* player = env->getPlayerByUID(popNumber(L))) { player->sendCancel(text); lua_pushboolean(L, true); } else { errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushboolean(L, false); } return 1;} adicione: int32_t LuaScriptInterfaceluaDoCreatureSetNick(lua_State* L){ //doCreatureSetNick(cid, nick) ScriptEnviroment* env = getEnv(); stdstring nick = popString(L); Creature* creature = env->getCreatureByUID(popNumber(L)); if(creature) { SpectatorVec list; g_game.getSpectators(list, creature->getPosition()); Player* player = NULL; creature->Nick = nick; for(SpectatorVecconst_iterator it = list.begin(); it != list.end(); ++it) { if(player = (*it)->getPlayer()) { player->sendCreatureNick(creature); break; } } }else{ lua_pushnil(L); } return 1;} Em Luascript.h em baixo de: static int32_t luaDoRemoveItem(lua_State* L); adicione: static int32_t luaDoCreatureSetNick(lua_State* L); Em Protocolgame.cpp procure por: void ProtocolGameAddCreature(NetworkMessage_ptr msg, const Creature* creature, bool known, uint32_t remove){ if(!known) { em baixo de: msg->AddU32(creature->getID()); adicione: stdstring nick = creature->getName(); if (creature->Nick != "") nick = creature->Nick; substitua: msg->AddString(creature->getHideName() ? "" : creature->getName()); por: msg->AddString(creature->getHideName() ? "" : nick); Obs: compilar em rebuild all ou sem os arquivos .obj exemplo de uso: doCreatureSetNick(getCreatureSummons(cid)[1], "Gristony") Creditos Gristony façam bom uso do code pequenos grilos1 ponto -
Função onSpawn(cid) para TFS 0.3.6
Drakopoulos reagiu a Slicer por um tópico no fórum
eu tinha feito aki no serv q eu tinha começado do zero, mas parece q quando formatei o pc eu acabei salvando uma versao antiga das sources e dai n tenhu mais essa ediçao aki... mas se n me engano eu fiz assim... realmente n eh preciso checar se tem player por perto pra mandar os eventos quando o serv ta iniciando... entao o melhor jeito de fazer essa ediçao eh esse ae, pelo menos pra mim, executando soh o evento no proprio monstro... com isso, vai disparar o onSpawn... -em tese, n lembro se foi assim q fiz antes...-1 ponto -
1 ponto