
Tudo que luangop postou
-
Saber qual comando a Staff usou
function onSay(cid, words, param, channel) local file = io.open('data/logs/logs.txt','a') file:write("Dia: "..os.date("%d").."/"..os.date("%m").."/"..os.date("%Y").." Hora: "..os.date("%X").." :::: ".. getPlayerNameByGUID(cid) .." usou o comando ".. words .."\n") file:close() if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end local t = string.explode(param, ",") local ret = RETURNVALUE_NOERROR local pos = getCreaturePosition(cid) local id = tonumber(t[1]) if(not id) then id = getItemIdByName(t[1], false) if(not id) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.") return true end end local amount = 100 if(t[2]) then amount = t[2] end local item = doCreateItemEx(id, amount) if(t[3] and getBooleanFromString(t[3])) then if(t[4] and getBooleanFromString(t[4])) then pos = getCreatureLookPosition(cid) end ret = doTileAddItemEx(pos, item) else ret = doPlayerAddItemEx(cid, item, true) end if(ret ~= RETURNVALUE_NOERROR) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Couldn't add item: " .. t[1]) return true end doDecayItem(item) if(not isPlayerGhost(cid)) then doSendMagicEffect(pos, 87) end return true end Logo após o function onSay
-
Saber qual comando a Staff usou
Então você terá de adicionar uma função em todos os seus scripts. Em cada script de talkaction que queira registrar o uso, adicione isso: local file = io.open('data/logs/logs.txt','a') file:write("Dia: "..os.date("%d").."/"..os.date("%m").."/"..os.date("%Y").." Hora: "..os.date("%X").." :::: ".. getPlayerNameByGUID(cid) .." usou o comando ".. words .."\n") file:close() Essa é a forma que conheço, porém será criado apenas um arquivo, onde ficará o log de todos os players.
-
Saber qual comando a Staff usou
Então na sua pasta logs já deve estar salvando cada comando feito.
-
Saber qual comando a Staff usou
Basta no talkactions.xml adicionar a tag log="yes" Por exemplo: <talkaction words="/clean" access="3" event="script" value="clean.lua"/> Ficaria: <talkaction log="yes" words="/clean" access="3" event="script" value="clean.lua"/>
-
Removido
Todo servidor de poketibia já tem algum script de box, poste algum aqui que a gente te ajuda a modificar a seu gosto! Né, pior que tem servidor que é por attribute, outros é por action (1 item para cada poke), ai os cara faz pedido e não especifica a base usada... ai complica.
-
[PEDIDO] Junção de Talkactions (2 scripts prontos
Eu já havia modificado este mesmo script para meu servidor. Segue o script: lvlaura é o nível da aura, na quest da primeira aura ponha setPlayerStorageValue(cid, 8445682, 1) Quest da segunda aura, coloque setPlayerStorageValue(cid, 8445682, 2) e assim por diante. Obs: Na minha versão eu já corrigi os erros que dava no distro quando algum player relogava com a aura ligada. Obs²: Eu configurei para curar tanto hp quanto mana, em mesma quantia. Obs³: Eu corrigi o erro que fazia a aura curar a qualquer momento, e não somente quando completava uma volta no personagem. -- CONFIGURAÇÕES lvlaura = 8445682 aurastr = 8445680 estr = 8445681 tempo = 1310 function efeitosAura(i,tm,cid) if isPlayer(cid) and getPlayerStorageValue(cid, aurastr)== 2 then if getPlayerStorageValue(cid, lvlaura) == 1 then -- aura level 1 porcentagem = 25 -- chance de curar em cada volta da aura quantheal = 6 -- porcentagem do hp máximo que cada cura irá curar tipoaura = 12 -- efeito da aura /x efeitocura = 43 --efeito quando a cura chega ao player /z elseif getPlayerStorageValue(cid, lvlaura) == 2 then -- aura level 2 porcentagem = 30 -- chance de curar em cada volta da aura quantheal = 8 -- porcentagem do hp máximo que cada cura irá curar tipoaura = 28 -- efeito da aura /x efeitocura = 43 --efeito quando a cura chega ao player /z elseif getPlayerStorageValue(cid, lvlaura) == 3 then -- aura level 3 porcentagem = 35 -- chance de curar em cada volta da aura quantheal = 10 -- porcentagem do hp máximo que cada cura irá curar tipoaura = 30 -- efeito da aura /x efeitocura = 39 --efeito quando a cura chega ao player /z elseif getPlayerStorageValue(cid, lvlaura) == 4 then -- aura level 4 porcentagem = 40 -- chance de curar em cada volta da aura quantheal = 12 -- porcentagem do hp máximo que cada cura irá curar tipoaura = 31 -- efeito da aura /x efeitocura = 38 --efeito quando a cura chega ao player /z end if(isCreature(cid)) then local atual = getCreaturePosition(cid) local posaura = { {x=(atual.x)-1, y=(atual.y)-1, z=atual.z}, {x=atual.x, y=(atual.y)-1, z=atual.z}, {x=(atual.x)+1, y=(atual.y)-1, z=atual.z}, {x=(atual.x)+1, y=atual.y, z=atual.z}, {x=(atual.x)+1, y=(atual.y)+1, z=atual.z}, {x=atual.x, y=(atual.y)+1, z=atual.z}, {x=(atual.x)-1, y=(atual.y)+1, z=atual.z}, {x=(atual.x)-1, y=atual.y, z=atual.z}, } if i == 1 then local chances = math.random(1, 100) if(chances<=porcentagem and (getCreatureHealth(cid)<getCreatureMaxHealth(cid) or getCreatureMana(cid)<getCreatureMaxMana(cid))) then local hpheal = (getCreatureMaxHealth(cid)/100) * quantheal local mpheal = (getCreatureMaxMana(cid)/100) * quantheal doCreatureAddHealth(cid, hpheal) doCreatureAddMana(cid, mpheal) if(i<=8 and i>1) then doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, atual, tipoaura) else doSendDistanceShoot({x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, atual, tipoaura) end doSendMagicEffect(atual, efeitocura) end end if(i==8) then doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura) elseif(i<8) then doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[i+1].x, y=posaura[i+1].y, z=posaura[i+1].z}, tipoaura) end if(i<=8) then i = i+1 tm = tempo/8 return addEvent(efeitosAura,tm,i,tm,cid) elseif(i>8) then return efeitosAura(1,0,cid) else return TRUE end else return TRUE end return true end end -- Função principal function onSay(cid, words, param, channel) if getPlayerStorageValue(cid, lvlaura) <= 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "[AURA SYSTEM] Você não possui aura.") return true end if(param=="on") then if getPlayerStorageValue(cid, estr) > os.time() then doPlayerSendCancel(cid, "Espere "..(getPlayerStorageValue(cid, estr) - os.time()).." segundos para poder habilitar aura novamente.") else if(getPlayerStorageValue(cid, aurastr)==2) then doPlayerSendCancel(cid,"Sua aura já está habilitada.") elseif(getPlayerStorageValue(cid, aurastr)==-1) then doPlayerSendCancel(cid,"Aura ligada!") setPlayerStorageValue(cid, aurastr, 2) efeitosAura(1,tempo/8,cid) end end elseif(param=="off") then if(getPlayerStorageValue(cid, aurastr)==2) then setPlayerStorageValue(cid, estr, os.time()+2) setPlayerStorageValue(cid, aurastr, -1) doPlayerSendCancel(cid,"Aura desligada!") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Digite '!aura on' para ligar sua aura, e '!aura off' para desligá-la.") end return TRUE end
-
(Resolvido)Comprar item de forma diferente? (complexo?)
Nossa, sofri agora kkk Depois de várias tentativas frustradas, consegui da seguinte maneira:
-
(Resolvido)Comprar item de forma diferente? (complexo?)
E a coordenada ta batendo certinho do lugar que vc esta com o script? Daqui algumas horas eu testo aqui.
-
(Resolvido)Comprar item de forma diferente? (complexo?)
Cara não estou entendendo o que se passa na sua cabeça, pra vc botar isso: local pos1 = {x=932}, y=1039, z=7} Não se fecha dentro do array, deixa assim: local pos1 = {x=932, y=1039, z=7}
-
(Resolvido)Comprar item de forma diferente? (complexo?)
Poste o script como está ai no seu servidor.
-
(Resolvido)Comprar item de forma diferente? (complexo?)
Tem certeza que botou o script corretamente, sem deixar nada que já estava no arquivo? Pois o erro não fez sentido algum. local pos1 = {x=932], y=1039, z=7} Pq você botou esse ']'? kkk tira isso local pos1 = {x=932, y=1039, z=7}
-
Erro Npc Shop
Cara, especifique rsrs Oque esta moeda 113 deveria fazer?
-
Erro Npc Shop
Man, vc ta fazendo algo errado e.e Pois o erro continua sendo o mesmo, sempre na linha 32. Revise bem se está botando o script no lugar certo.
-
Erro Npc Shop
Tenta assim então: 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 local shopWindow = {} local moeda = 113 local t = {[11778] = {price = 90}, [11779] = {price = 90}, [11780] = {price = 90}, [11781] = {price = 90}, [7380] = {price = 8}, [7408] = {price = 8}, [2431] = {price = 8}, [7402] = {price = 8}, [7869] = {price = 6}, [2388] = {price = 6}, [2659] = {price = 6}, [8931] = {price = 10}, [8931] = {price = 15}, [11786] = {price = 5}, [11787] = {price = 25}, [11788] = {price = 50}, [11789] = {price = 110}} local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks) if t[item] and not doPlayerRemoveItem(cid, moeda, t[item].price) then selfSay("you dont have"..t[item].price.." "..getItemNameById(moeda), cid) else doPlayerAddItem(cid, item) selfSay("Here your item!", cid) end return true end if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then for var, ret in pairs(t) do table.insert(shopWindow, {id = var, subType = 0, buy = ret.price, sell = 0, name = getItemNameById(var)}) end openShopWindow(cid, shopWindow, onBuy, onSell) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
-
Erro Npc Shop
Você botou o script q mandei? Pois deu erro na mesma linha (32) sendo que removi comentários do script, diminuindo o tanto de linhas.
-
(Resolvido)Comprar item de forma diferente? (complexo?)
Tente assim: (Obs: Não testei.) local pos1 = {x=500, y=550, z=7} local pos2 = {x=500, y=550, z=7} local pos3 = {x=500, y=550, z=7} local pos4 = {x=500, y=550, z=7} local pos5 = {x=500, y=550, z=7} local config1 = { -- config da pos 1 price = 30, -- Quantidade de items necessário para comprar. count = 1, -- Quantidade que irá vender. item = 666, -- ID do item que vai vender. need = 9971, -- ID do item necessário. alavancaStr = 3332, -- Storage para salvar e checar o tempo (tempo para o usar o comando de novo) time = 5 -- Tempo de espera para usar novamente } local config2 = { -- config da pos 2 price = 30, -- Quantidade de items necessário para comprar. count = 1, -- Quantidade que irá vender. item = 666, -- ID do item que vai vender. need = 9971, -- ID do item necessário. alavancaStr = 3332, -- Storage para salvar e checar o tempo (tempo para o usar o comando de novo) time = 5 -- Tempo de espera para usar novamente } local config3 = { -- config da pos 3 price = 30, -- Quantidade de items necessário para comprar. count = 1, -- Quantidade que irá vender. item = 666, -- ID do item que vai vender. need = 9971, -- ID do item necessário. alavancaStr = 3332, -- Storage para salvar e checar o tempo (tempo para o usar o comando de novo) time = 5 -- Tempo de espera para usar novamente } local config4 = { -- config da pos 4 price = 30, -- Quantidade de items necessário para comprar. count = 1, -- Quantidade que irá vender. item = 666, -- ID do item que vai vender. need = 9971, -- ID do item necessário. alavancaStr = 3332, -- Storage para salvar e checar o tempo (tempo para o usar o comando de novo) time = 5 -- Tempo de espera para usar novamente } local config5 = { -- config da pos 5 price = 30, -- Quantidade de items necessário para comprar. count = 1, -- Quantidade que irá vender. item = 666, -- ID do item que vai vender. need = 9971, -- ID do item necessário. alavancaStr = 3332, -- Storage para salvar e checar o tempo (tempo para o usar o comando de novo) time = 5 -- Tempo de espera para usar novamente } function onSay(cid, words, param, channel) if getCreaturePosition(cid) ~= pos1 and getCreaturePosition(cid) ~= pos2 and getCreaturePosition(cid) ~= pos3 and getCreaturePosition(cid) ~= pos4 and getCreaturePosition(cid) ~= pos5 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Lugar inadequado para usar o comando.") return true end if getCreaturePosition(cid) == pos1 then local config = config1 elseif getCreaturePosition(cid) == pos2 then local config = config2 elseif getCreaturePosition(cid) == pos3 then local config = config3 elseif getCreaturePosition(cid) == pos4 then local config = config4 elseif getCreaturePosition(cid) == pos5 then local config = config5 end if getPlayerItemCount(cid, config.need) >= config.price then if getPlayerStorageValue(cid, config.alavancaStr) <= os.time() then doPlayerRemoveItem(cid, config.need, config.price) doPlayerAddItem(cid, config.item, config.count) setPlayerStorageValue(cid, config.alavancaStr, config.time + os.time()) doCreatureSay(cid, "Você comprou ".. config.count .." ".. getItemNameById(config.item) ..".", TALKTYPE_MONSTER) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Espere ".. getPlayerStorageValue(cid, config.alavancaStr) - os.time() .." segundos para comprar novamente.") return true end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem ".. config.price .." ".. getItemNameById(config.need) ..".") return true end end
-
Erro Npc Shop
Estranho, não vi nada de errado... Mas tente assim: 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 local shopWindow = {} local moeda = 113 -- ID da moeda local t = { [11778] = {price = 90}, -- [ITEM ID PARA VENDER] = {QNTO CUSTARÁ} [11779] = {price = 90}, [11780] = {price = 90}, [11781] = {price = 90}, [7380] = {price = 8}, [7408] = {price = 8}, [2431] = {price = 8}, [7402] = {price = 8}, [7869] = {price = 6}, [2388] = {price = 6}, [2659] = {price = 6}, [8931] = {price = 10}, [8931] = {price = 15}, [11786] = {price = 5}, [11787] = {price = 25}, [11788] = {price = 50}, [11789] = {price = 110} } local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks) if t[item] and not doPlayerRemoveItem(cid, moeda, t[item].price) then selfSay("you dont have"..t[item].price.." "..getItemNameById(moeda), cid) else doPlayerAddItem(cid, item) selfSay("Here your item!", cid) end return true end if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then for var, ret in pairs(t) do table.insert(shopWindow, {id = var, subType = 0, buy = ret.price, sell = 0, name = getItemNameById(var)}) end openShopWindow(cid, shopWindow, onBuy, onSell) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Obs: Qual é seu servidor? Te vejo direto por aqui pedindo ajuda, já te ajudei algumas vezes fiquei curioso rs.
-
Area que não pode usar talkactions
function onSay(cid, words, param) local ppos = getCreaturePosition(cid) local pos1 = {x = 1313, y = 1120, z = 7} local pos2 = {x = 1373, y = 1161, z = 9} if ppos.x > pos1.x and ppos.x < pos2.x and ppos.y > pos1.y and ppos.y < pos2.y and ppos.z >= pos1.z and ppos.z <= pos2.z then return true end pos = {x=1057, y=1046, z=7} doSendMagicEffect(getPlayerPosition(cid),19) doPlayerSendCancel(cid,"Teleportado!") doTeleportThing(cid,pos) end Você fez errado, no tibia o andar mais alto é o número menor, e o andar mais baixo é o número maior.
-
Area que não pode usar talkactions
poste o script como vc configurou.
-
Area que não pode usar talkactions
com 2 andares: function onSay(cid, words, param) local ppos = getCreaturePosition(cid) local pos1 = {x = 0, y = 0, z = 0} local pos2 = {x = 0, y = 0, z = 0} if ppos.x > pos1.x and ppos.x < pos2.x and ppos.y > pos1.y and ppos.y < pos2.y and ppos.z >= pos1.z and ppos.z <= pos2.z then return true end pos = {x=1057, y=1046, z=7} doSendMagicEffect(getPlayerPosition(cid),19) doPlayerSendCancel(cid,"Teleportado!") doTeleportThing(cid,pos) end Com 2 ou mais andares, no pos1 ponha o Z do andar mais acima, e no pos2 ponha o Z do andar mais abaixo.
-
Area que não pode usar talkactions
No script do comando que os players usam pra sair da prisão, adicione o seguinte logo após o "function onSay(cid...." local ppos = getCreaturePosition(cid) local pos1 = {x = 0, y = 0, z = 0} local pos2 = {x = 0, y = 0, z = 0} if ppos.x > pos1.x and ppos.x < pos2.x and ppos.y > pos1.y and ppos.y < pos2.y and ppos.z == pos1.z then return true end Explicando: em pos1 você coloca a coordenada do canto superior esquerdo da prisão, e em pos2 você bota a coordenada do canto inferior direito da prisão. Vai uma print auto-explicativa: Se tiver mais de um comando que teletransporta o player, adicione a função em todos. O mesmo faça com os action scripts dos items que teletransportam o player, caso haja.
-
Scripts PARA BAU
Poste seu script da quest normal, que eu adiciono a função de aparecer a mensagem.
-
(Resolvido)ajuda com efeito na outfit
O script está certo, creio que o problema seja a sprite que não está devidamente alinhada. Mas se quiser tentar realinhar a aura por script (não garanto nada que irá funcionar), tente assim: local tab = { [9] = {effect = 27}, -- [vocationID] = {effect = Number} [10] = {effect = 28}, [11] = {effect = 29}, [12] = {effect = 30} } local delay = 3 -- tempo do efeito da aura em segundos function ariseAura(cid) local pos = getThingPos(cid) doSendMagicEffect({x=pos.x+1, y=pos.y, z=pos.z}, tab[getPlayerVocation(cid)].effect) addEvent(ariseAura, delay * 1000, cid) return true end function onLogin(cid) if tab[getPlayerVocation(cid)] then ariseAura(cid) end return true end Obs: Tente aprender a utilizar o CODE da próxima vez que for postar um script.
- Algumas Cidades Apenas Para Player Vip
-
Talk de prisão fail
Número alto demais cara, poe algo do tipo 43200, que ja seria 30 dias.