
Solutions
-
Dwarfer's post in (Resolvido)Editar Jail System 0.3.6 8.54 was marked as the answerFiz um mod aqui, teste-o:
Configuração:
JAIL_SYS = { block_mana = true, -- 'true' para bloquear ganho de mana, 'false' para não bloquear prision_area = { -- área da prisão fromPos = {x = 1, y = 1, z = 6}, -- posição do canto superior esquerdo (caso a prisão possua andares diferentes, aqui é o de menor 'z') toPos = {x = 2, y = 2, z = 7} -- posição do canto inferior direito da área (caso a prisão possua andares diferentes, aqui é o de maior 'z') }, max_security_skulls = {SKULL_RED, SKULL_BLACK}, -- caso o player tenha essas skulls, irão para as 'celas de segurança máxima' jails_enter_positions = { ["NORMAL"] = { -- posições das celas normais [1] = {x = 1, y = 1, z = 1}, [2] = {x = 1, y = 1, z = 1}, [3] = {x = 1, y = 1, z = 1}, }, ["MAX_SECURITY"] = { -- posições das celas de segurança máxima [1] = {x = 1, y = 1, z = 1}, [2] = {x = 1, y = 1, z = 1}, [3] = {x = 1, y = 1, z = 1}, }, }, storages = {jailtime = 76530} -- só modifique se necessário }
Na linha:
<globalevent name="JailBlockMana" interval="10000" event="script"><![CDATA[
Edite o 10000 (10 segundos) para o intervalo de tempo que todos da prisão terão a mana igual a 0.
Para utilizar o comando:
!jail Nome do player,tempo preso em minutos,levels perdidos Ex.: !jail Dwarfer,2,1 <- Preso por 2 minutos e perderá 1 level
-
Dwarfer's post in (Resolvido)Ajuda no desenvolvimento de uma script was marked as the answer@DboExplorer
Caso se trate de TFS 0.4, fiz um exemplo simples para você. Como não sei onde está esse item e como você está fazendo para pegar suas informações, coloquei o exemplo da talkaction como verificando os atributos do item na mão esquerda do player.
Primeiramente, adicione as seguintes funções na sua lib:
Para a action, você pode fazer algo como:
Para a talkaction:
Ao falar !addon 1, trocará para o primeiro outfit adicionado ao item lá na action, !addon 2 o segundo e por aí vai. Como disse, fiz uma forma simplificada, a partir disso você consegue implementá-lo.
-
Dwarfer's post in (Resolvido)Juntar duas actions was marked as the answerlocal t = {[1499] = function(item) doSendMagicEffect(getThingPos(item.uid), CONST_ME_POFF) doRemoveItem(item.uid) end, [2782] = function(item) doTransformItem(item.uid, 2781) doDecayItem(item.uid) end} function onUse(cid, item, fromPosition, itemEx, toPosition) local x = t[itemEx.itemid] if x then x(itemEx) return true end return destroyItem(cid, itemEx, toPosition) end
-
Dwarfer's post in (Resolvido)Estou perdido com == true | == false was marked as the answerif getPlayerStorageValue(cid, 40300) == -1 then setPlayerStorageValue(cid, 40300, 1) else doPlayerSendTextMessage(cid, 18, "Você já possui o storage igual a 1") end
Não tem complicação nenhuma. É só armazenar o VALOR do storage e depois verificar se o VALOR corresponde ao retornado por getPlayerStorageValue().
Apesar de ser desnecessário fazer com true ou false, como não sei com que finalidade você tá fazendo isso, você poderia fazer algo assim:
if getBooleanFromString(getPlayerStorageValue(cid, 40300)) == true then doPlayerSendTextMessage(cid, 18, "Verdadeiro") else doPlayerSendTextMessage(cid, 18, "Falso") setPlayerStorageValue(cid, 40300, "true") end Ou somente verificar a própria string armazenada (qualquer string):
if getPlayerStorageValue(cid, 40300) == "true" then doPlayerSendTextMessage(cid, 18, "Verdadeiro") else doPlayerSendTextMessage(cid, 18, "Falso") setPlayerStorageValue(cid, 40300, "true") end
-
Dwarfer's post in (Resolvido)ajuda em sistema (postarei aqui no fórum) was marked as the answerTá bem bagunçado isso aí carinha, na verdade não ia funcionar nada rsrsr. Testa assim:
lib
Em creaturescripts/scripts, crie um arquivo.lua:
No login.lua, registre o evento:
player:registerEvent("tptile_modal")
No creaturescripts.xml, adicione a tag:
<event type="modalwindow" name="tptile_modal" script="NOMEDOARQUIVO.lua"/> Em movements/scripts, crie um arquivo.lua (ou substitua pelo que tem dentro do arquivo que você já possui):
No movements.xml, adicione a tag:
<movevent event="StepIn" actionid="ACTION_ID_DO_PISO" script="NOMEDOARQUIVO.lua" />
-
Dwarfer's post in (Resolvido)Usar item e adicionar ppoints was marked as the answerEm actions/scripts crie um arquivo.lua:
No actions.xml: <action itemid="ID_DO_ITEM" script="NOMEDOARQUIVO.lua" />
-
Dwarfer's post in (Resolvido)max door Level was marked as the answerPorta
Em actions/scripts, crie um arquivo.lua:
No actions.xml: <action actionid="ACTION_ID_DA_PORTA" script="NOMEDOARQUIVO.lua" />
Tp
Em movements/scripts, crie um arquivo.lua:
No movements.xml: <movevent type="StepIn" actionid="ACTION_ID_DO_TELEPORT" event="script" value="NOMEDOARQUIVO.lua"/>
Npc
Um arquivo xml como base:
<?xml version="1.0" encoding="UTF-8"?> <npc name="Dwarfer" script="NOMEDOARQUIVO.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="66"/> </npc>
-
Dwarfer's post in (Resolvido)Pedido Teleporte por comando para OTserver 10.98 was marked as the answerEm talkactions/scripts crie um arquivo.lua:
No talkactions.xml, adicione a tag: <talkaction words="/ir" separator=" " script="NOMEDOARQUIVO.lua" />
-
Dwarfer's post in (Resolvido)Alavanca potion. was marked as the answerlocal config = { money = 10000, -- Dinheiro que vai custar item = 7591, -- ID do item que vai vender count = 100, -- Quantidade } function onUse(cid, item, fromPosition, itemEx, toPosition) local p = getPlayerPosition(cid) if getPlayerFreeCap(cid) < getItemWeightById(config.item, config.count) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "Você não tem cap suficiente para ".. config.count.." "..getItemNameById(config.item)..".") doSendMagicEffect(p, CONST_ME_POFF) return true end if not doPlayerRemoveMoney(cid, config.money) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "Você não possui "..config.money.. " gold coins.") doSendMagicEffect(p, CONST_ME_POFF) return true end doPlayerAddItem(cid, config.item, config.count) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você comprou "..config.count.." "..getItemNameById(config.item)..".") doSendAnimatedText(toPosition, "SUCCESS!", COLOR_TEAL) doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true end
-
Dwarfer's post in (Resolvido)[Pedido] Double Fishing was marked as the answerItem que dá o bônus
Em actions/scripts, crie um arquivo.lua:
Em actions/scripts, adicione a tag: <action itemid="ID_DO_ITEM" script="NOMEDOARQUIVO.lua" />
-
Dwarfer's post in (Resolvido)Npc que summona monstro em troca de item was marked as the answerEm npcs/scripts crie um arquivo.lua:
Um arquivo.xml como base:
<?xml version="1.0" encoding="UTF-8"?> <npc name="Dwarfer" script="NOMEDOARQUIVO.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="66"/> </npc>
-
Dwarfer's post in (Resolvido)Modificar um script pra TFS 1.2 was marked as the answer@Jobs
-
Dwarfer's post in (Resolvido)[Ajuda] Action Quest was marked as the answerComo assim não precisa estar na mão? Você colocou no tópico que "o Player clicka na porta com o XXX Item na mão", da próxima vez tente deixar seu pedido bem detalhado. Fiz a alteração para verificar se o player possui o item, independente de estar na mão.
Com relação ao erro, se você configurar as posições corretamente, vai funcionar.
-
Dwarfer's post in (Resolvido)[Ajuda] Desert Quest Bugada was marked as the answer@Joaoafp
-
Dwarfer's post in (Resolvido)Adaptar script NPC Reborn was marked as the answer@DiigooMix Ajeita esse script como coloquei na tabela abaixo, vai eliminar esse monte de elseif.
local t = { [8] = {level = 300, reborn = {1,10,9}}, -- [id da vocação] = {level = 300, reborn = {parâmetros da função doReborn}}
-
Dwarfer's post in (Resolvido)Porta checa área was marked as the answerEm actions/scripts, crie um arquivo.lua:
Em actions.xml: <action uniqueid="UNIQUE_ID_DA_PORTA" event="script" value="NOMEDOARQUIVO.lua"/>
-
Dwarfer's post in (Resolvido)Magia por Posição. was marked as the answerNão tirou dano porque você não tinha dito que era pra tirar. Enfim:
-
Dwarfer's post in (Resolvido)[ajuda] Por storage e level na action was marked as the answer
-
Dwarfer's post in (Resolvido)Porta premium was marked as the answer
-
Dwarfer's post in (Resolvido)Converter IP gerado no log.txt was marked as the answerlocal pname = getPlayerNameByGUID(getPlayerGUID(cid)) local pip = doConvertIntegerToIp(getPlayerIp(cid)) local file = io.open('data/logs/'.. pname ..'.txt','a') file:write("Dia: "..os.date("%d").."/"..os.date("%m").."/"..os.date("%Y").." Hora: "..os.date("%X").."\n".. pname .." Através do Ip: " .. pip .. "\nusou o comando >> ".. words .." ".. param .."\n\n") file:close()
-
Dwarfer's post in (Resolvido)spell criar items was marked as the answerlocal items = {{2160,1},{2158,2},{2148,4}} --{id, quantidade} function onCastSpell(cid, var) local r = math.random(1, #items) local i, c = items[r][1], items[r][2] if not isItemStackable(i) then for k = 1, c do doPlayerAddItem(cid, i, 1) end else doPlayerAddItem(cid, i, c) end doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_BLUE) return true end
-
Dwarfer's post in (Resolvido)[PEDIDO] Efeito ao equipar item. was marked as the answerNão testei, qualquer coisa fala aí. Em movements/scripts, crie um arquivo.lua:
No movements.xml adicione as tags para cada item:
<movevent type="Equip" itemid="1111" slot="head" event="script" value="NOMEDOARQUIVO.lua"/> <movevent type="Equip" itemid="2222" slot="armor" event="script" value="NOMEDOARQUIVO.lua"/> <movevent type="Equip" itemid="3333" slot="legs" event="script" value="NOMEDOARQUIVO.lua"/> <movevent type="Equip" itemid="4444" slot="feet" event="script" value="NOMEDOARQUIVO.lua"/>
-
Dwarfer's post in (Resolvido)Selar monstro was marked as the answer@xMateuss Não tinha colocado, porque você não disse pra colocar. Apenas falou sobre remover o papel kk
-
Dwarfer's post in (Resolvido)Erro comando !saga was marked as the answer
-
Dwarfer's post in (Resolvido)[NPC] Barco com Passe was marked as the answerSupondo ser a versão correta:
Em npcs/scripts, crie um arquivo:
ilhadofogo.lua
Um xml para o npc como base, edite como quiser:
<?xml version="1.0" encoding="UTF-8"?> <npc name="Traveller" script="ilhadofogo.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="66"/> </npc>