Histórico de Curtidas
-
danbsten deu reputação a Absolute em Pegar arquivo linux acessoAgora iremos a sua configuração, vá até a pasta /etc/csf e abra o arquivo csf.conf com seu editor de texto.
Faz o seguinte, digite:
cd /etc/csf
em chegar no diretório digite
nano csf.conf
caso de erro do nano, instale-o:
apt-get install nano
Edite pelo próprio terminar, abraços.
-
danbsten deu reputação a xWhiteWolf em Magnus Challengeraté dá mas teria que mudar o script pra cada monstro ser um storage diferente, se vc faz 3 dificuldades com 9 monstros cada você perde 27 storages :/ mas vou dar uma olhada certinho pra confirmar se é isso mesmo.
-
danbsten deu reputação a xWhiteWolf em [suporte] como usar func onMoveItem?O primeiro erro significa que não existe compilado na source o event type = onMoveItem, ele não reconheceu esse type.
No valid type for creature event.onMoveItem
"Não há um tipo válido de creature event chamado onMoveItem"
Após as alterações que você fez ele entendeu o script mas o código possui um erro lógico na linha 4: faltou um then próximo do doRemoveItem.
Indo na linha 4 vemos claramente que está faltando um then para abrir o bloco de instrução do código if
if item.itemid == 2596 deveria ser
if item.itemid == 2596 then Isso deve resolver kkk mas só escrevi as coisas aqui acima pra você entender +- como interpretar as coisas que nosso console nos diz..
-
danbsten deu reputação a .HuRRiKaNe em (Resolvido)[PROBLEMA] /t talkactionDeixa seu teleporttown.lua assim:
function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end local tid = cid local t = string.explode(param, ",") if(t[2]) then tid = getPlayerByNameWildcard(t[2]) if(not tid or (isPlayerGhost(tid) and getPlayerGhostAccess(tid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. t[2] .. " not found.") return true end end local tmp = t[1] if(not tonumber(tmp)) then tmp = getTownId(tmp) if(not tmp) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Town " .. t[1] .. " does not exists.") return true end end local pos = getTownTemplePosition(tmp, false) if(not pos or isInArray({pos.x, pos.y}, 0)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Town " .. t[1] .. " does not exists or has invalid temple position.") return true end pos = getClosestFreeTile(tid, pos) if(not pos or isInArray({pos.x, pos.y}, 0)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Destination not reachable.") return true end tmp = getCreaturePosition(tid) if(doTeleportThing(tid, pos, true) and not isPlayerGhost(tid)) then doSendMagicEffect(tmp, CONST_ME_POFF) doSendMagicEffect(pos, CONST_ME_TELEPORT) end return true end <talkaction log="yes" words="/town" access="2" event="script" value="teleporttown.lua"/> E deixe seu teleportmaster.lua assim:
function onSay(cid, words, param, channel) local tid = cid if(param ~= '') then tid = getPlayerByNameWildcard(param) if(not tid or (isPlayerGhost(tid) and getPlayerGhostAccess(tid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. param .. " not found.") return true end end local pos = getPlayerTown(tid) local tmp = getTownName(pos) if(not tmp) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Home town does not exists.") return true end pos = getTownTemplePosition(pos) if(not pos or isInArray({pos.x, pos.y}, 0)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong temple position for town " .. tmp .. ".") return true end pos = getClosestFreeTile(tid, pos) if(not pos or isInArray({pos.x, pos.y}, 0)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Destination not reachable.") return true end tmp = getCreaturePosition(tid) if(doTeleportThing(tid, pos, true) and not isPlayerGhost(tid)) then doSendMagicEffect(tmp, CONST_ME_POFF) doSendMagicEffect(pos, CONST_ME_TELEPORT) end return true end <talkaction log="yes" words="/t" access="2" event="script" value="teleportmaster.lua"/> -
danbsten deu reputação a .HuRRiKaNe em (Resolvido)[PROBLEMA] /t talkactionTenta esse:
function onSay(cid, words, param, channel) local tid = cid if(param ~= '') then tid = getPlayerByNameWildcard(param) if(not tid or (isPlayerGhost(tid) and getPlayerGhostAccess(tid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. param .. " not found.") return true end end local pos = getPlayerTown(tid) local tmp = getTownName(pos) if(not tmp) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Home town does not exists.") return true end pos = getTownTemplePosition(pos) if(not pos or isInArray({pos.x, pos.y}, 0)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong temple position for town " .. tmp .. ".") return true end pos = getClosestFreeTile(tid, pos) if(not pos or isInArray({pos.x, pos.y}, 0)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Destination not reachable.") return true end tmp = getCreaturePosition(tid) if(doTeleportThing(tid, pos, true) and not isPlayerGhost(tid)) then doSendMagicEffect(tmp, CONST_ME_POFF) doSendMagicEffect(pos, CONST_ME_TELEPORT) end return true end -
danbsten deu reputação a xWhiteWolf em [suporte] como usar func onMoveItem?falta só adicionar o login.lua pra registrar esse callback (isso garantindo q vc tem esse callback na sua source). Daí toda vez que um player for vocação 0 e mover um item 2596 ele vai ser removido.
-
danbsten deu reputação a WooX em [BUG] War SystemEu já resolvi o problema, e é mesmo na sources. Quando eu tiver tempo posto 1 tutorial ensinando como resolver.
-
danbsten deu reputação a WooX em (Resolvido)[PEDIDO] TFS 0.4 SEM SALTEu posso estar enganado mas salt somente irá atrapalhar caso você for usar acc manager in game, como você pretende usar acc manager com cast system?
-
danbsten deu reputação a WooX em (Resolvido)[PEDIDO] TFS 0.4 SEM SALTCast com acc manager? sinceramente eu nunca vi.
-
danbsten deu reputação a WooX em Como Compilar TFS 0.4 CAST/WAR Com VídeoA source roda em linux sim, mas o tutorial de compilação a cima é para windows.
-
danbsten deu reputação a Cazuza em O que esse script faz?Onde achou este script? sendo que ele é de autoria minha.
-
danbsten deu reputação a Reds em [AJUDA] Spell que mata player e monster na hora não importa o levelsó peguei uma parte da spell que eu tinha adaptado
function onCastSpell(cid, var) if getPlayerStorageValue(cid, config.storagCooldown) - os.time() <= 0 then setPlayerStorageValue(cid, config.storagCooldown, os.time() + config.cooldown) else doPlayerSendCancel(cid, "Your skill is in cooldown, wait more ".. getPlayerStorageValue(cid, config.storagCooldown) - os.time() .." seconds to use it.") return false end doSendAnimatedText(getCreaturePosition(cid), "Cursed", COLOR_ORANGE) local time = onCastChannel(cid, getCreatureTarget(cid), config.delaycast, config.effect, config.key) addEvent(function() if isCreature(cid) and getPlayerStorageValue(cid, config.key) == 11 then doCreatureSay(cid, "cursed finished", 20) addEvent(function() if isCreature(variantToNumber(var)) then local target = getCreatureTarget(cid) doCreatureAddHealth(target, -getCreatureHealth(target)) end end, config.delay * (config.walks + 1)) elseif isCreature(cid) then doPlayerSendCancel(cid, "You broke the channeling spell so the cast was canceled.") end end, time) return true end -
danbsten deu reputação a Reds em [Pedido] Magia Para Monstronao funciona, o setnomove em monstros, por mais que seja temporizado, o player nao se meche depois, pelo menos qnd eu testei foi assim
-
danbsten deu reputação a Reds em (Resolvido)Remover pedra, alavanca+itenEu preciso de um script que para ser possivel remover a stone seja necessário iten em x local do mapa
http://prntscr.com/73rlzl
como podem ver na print, seriam os 5 itens em cima dos 5 negocios ali, puxar a alavanca e retirar a pedra
-
danbsten deu reputação a Reds em adicionar: actions, itens e tago seguinte, eu preciso que o msm item seja usado em vários scripts, acho q vcs entenderam
<action itemid="12715" event="script" value="refinaria/first.lua"/> <action itemid="12715" event="script" value="refinaria/second.lua"/> pergunte caso nao entenda
-
danbsten deu reputação a Reds em Funçao desconhecida, erro spellÉ o seguinte galera eu tinha 1 magia que silenciava (exhaust) o alvo, e pensei em por ela em área e sem fazer pegar pk, para ser usada para wars pequenas em times...
O problema está em:
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
não sei muito sobre a função, percebi que a função é para que as conditions muted e exhausted funcionem e ao por false, nao exhausta o inimigo, e true a spell não sai e da erro na distro a cada segundo.
Como posso resolver?
-
danbsten deu reputação a Reds em (Resolvido)Aol diferenteEaí pessoal, vi esse sistema em um outro ot, funciona +- assim:
O jogador possui um aol, quando ele morre não perde os itens (até essa parte igual ao aol comum).
Ao invés do aol sumir quando ele morre, ele se transforma em um outro amuleto.
Enfim só quero que ao invés de o aol sumir ele se transforme.
-
danbsten deu reputação a Caronte em Lib 000-ConstOlá pessoal, venho mais uma vez trazer um tutorial simples, e tentar explicar tudo claramente, esse tutorial pode ficar grande dependendo do desenrolar dele, pois é um pack de tutoriais, então vou usar spoilers para ajudar na formatação do tópico.
Nota: as informações usadas abaixo, podem ser tanto usadas com o nome, quanto com o número, e podem ser encontradas na pasta lib no arquivo 000-const
https://pastebin.com/0FfPcg7y
line4
Coordenadas:
Tutorial feito e formatado por Caronte o + gato do fórum, avaliações do perfil são bem-vindas.
Explicando:
doMoveCreature(cid, direction): Serve para mover tanto o player quanto o monstro.
Combate:
Tutorial feito e formatado por Caronte o + gato do fórum, avaliações do perfil são bem-vindas.
Parâmetros de condição:
Condições:
Slots:
Tutorial feito e formatado por Caronte o + gato do fórum, avaliações do perfil são bem-vindas.
Participação: xWhiteWolf
Const_ani e Const_me:
Tutorial feito e formatado por Caronte o + gato do fórum, avaliações do perfil são bem-vindas.
Talktypes and message types:
[title][/title]
Tutoriais concluídos por ordem de formatação (podem ser alterados assim mesmo):
Coordenadas, e suas direções. Combat (ainda há coisas a serem adicionadas). Slots. CONST_ME and CONST_ANI
Os assuntos do tópico poderão se diminuídos ou aumentados de acordo com o desenrolar do tempo,
gostaria de apoio, e não me incomodaria se alguém se propusesse fazer algum tutorial, eles serão supervisionados por mim e formatados por mim, para serem postados neste tópico.
Esse tópico demorou e vai demorar muito para fazer
cada tutorial, então eu não me importo com um obrigado e REP+,
OBS.: Um obrigado vale bem mais do que um REP+
-
danbsten deu reputação a Caronte em [MOVE] Caminhada no pantanoBom, olá pessoal, eu não sou de fazer scripts e esse é meu primeiro:
gostaria de saber como ficou, como poderia melhorar e etc...
É um script que onde você colocar a action dele vai tomar paralize e quando sair a paralize sai, como se fosse uma dificuldade na caminhada...
Eu sei que é meio inútil mas ta aí:
Em movements>scripts crie um arquivo chamado pantano.lua
function onStepIn(cid, item, position, fromPosition) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 20000) setConditionFormula(condition, -0.9, 0, -0.9, 0) setCombatCondition(combat, condition) doSendMagicEffect(getThingPosition(cid), CONST_ME_GREEN_RINGS) doAddCondition(cid, condition) return true end function onStepOut(cid, item, position, fromPosition) doRemoveCondition(cid, 32) return true end E em movement.xml adicione as duas linhas:
<movevent type="StepIn" actionid="3600" event="script" value="pantano.lua"/> <movevent type="StepOut" actionid="3600" event="script" value="pantano.lua"/> Pronto, agora onde você colocar a actionid você vai levar um paralize ao andar, como se fosse um pântano pegajoso
EDIT: Porém, se quiser esse efeito em todo o pântano andável sem ter que colocar action em todos os tiles é só ignorar a tag de cima e fazer assim:
<movevent type="StepIn" itemid="6353" event="script" value="pantano.lua"/> <movevent type="StepOut" itemid="6353" event="script" value="pantano.lua"/> Acima, todo item com ID 6353, o efeito será aplicado..., se quiser mudar , pode mudar ao item que você quiser
É essa merda aí, qualquer incremento que quiser pode requisitar abaixo no tópico.
-
danbsten deu reputação a Caronte em [ACTION] Piggy Bank: CassinoOlá pessoal, hoje venho lhes trazer um script de Cassino, para funcionar 100% independente.
Testado em TFS 0.4
para os desconhecedores do script, favor, só leia o spoiler:
Vamos ao que interessa:
Versão 1:
Script (actions/scripts/other/piggybank.lua)
"VALE LEMBRAR, ESSE PIGGY BANK JÁ EXISTE NO TIBIA, MAS DESEMPENHANDO OUTRA FUNÇÃO, ENTÃO É MELHOR CRIAR OUTRO ARQUIVO OU SÓ SUBSTITUIR."
--[[ Esse é o script do piggy bank, SCRIPT BY CARONTE, visite: tibiaking.com ]]-- local qtdd = 10 -- quantidade minima para jogar local lost, winner = CONST_ANI_SUDDENDEATH, CONST_ANI_HOLY -- Efeitos: Ao perder, Ao ganhar function onUse(cid, item, frompos, item2, topos) local chance = math.random(0,100) local pos = getPlayerPosition(cid) local pos_ef = { {x= pos.x-1,y= pos.y-1,z= pos.z}, {x= pos.x,y= pos.y-1,z= pos.z}, {x= pos.x+1,y= pos.y-1,z= pos.z}, {x= pos.x+1,y= pos.y,z= pos.z}, {x= pos.x+1,y= pos.y+1,z= pos.z}, {x= pos.x,y= pos.y+1,z= pos.z}, {x= pos.x-1,y= pos.y+1,z= pos.z}, {x= pos.x-1,y= pos.y,z= pos.z} } --Verificar se tem crystals no slot -- if getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid ~= 2160 then doCreatureSay(cid, 'You need crystal coins in your ammunition slot to play ! ', TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) --Verificar quantidade de cystals no ammo slot elseif getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid == 2160 and getPlayerSlotItem(cid, CONST_SLOT_AMMO).type < qtdd then doCreatureSay(cid, "You don't have "..qtdd.." crystal coins in the arrows slot to play", TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) end if getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid == 2160 and getPlayerSlotItem(cid, CONST_SLOT_AMMO).type >= qtdd then doCreatureSay(cid, "Let's see your lucky", TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_CRAPS) if chance <= 50 then -- GANHOU doPlayerAddItem(cid,2160,getPlayerSlotItem(cid, CONST_SLOT_AMMO).type) for i = 1, 8 do doSendDistanceShoot(pos_ef[i], pos, winner) end -- FECHA FOR elseif chance >= 50 then -- PERDEU doPlayerRemoveItem(cid,2160,getPlayerSlotItem(cid, CONST_SLOT_AMMO).type) doSendMagicEffect(pos, CONST_ME_BLOCKHIT) for i = 1, 8 do doSendDistanceShoot(pos_ef[i], pos, lost) end -- FECHA FOR end -- FECHA IF (CHANCE) end -- FECHA IF QUANTIDADE return true end
TAG (actions.xml)
<action itemid="2114" event="script" value="other/piggybank.lua"/>
Como editar:
Demonstração:
Caso não tenha dinheiro no slot de munições:
Caso tenha dinheiro no slot de munições, mas não o suficiente:
Caso ganhe:
Caso perca:
PS: Lembrando, que para apostar, é só colocar grana no slot que se coloca arrows...
e a quantidade de crystal coins é configurável, no início do script, alterando lá, já vai alterar a fala, que falará sempre a quantidade configurada.
Detalhe: quem quer que o local/item de aposta seja fixo, mude a TAG que coloca em actions.xml, só mude o ID do item.
Créditos: Caronte & Adriano SwaTT
Versão 2:
Bom, essa versão não tem haver com o Cassino Script, mas foi feita por mim, para derivar dele...
Como funciona:
Script (actions/scripts/other/piggybank.lua)
--[[ Esse é o script do piggy bank, SCRIPT BY CARONTE, visite: tibiaking.com ]] function onUse(cid, item, frompos, item2, topos) rand1 = math.random(1,100) rand2 = math.random(1,70) rand3 = math.random(1,15) local coins = 5 -- Quantide de crystal coins que irá consumir local chancedequebrar = 0 -- porcentagem da chance de se quebrar, use 0 para não quebrar dinheiro = coins * 10000 if getPlayerMoney(cid) >= dinheiro then doPlayerRemoveMoney(cid, dinheiro) else doCreatureSay(cid, '~You need '..coins..' crystals to break it !!!~', TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end if rand1 <= 50 then doPlayerAddItem(cid,2148,rand1) doCreatureSay(cid, '~Holy Shit !!! only '..rand1..' golds, my mom will kill me~', TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_YELLOW) end if rand1 >= 51 and rand1 <= 70 then doPlayerAddItem(cid,2152,rand3) doCreatureSay(cid, '~Oh-oh '..rand3..' Platinum coins!, would i try again ?~', TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_BLUE) end if rand1 >= 90 then doPlayerAddItem(cid,2160,rand2) doCreatureSay(cid, '~Oh My God! '..rand2..' Crystal coins !!!', TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_WATERSPLASH) end if rand1 <= chancedequebrar then doPlayerAddMoney(cid, dinheiro) doTransformItem(item.uid,item.itemid+1) end return 1 end
Como editar:
Demonstração:
Caso não tenha dinheiro na Bag:
Caso caia em gold:
Caso caia em platinum:
Caso caia em crystal:
Créditos:
Caronte
Fim
Caso goste, comente,
sugestões, comente,
dificuldades, comente,
erros, comente.
Fui é só isso pessoal
fiquem com God
-
danbsten deu reputação a Caronte em [TALK] CheckpointBom, eu estava cá fazendo uma talkaction para praticar, mas aí fui aprimorando e resolvi compartilhar, para ver se é útil para alguém...
Como funciona: Bom, basicamente, é um comando sem parâmetros, que marca um lugar na zona de proteção e volta para esse lugar depois que usa o comando pela segunda vez,
Em caso de
local parceiro = true
deixando um portal que some em aproximadamente 3 segundos, para que possam seguir ele...
Caso não queira isso, coloque false.
Ao usar o comando para fixar o checkpoint:
Ao usar o mesmo comando para voltar ao checkpoint no mesmo lugar:
Escolhendo uma nova posição:
Usando o comando na nova posição:
Bom, o script é esse:
depois irei adicionar mais coisas
(talkactions/scripts/checkpoint.lua)
local parceiro = true -- false vai tirar o teleporte que o player deixa de rastro function onSay(cid, words, param) if param == "" then local cidpos = getThingPos(cid) if not getTileInfo(cidpos).protection then return doPlayerSendCancel(cid,"You need stay in a protect zone ( PZ ). ") end if(tonumber(getPlayerStorageValue(cid,"Checkpoint"))) then setPlayerStorageValue(cid,"Checkpoint", "{x = "..cidpos.x..", y = "..cidpos.y..", z = "..cidpos.z..", stackpos = "..cidpos.stackpos.."}") doPlayerSendTextMessage(cid, 27, "You put a checkpoint here.") doSendMagicEffect(cidpos, 9) else local str = "return "..getPlayerStorageValue(cid, "Checkpoint") local pos = loadstring(str)() doTeleportThing(cid, pos, TRUE) if "{x = "..cidpos.x..", y = "..cidpos.y..", z = "..cidpos.z..", stackpos = "..cidpos.stackpos.."}" == "{x = "..pos.x..", y = "..pos.y..", z = "..pos.z..", stackpos = "..pos.stackpos.."}" then return doPlayerSendCancel(cid,"You can't do this, please choose another position to come back") and doSendMagicEffect(cidpos, 2) end if parceiro then doCreateTeleport(1387, pos, cidpos) doSendAnimatedText(cidpos, "Removing", 221) local t = { [500] = "in", [1000] = "3", [1500] = "2", [2000] = "1", } for q, w in pairs(t) do addEvent(doSendAnimatedText,q,cidpos, w, 221) end addEvent(function() doRemoveItem(getTileItemById(cidpos, 1387).uid) doSendMagicEffect(cidpos, 2) end,2700) end doCreatureSay(cid, "You reached your destiny.", MESSAGE_EVENT_ORANGE) doPlayerSendTextMessage(cid, 27, "You reached your destiny.") setPlayerStorageValue(cid,"Checkpoint", 0) doSendMagicEffect(cidpos, 67) end end return true end Em (talkactions.xml)
<talkaction log="yes" words="/checkpoint" event="script" value="Xcriptis/checkpoint.lua"/>
CASO QUEIRAM COM EXHAUST EM SEGUNDOS, CONFIGURÁVEL !!!, AQUI ESTÁ:
local parceiro = true -- false vai tirar o teleporte que o player deixa de rastro local tempo = 24*60*60 -- 24 h em segundos function onSay(cid, words, param) if param == "" then local cidpos = getThingPos(cid) if not getTileInfo(cidpos).protection then return doPlayerSendCancel(cid,"You need stay in a protect zone ( PZ ). ") end if(tonumber(getPlayerStorageValue(cid,"Checkpoint"))) then setPlayerStorageValue(cid,"Checkpoint", "{x = "..cidpos.x..", y = "..cidpos.y..", z = "..cidpos.z..", stackpos = "..cidpos.stackpos.."}") doPlayerSendTextMessage(cid, 27, "You put a checkpoint here.") doSendMagicEffect(cidpos, 9) else local str = "return "..getPlayerStorageValue(cid, "Checkpoint") local pos = loadstring(str)() if not (tonumber(getPlayerStorageValue(cid,"Checkpoint"))) and getCreatureStorage(cid, 10001) - os.time() < 0 then setPlayerStorageValue(cid,10001, os.time() + tempo) else return doPlayerSendCancel(cid,"You can't do this, please wait " .. getCreatureStorage(cid, 10001) - os.time() .." seconds.") end doTeleportThing(cid, pos, TRUE) if "{x = "..cidpos.x..", y = "..cidpos.y..", z = "..cidpos.z..", stackpos = "..cidpos.stackpos.."}" == "{x = "..pos.x..", y = "..pos.y..", z = "..pos.z..", stackpos = "..pos.stackpos.."}" then return doPlayerSendCancel(cid,"You can't do this, please choose another position to come back") and doSendMagicEffect(cidpos, 2) end if parceiro then doCreateTeleport(1387, pos, cidpos) doSendAnimatedText(cidpos, "Removing", 221) local t = { [500] = "in", [1000] = "3", [1500] = "2", [2000] = "1", } for q, w in pairs(t) do addEvent(doSendAnimatedText,q,cidpos, w, 221) end addEvent(function() doRemoveItem(getTileItemById(cidpos, 1387).uid) doSendMagicEffect(cidpos, 2) end,2700) end doCreatureSay(cid, "You reached your destiny.", MESSAGE_EVENT_ORANGE) doPlayerSendTextMessage(cid, 27, "You reached your destiny.") setPlayerStorageValue(cid,"Checkpoint", 0) doSendMagicEffect(cidpos, 67) end end return true end Qualquer problema, resolver no tópico.
por favor, gostaria de feedbacks com sugestões ou qualquer coisa.
-
danbsten deu reputação a Caronte em [BUG] Rep notificationEu tava achando que estava sendo perseguido...
mas não ta mostrando o nome de quem reputou para ninguém !, eu acho...
-
danbsten deu reputação a Snowsz em [OTC] MOD que deixa o OTC exclusivo para seu servidor.Testado em:
TFS 0.4 8.60.
Otclient 0.6.3.
Descrição: O player só poderá entrar no seu otserver com este mod, caso contrário, levará um kick bonito
Bom galera, criei este mod para ajudar um membro do fórum que, quer que seu server só seja acessado com um otclient dele, então, vamos ao mod.
Vá na pasta do seu otclient e entre na pasta mods, lá, crie outra pasta, chamada exclusiveclient, nesta pasta, crie um arquivo com o nome exclusiveclient.lua e coloque isso dentro:
function init() connect(g_game, 'onTextMessage', serverComunication) connect(g_game, { onGameEnd = hide } ) end function terminate() disconnect(g_game, { onGameEnd = hide }) disconnect(g_game, 'onTextMessage', serverComunication) end function serverComunication(mode, text) if not g_game.isOnline() then return end if mode == MessageModes.Failure then if text:find("$@$ExclusiveClient") then g_game.talk("/$@$exclusive$@$") end end end Feche e salve o arquivo.
Ainda na mesma pasta, crie um novo arquivo chamado, exclusiveclient.otmod (lembrem-se da extensão sempre, exemplo: login>.lua<)
No exclusiveclient.otmod coloque isto dentro:
Module name: Exclusive Client description: author: Snowsz website: autoload: true autoload-priority: 1000 scripts: - exclusiveclient.lua @onLoad: init() @onUnload: terminate() Após isso, feche e salve o arquivo, não é só isso, agora iremos mexer no seu servidor, vá na pasta data/creaturescripts/scripts e abra o login.lua, coloque isso antes do ultimo return true.
addEvent(doPlayerSendCancel, 100, cid, "$@$ExclusiveClient$@$") addEvent(doPlayerSendCancel, 200, cid, " ") addEvent(function() if getPlayerStorageValue(cid, "exclusive") <= 0 then doRemoveCreature(cid) end end, 500) Após isso, feche e salve o arquivo, agora, crie um novo arquivo nesta mesma pasta, chamado exclusivelogout.lua, nele coloque isto dentro:
function onLogout(cid) setPlayerStorageValue(cid, "exclusive", -1) return true end Feche e salve o arquivo, agora, vá em data/creaturescripts/creaturescripts.xml e coloque esta tag:
<event type="logout" name="ExlusiveLogout" event="script" value="exclusivelogout.lua"/> Após isso, vá em data/talkactions/scripts e crie um arquivo chamado exclusive.lua, coloque isso dentro:
function onSay(cid, words, param) setPlayerStorageValue(cid, "exclusive", 1) return true end Feche e salve o arquivo, vá em data/talkactions/talkactions.xml e coloque esta tag:
<talkaction log="no" access="0" words="/$@$exclusive$@$" event="script" value="exclusive.lua"/> Feche e salve o arquivo, pronto, sistema instalado, espero que gostem
Créditos: Snowsz
-
danbsten deu reputação a Snowsz em [OTC] Manager WindowTestado: Otclient 0.6.7, TFS 0.4
Versão: 1.0
Descrição: Um mod que adiciona um botão, ao lado esquerdo do seu painel, quando clicar irá aparecer uma janela, com comandos.
Autor: Snowsz
Imagem:
Bom, só coloquei os comandos que mais uso, acho que ele seja auto explicativo, mas, vou explicar um pouco...
Em name coloque o nome do player, marque uma caixinha do que será adicionado, e em count coloque o valor que o player deverá ganhar desse determinado skill, após isso, clique em Addskill.
Os dois "X" são para limpar a caixa, assim como o botão, clear, para limpar as caixas dos outros comandos.
Quando clicar em reload, vai aparecer uma lista de opções, clique na que quiser dar reload.
No botão commands, quando clicar, irá aparecer a lista de comandos.
Ele só funciona com players que possuam cargo GM, CM e GOD.
Coloque isto no seu login.lua(para quem não sabe, no seu servidor não no CLIENT!):
if getPlayerAccess(cid) > 3 then doPlayerSendCancel(cid, "$@$Administrador") doPlayerSendCancel(cid, " ") end Download V2:
Link: https://www.dropbox.com/s/axmop6e80mvlfi7/managerwindow.rar?dl=0 (coloque o arquivo na pasta mods)
Scan: https://www.virustotal.com/pt/file/8fbe8b00e272f623bd2ac70c5fa1c39855d5e9c8469efcaae841db2e9eec138a/analysis/1422324181/
Atualizado para versão 2, removido todos os bugs que encontrei e adicionado novos botões, para adicionar mais comandos basta abrir o arquivo lua do mod, procurar por "local uses" e adicionar mais.
(obs: esses comandos do "uses", não podem precisar de parâmetro, ex: /r 10)
-->Change log v2
-Retirado alguns bugs
-Código diminuído e melhor identado
-Adicionado novas funcionalidades
-Adicionado compatibilidade do comando addskill para "skills", como distance, shield e sword, entre o restante. -
danbsten deu reputação a Snowsz em [OTC] Trocando títuloO título é isso aqui:
Para trocar o título do otclient, vá na pasta modules/client e abra o arquivo client.lua e procure por:
g_window.setTitle O que tiver entre os parenteses "(aqui)" remova e coloque "nomedoseuclient" < com aspas sim.
Ficando:
g_window.setTitle("Meu client") Bom, tutorial rápido, não sei se deu para entender
Créditos:
Snowsz
@Edit
Adicionado imagem.