
Tudo que Wise postou
-
(Resolvido)NoDamageParty
Não tem de quê. Disponha ;]
-
!Up, Mudar Vocation e de Roupa
Mais uma coisa, a nova vocação é uma promotion da vocação anterior? Se não for e se você puder, faça desse modo, a nova vocação como sendo uma promotion da vocação anterior do player. Assim simplificaria bastante, pois do jeito que você quer, seria desnecessário ter de configurar vários elementos em tabelas.
-
(Resolvido)NoDamageParty
Certo, tente desse modo: function onCombat(cid, target) if isPlayer(target) and isInParty(cid) and isInParty(target) then if getPlayerParty(target) == getPlayerParty(cid) or getPartyLeader(target) == cid then return false end end return true end
-
[Pedido] Poket
Não nesse caso, pois há 2 variações. Perceba que há outro bloco no else do escopo, ou seja, são 2 "modos" de executar a action e por isso a função teve de ser repetida. @ducb Veja abrindo o arquivo tibia.spr do seu client. Ou se não souber, use talkactions in game, como /x número do shoottype (que permitem que você os visualize).
-
Abrir npc com o clique.
O tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "OTServ → Suporte OTServ → Suporte de Scripts" Para: "OTServ → Suporte OTServ → Suporte de Programação"
-
!Up, Mudar Vocation e de Roupa
Sem problemas. Só um detalhe: Seria um efeito pra cada vocação, ou somente um único efeito para todas?
-
(Resolvido)[Pedido] Npc Teleport com Level
stranger.lua (data\npc\scripts): local level = 50 local pos = {x=123, y=456, z=7} local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if (not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid if (msgcontains(msg, 'teleport')) then talkState[talkUser] = 1 selfSay('I can teleport you, but you need at least level '..level..' to go. Are you sure you\'re ready?', cid) elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if (getPlayerLevel(cid) >= level) then doTeleportThing(cid, pos) doSendMagicEffect(pos, CONST_ME_TELEPORT) selfSay('Be careful!', cid) else talkState[talkUser] = 0 selfSay('I said! You need at least level '..level..' to be teleported. You\'re not ready.', cid) end elseif (msgcontains(msg, 'no') and talkState[talkUser] == 1) then talkState[talkUser] = 0 npcHandler:releaseFocus(cid) selfSay('Sure.', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Stranger.xml (data\npc): <npc name="Stranger" script="data/npc/scripts/stranger.lua" access="5" lookdir="1"> <health now="1000" max="1000"/> <look type="129" head="115" body="132" legs="114" feet="95" addons="0"/> <parameters> <parameter key="message_greet" value="Hey |PLAYERNAME|, I can {teleport} some mortals." /> </parameters> </npc>
-
(Resolvido)Setar Storage em Player Offline
@Frenesy Só faltou encerrar o parâmetro do metamétodo da função: db.executeQuery("INSERT `player_storage` SET `key` = 0000, 'value' = 1, WHERE `player_id` = " .. getPlayerGUID(cid) .. ";")
-
[Pedido] Spell de Meteoro
Amigo, o título do seu tópico estava inadequado. Sem oferecer nenhuma ideia do que ele se trata, poucos vão se interessar em te ajudar. Da próxima vez, crie um tópico com um título que descreva o assunto dele. • 2.3 - Use títulos e ícones adequados: Ao criar um novo tópico no fórum, dê a ele um título que esteja relacionado ao conteúdo do tópico. Títulos como "Ajudaaa!" ou "Entrem aqui!" só pioram as coisas: ninguém vai saber do que se trata, e menos pessoas irão entrar para olhar o que você postou e também evite de usar o CAPSLOCK ao criar seu título. Leia e se preciso releia as Regras Gerais do fórum.
-
(Resolvido)Problemas com Limite Effects
Conferindo aqui no fórum, vi que há esse conteúdo disponível. Pesquise um pouco mais da próxima vez, antes de postar. Onde aumentar o número de efeitos (créditos ao membro que respondeu no tópico mencionado).
-
Pedido comando !reset
Você provavelmente devia estar usando o segundo script, era pra ter feito uso do primeiro que eu postei. Mas, como você quer que tenha os resets como descrição no look, use estes códigos: levelreset.lua (data\talkactions\scripts): function onSay(cid) local time = 5 -- time to logout local lvl = {1000, 100} -- {minLevel, newLevel} local rstor = 78910 -- reset storage if getTileInfo(getThingPos(cid)).protection then if getPlayerLevel(cid) >= lvl[1] then setPlayerStorageValue(cid, rstor, getPlayerStorageValue(cid, rstor) + 1) db.executeQuery("UPDATE `players` SET `description` = ' [Resets: "..getPlayerStorageValue(cid, rstor).."]' WHERE `players`.`id`= "..getPlayerGUID(cid).."") db.executeQuery("UPDATE `players` SET `level`="..lvl[2]..",`experience`= "..getExperienceForLevel(lvl[2]).." WHERE `players`.`id`= "..getPlayerGUID(cid).."") doCreatureSetNoMove(cid, true) addEvent(doRemoveCreature, time * 1000, cid, true) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You will be logged out within '..time..' seconds.') else doPlayerSendCancel(cid, 'You need at least level '..lvl[1]..' to reset.') end else doPlayerSendCancel(cid, 'You can only reset within a protected zone.') end return true end Tag - talkactions.xml (data\talkactions\scripts): <talkaction words="!reset" event="script" value="levelreset.lua"/> noresets.lua (data\creaturescripts\scripts): function onLogin(cid) local rstor = 78910 -- reset storage if getPlayerStorageValue(cid, rstor) < 0 then setPlayerStorageValue(cid, rstor, 0) db.executeQuery("UPDATE `players` SET `description` = ' [Resets: 0]' WHERE `players`.`id`= "..getPlayerGUID(cid).."") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Please, log out and sign in again.') end return true end Tag - creaturescripts.xml (data\creaturescripts): <event type="login" name="NoResets" event="script" value="noresets.lua"/>
-
[Pedido] Poket
Não, lookType é algo totalmente diferente. Na tabela balls, em shoottype = n, você determina o número do distance effect que você quer em determinada ball.
-
Com sources tudo é possivel?
Nada é impossível. Uma prova disso é o Far Cry, um game sensacional, desenvolvido em Lua. Mas agora tendo em vista sobre o que o membro perguntou, faça das palavras do Orochi Elf, minhas palavras. Basta estar apto, a criatividade é o limite.
- (Resolvido)[Pedido] Castle
-
(Resolvido)NoDamageParty
Dá pra simplificar com um creature event combat, caso prefira: function onCombat(cid, target) if isPlayer(target) and isInParty(cid) and isInParty(target) and getPlayerParty(target) == getPlayerParty(cid) then return false end return true end
-
Pedido comando !reset
Pelo visto, não tem porquê acusar esse erro. Tente renomear o arquivo e a tag, só pra garantir que não esteja lendo um arquivo já existente que você talvez não tenha percebido.
-
Pedido Sprites de Pokemons
Amigo, o título do seu tópico estava inadequado. Sem oferecer nenhuma ideia do que ele se trata, dificilmente outros membros vão se interessar em te ajudar. Da próxima vez, crie um tópico com um título que descreva o assunto dele e, se possível, informe cada detalhe do motivo de você tê-lo criado. E não faça um tópico para ser respondido privadamente. Se você quer desse modo, então mande uma mensagem privada para alguém em específico te ajudar. Os tópicos de suporte devem servir à todos, de forma compartilhada, e não somente à você. • 2.3 - Use títulos e ícones adequados: Ao criar um novo tópico no fórum, dê a ele um título que esteja relacionado ao conteúdo do tópico. Títulos como "Ajudaaa!" ou "Entrem aqui!" só pioram as coisas: ninguém vai saber do que se trata, e menos pessoas irão entrar para olhar o que você postou e também evite de usar o CAPSLOCK ao criar seu título.
-
Erro script (passiva para player)
"Passiva"? Desculpe, mas o seu script não fez sentido pra mim. Explique o que você quer, que eu faço.
-
Pedido comando !reset
Poste o script do arquivo Lua que você criou.
-
Pedido comando !reset
Está indicando erros de estrutura. Você não está adicionando o script corretamente. Veja os meus códigos, não há esse tipo de erro:
-
Pedido comando !reset
Não, apenas isso mesmo. O erro que você citou indica que a parte inferior do script não foi copiada, já que diz faltar encerrar o callback. Senão ele não teria sido informado no distro.
-
Pedido comando !reset
Certo, mas cara: Esse erro indica que faltou encerrar o callback. Nos meus códigos, a estrutura está correta. Você provavelmente não copiou/não adicionou o script corretamente, refaça o processo.
-
!Up, Mudar Vocation e de Roupa
vocadvance.lua (data\creaturescripts\scripts): local t = { [1] = {2, 300, 456}, -- [vocationID] = {newVocationID, level, lookType} [2] = {3, 400, 567}, [3] = {4, 500, 678}, [4] = {5, 600, 789} } function onAdvance(cid, skill, oldLevel, newLevel) local v = t[getPlayerVocation(cid)] if v and newLevel == v[2] then doCreatureChangeOutfit(cid, {lookType = v[3]}) doPlayerSetVocation(cid, v[1]) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You\'ve received a new outfit.') end return true end Tag - creaturescripts.xml (data\creaturescripts): <event type="advance" name="VocAdvance" event="script" value="vocadvance.lua"/> Registre o creature event em login.lua (data\creaturescripts\scripts): registerCreatureEvent(cid, "VocAdvance")
-
Pedido comando !reset
Nada acontece? Nem mesmo algum erro? Bom, eu refiz de outro modo: function onSay(cid) local lvl = {1000, 100} -- {minLevel, newLevel} if getTileInfo(getThingPos(cid)).protection then if getPlayerLevel(cid) >= lvl[1] then doPlayerAddExperience(cid, -(getPlayerExperience(cid) - getExperienceForLevel(lvl[2]))) doSendMagicEffect(getThingPos(cid), CONST_ME_STUN) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You returned to the level '..lvl[2]) else doPlayerSendCancel(cid, 'You need at least level '..lvl[1]..' to reset.') end else doPlayerSendCancel(cid, 'You can only reset within a protected zone.') end return true end
-
PEDIDO SOFT VIP para tfs4.0
Amigo, só um detalhe sobre o título do seu tópico. TFS 4.0 não existe, seria 0.4. E como seria essa soft vip? Se o seu sistema de "vip" for por premium days, então apenas jogadores premium poderiam utilizar o item? Acrescente mais detalhes.