Ir para conteúdo
Banner com Efeitos

So volto tarde

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    So volto tarde deu reputação a DiigooMix em [SUPORTE] Complementar Script de comando !bank TFS 1.3   
    Testei aqui, não está funcionando a parte de verificar battle.
    A parte do outro player receber a mensagem está funcionando 100%
     
     
    [EDITED]
    Consegui amigo, só alterei a linha 2:
    if (player:isPzLocked()) then
     
    para:
    if player:getCondition(CONDITION_INFIGHT, CONDITIONID_DEFAULT) or player:isPzLocked() then
     
     
    Muito obrigado man
    só mais uma dúvida man, tem como o player que recebeu a transfer na mensagem dele, adicionar o balance atual do bank dele? 
    Seria como "[BankSystem]: player %s transferred %sgps yo your bank account. Your current balance is: xxxxxxx gps"
  2. Obrigado
    So volto tarde recebeu reputação de DiigooMix em [SUPORTE] Complementar Script de comando !bank TFS 1.3   
  3. Gostei
    So volto tarde deu reputação a Thony D. Serv em Bless Db   
    tfs 0.4 (não testei em outras apenas na 0.4)
    Esse script eu fiz pois, meu servidor sempre que reiniciava todos os players voltavam sem bless, então para sanar isso eu fiz um check de bless pela database para poder sempre que cair o servidor os players não morressem sem bless e dropassem os itens
    vamos lá!

    Primeiro Execute Este Comando Em Sua Db:
     

    Va No Fim E Adicione
    050-function.lua 
     

    Agora vá no seu comando de Bless ou Npc e ponha cada um no seu devido lugar
     
     
    Agora Em Creaturescript/scripts Crie Uma Pasta Chamada Bless E Ponha La Dentro:

    blessingdeath.lua
     

    blessinglogin.lua
     

    Adicione Ambas No Login.lua
     
     
    Creaturescript.xml
     

    -- Creditos A Mim Mesmo hahaha. Espero Ajudar Vocês ?
  4. Gostei
    So volto tarde recebeu reputação de Vodkart em Piso Vip com erro ao npc/monster passar por cima   
    -- Creditos: Breno Neves (KotZletY) = Criador do Script! function onStepIn(cid, item, position, fromPosition) if (not isPlayer(cid)) then return true end if getPlayerPremiumDays(cid) >= 1 then doSendMagicEffect(getThingPos(cid), 12) doPlayerSendTextMessage(cid, 25, "Seja Bem-vindo ".. getPlayerName(cid) .." !") else doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 25, "Apenas Players Vip's podem passa.") end return true end  
  5. Gostei
    So volto tarde recebeu reputação de XGaduX em Piso Vip com erro ao npc/monster passar por cima   
    -- Creditos: Breno Neves (KotZletY) = Criador do Script! function onStepIn(cid, item, position, fromPosition) if (not isPlayer(cid)) then return true end if getPlayerPremiumDays(cid) >= 1 then doSendMagicEffect(getThingPos(cid), 12) doPlayerSendTextMessage(cid, 25, "Seja Bem-vindo ".. getPlayerName(cid) .." !") else doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 25, "Apenas Players Vip's podem passa.") end return true end  
  6. Gostei
    Tinha visto isso no servidor do MegaTibia / Kaldrox e achei bem interessante.
     
    Todos os tópicos que encontrei sobre o assunto de alterar a cor das mensagens dos GMs, CMs e ADM no channel Help para vermelho, falavam que tinham que fazer uma configuração na própria source do servidor.
     
    Fiz uma gambiarra que funciona, sem a necessidade de mexer na source do servidor e de utilizar comandos para isso. Testei somente em TFS 0.4 e funciona tranquilamente.
     
    segue abaixo como configurar em seu otserver:
     
    data > talkactions > scripts > crie um arquivo chamado gmsayred.lua e cole o código abaixo:
     
    function onSay(cid, words, param, channel) if channel == CHANNEL_HELP then for _, pid in ipairs(getPlayersOnline()) do doPlayerSendChannelMessage(pid, '', "".. getCreatureName(cid) .. ": ".. words, TALKTYPE_CHANNEL_R1, CHANNEL_HELP) end return true end end  
    em talkactions.xml cole a tag abaixo:

     
    <!-- Gamemasters --> <talkaction default="yes" filter="quotation" logged="no" access="3" event="script" value="gmsayred.lua"/>    
    e pronto! Agora é só enviar alguma mensagem no Help que a mensagem ficará em vermelho.
     

     
  7. Gostei
    So volto tarde deu reputação a sannn em Loja System 2.0 - Talkactions   
    --[[ /////////////////////////////////////////////////////////////////////////////////////////////////////// Discord: San#7791 -- Loja System 2.0 -- TFS 0.3.6 -- para adicionar qualquer item na loja: basta adicionar na tabelinha, seguindo o exemplo do vip! valor = quantidade de DIAMOND a ser cobrada; itemID = item a ser recebido; quantidade = quantidade de itens a ser recebidos; msg = mensagem que o player vai receber após comprar! Feito por San Discord: San#7791 exemplo de como comprar: !loja vip podendo ser adicionado a modules também. tag talkactions.xml // <talkaction words="!loja" case-sensitive="no" event="script" value="Loja System 2.0.lua"/> ////////////////////////////////////////////////////////////////////////////////////////////////////// depois de tantos sistemas com mil elseifs, vim trazer esta contribuição simples, para facilitar a vida de muitos adms! Contribuição pra comunidade =D ]]-- LOJA_CANCEL = "Você não possui diamantes o suficiente." LOJA_INVALID = "Não temos este item a venda na loja!" INVALID = "Comando incorreto" DIAMOND = 2145 -- item que será cobrado; tabelinha = { ["vip"] = {valor = 5, itemID = 2160, quantidade = 1, msg = "Obrigado por comprar um VIP em nossa loja!"}, -- coloque sempre minusculo o nome ! ["vip"]... etc } function onSay(cid, words, param, channel) local msg = string.lower(param) -- Não mexa! if msg == "" then doPlayerSendTextMessage(cid, 22, INVALID) return true end -- verificação if tabelinha[msg] == nil then doPlayerSendTextMessage(cid, 22, INVALID) return true end -- verificação if tabelinha[msg].valor then if getPlayerItemCount(cid, DIAMOND) >= tabelinha[msg].valor then doPlayerRemoveItem(cid, DIAMOND, tabelinha[msg].valor) doPlayerAddItem(cid, tabelinha[msg].itemID, tabelinha[msg].quantidade) doPlayerSendTextMessage(cid, 20, tabelinha[msg].msg) else doPlayerSendTextMessage(cid, 22, LOJA_CANCEL) return true end else doPlayerSendTextMessage(cid, 22, LOJA_INVALID) end return true end  
  8. Gostei
    Nesse tópico você irá aprender a diferença entre ItemID, ActionID e UniqueID na criação de scripts.
     
    Primeiramente vamos começar com o ItemID, imagine que você está criando um simples script que o player pode ter acesso a uma área VIP, só que para ele entrar, primeiro precisará passar por um tile especial que possui o ID 471, até aqui tudo bem, só que qualquer player do servidor irá ter acesso também, já que não possui nenhuma restrição.
     
    Como poderíamos resolver isso?
     
    É aqui que entra a função da ActionID, com ela podemos dizer que os tiles que tiverem o valor 1000 no atributo ActionID, serão os tiles referentes a área VIP. Agora temos uma maneira de diferenciar os tiles comuns dos que são VIPs, veja como ficaria:
     

    (tiles sem as ActionIDs no valor de 1000)
     
    Repare que os 3 tiles tem apenas o atributo ItemID: [471]. Todos os players poderiam passar sem problemas… Caso você use apenas esse tipo de tile para as suas áreas VIPs então não tem problema, agora se você usa esses mesmos tiles para outras finalidades, então você precisará recorrer a ActionID, para que assim consiga diferenciá-los.
     
    Vamos adicionar as ActionIDs então:
     

    (tiles com as ActionIDs adicionados no valor de 1000)
     
    Pronto, agora apenas esse tiles terão a função de controlar a entrada para a área VIP!
     
    Bom, então você deve estar se perguntando, aonde que o UniqueID entra nessa história?
     
    O UniqueID é parecido com a ActionID com apenas uma diferença. O valor que você define para ele deve ser único para o servidor inteiro, caso ele se repita aparecerá um aviso na sua distro, mais ou menos como este…
     

     
    Repare quantos UniqueIDs duplicados existem, isso é ruim porque quanto mais tiver mais tempo demorará para o servidor iniciar, entre outras coisas como conflitos de scripts.
     
    Concluindo…
     
    O ItemID é usado quando você quer que todos os itens com esse ID façam uma ação, por exemplo a fishing rod, qualquer player pode comprar uma no NPC e começar a pescar.
     
    A ActionID é usado geralmente quando você quer diferenciar os mesmos itens um dos outros. Eu tenho 2 crystal rings só que apenas um deles vai me curar 500 de vida quando usá-lo.
     
    O UniqueID é quando você quer definir um ID único para um determinado item e só terá apenas um dele no servidor, um exemplo seria uma estátua que vai dar ao player um determinado item e só existirá somente uma dela no jogo.
     
    Tentei ser o mais breve e direto sobre esse assunto, espero que tenha ficado claro… Agora é só praticar!
  9. Haha
    So volto tarde recebeu reputação de Apache em Seleção Desenvolvedor OTServ   
  10. Gostei
    maneirao, só não entendi bem o intuito do projeto, vai ser aberto para a comunidade?
    foi o que entendi com a última frase do tópico
     
    ademais, projeto bacana
  11. Gostei
    So volto tarde deu reputação a xMonkey em adicionando tempo a storage   
    Olá @Carlinhous1996, boa noite!
     
    Você não explicou exatamente quais storages gostaria de adicionar o tempo.
    Ao meu ver, seria para receber a recompensa?

    Fiz as modificações para só receber as recompensas caso a Storage tenha resetado, após 6 dias.
    Também fiz uma pequena organização ao código.
     
    -- Created by pc98 -- Edited by xMonkey local config = { castle_one_name = "Castle", -- Nome do castelo 1 storages = {154154,54321,123123, 123124}, -- Storages ( se vc eh iniciante, deixe como está...) -- REWARDS I N D I V I D U A I S --------- premio_por_vezes = 1, -- Premio por vezes de conquista de castelo. (1) = Ativo (0) = Desativa. premio_vezes = 3, -- Caso ativo, a quantidade de conquista que o player tem, para ganhar PREMIO. premio = 10522, -- ID do Premio premio_cont = 1, -- Quantidade do Premio premio_reset = 1, -- Resetar o contador do premio depois que atingir a meta?? (1) = SIM (0) = NAO resetReward = {6, "day"} -- Tempo para resetar a storage e receber novamente a recompensa } -- Para deixar mais organizado, jogar essas funções em LIB (se jogar em LIB, remover o local na frente de function) -- Custom Functions (inicio) local function mathtime(table) -- by dwarfer local unit = {"sec", "min", "hour", "day"} for i, v in pairs(unit) do if v == table[2] then return table[1]*(60^(v == unit[4] and 2 or i-1))*(v == unit[4] and 24 or 1) end end return error("Bad declaration in mathtime function.") end local function getTimeString(self) local format = { {'dia', self / 60 / 60 / 24}, {'hora', self / 60 / 60 % 24}, {'minuto', self / 60 % 60}, {'segundo', self % 60} } local out = {} for k, t in ipairs(format) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #format and (#out > 0 and ', ' or '') or ' e ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find('segundo') then local a, b = ret:find(' e ') ret = ret:sub(b+1) end return ret end -- Custom Functions (fim) function onUse(cid, item, frompos, item2, topos) local sto_ativ, position = getGlobalStorageValue(config.storages[2]), getCreaturePosition(cid) if (isPlayerGuild(cid) == true) then if (sto_ativ == 1 or sto_ativ == -1) then guildname = getPlayerGuildName(cid) guild = getPlayerGuildId(cid) guild_sto = getGlobalStorageValue(config.storages[3]) if (guild ~= guild_sto) then setPlayerStorageValue(cid, guild_sto, guild) if (getPlayerStorageValue(cid, config.storages[1]) == -1) then setPlayerStorageValue(cid, config.storages[1], 0) end setGlobalStorageValue(config.storages[3], getPlayerGuildId(cid)) setPlayerStorageValue(cid,config.storages[1], getPlayerStorageValue(cid, config.storages[1]) + 1) sto_vezes_total = getPlayerStorageValue(cid, config.storages[1]) doBroadcastMessage("O(a) "..getCreatureName(cid).." acabou de conquistar o ".. config.castle_one_name .." para a guild \"".. guildname .."\" pela ".. sto_vezes_total .."ª vez(s).", 22) doSendMagicEffect(position, 39) doRemoveItem(item.uid, 1) if (config.premio_por_vezes == 1) then if (getPlayerStorageValue(cid, config.storages[4]) - os.time() > 0) then doPlayerSendTextMessage(cid, 18, "Voce deve aguardar ".. getTimeString(getPlayerStorageValue(cid, config.storages[4]) - os.time()) .." para receber a recompensa novamente.") return true end if (getPlayerStorageValue(cid, config.storages[1]) == config.premio_vezes) then if (getItemWeightById(config.premio, 1) <= getPlayerFreeCap(cid)) then doBroadcastMessage("O ".. getCreatureName(cid) .." ganhou uma(o) ".. getItemNameById(config.premio) .." como recompensa das suas ".. config.premio_vezes .." conquistas!", 21) doPlayerAddItem(cid, config.premio, config.premio_cont) doPlayerSendTextMessage(cid, 18, "Voce recebeu o(a) ".. getItemNameById(config.premio) .." como recompensa das suas ".. config.premio_vezes .." conquistas!") if config.premio_reset == 1 then setPlayerStorageValue(cid,config.storages[1], 0) end setPlayerStorageValue(cid, config.storages[4], os.time() + mathtime(config.resetReward)) else doPlayerSendTextMessage(cid, 18, "Voce nao tem capacidade para ganhar o item. Vamos verificar novamente em 10 segundos!") addEvent(additem, 10000, cid, config.premio, config.premio_cont, config.premio_reset) end end end else doBroadcastMessage("O(a) ".. getCreatureName(cid) .." acabou de conquistar o ".. config.castle_one_name .." para a guild \"".. guildname .."\" pela ".. sto_vezes_total .."ª vez(s).", 22) doSendMagicEffect(position, 39) end else doPlayerSendCancel(cid, "O sistema está desativado") end else doPlayerSendCancel(cid, "É nescessario ter guild para dominar o castelo!") doSendMagicEffect(position, 2) end end function additem(cid, config.premio, config.premio_cont, config.premio_reset) if (not isPlayer(cid)) then stopEvent(additem) return true end if (getItemWeightById(config.premio, 1) <= getPlayerFreeCap(cid)) then doPlayerAddItem(cid, config.premio, config.premio_cont) doPlayerSendTextMessage(cid, 18, "Voce recebeu o(a) ".. getItemNameById(config.premio) .." como recompensa das suas ".. config.premio_vezes .." conquistas!") if (config.premio_reset == 1) then setPlayerStorageValue(cid, config.storages[1], 0) end setPlayerStorageValue(cid, config.storages[4], os.time() + mathtime(config.resetReward)) stopEvent(additem) else doPlayerSendTextMessage(cid, 18, "Voce nao tem capacidade para receber o item. Verificando novamente em 10 segundos!") addEvent(additem, 10000, cid) end end function isPlayerGuild(cid) if (getPlayerGuildName(cid) ~= "") then return true else return false end end  
  12. Gostei
    So volto tarde recebeu reputação de ZeeroBR em Dúvida sobre "smart" magic effects   
    você vai ter que mudar a forma como o client desenha as sprites adicionando o efeito como uma layer da outfit (no caso de oldclient, engenharia reversa) por otc fica mais simples, sobre a questão de venda, você pode falar com o cjaker que é a única pessoa que me vem na cabeça que faz essas engenhocas pra oldclient
     
     
  13. Gostei
    So volto tarde deu reputação a Vitorelias em (Resolvido)Adcionar tempo na alavanca   
  14. Gostei
    So volto tarde deu reputação a r0bert0lol em Tempo na alavanca   
    @bpm91 
    local t = { storage = 676631, -- storage, so mude se tiver usando pra outra coisa. tempo = 24, -- Tempo em minutos. } function onUse(cid, item, frompos, item2, topos) wall1 = {x=32874, y=32354, z=14, stackpos=1} getwall1 = getThingfromPos(wall1) pedra1 = {x=32851, y=32333, z=12, stackpos=1} pedra2 = {x=32852, y=32333, z=12, stackpos=1} getpedra1 = getThingfromPos(pedra1) getpedra2 = getThingfromPos(pedra2) if getPlayerStorageValue(cid, t.storage) < os.time() then if item.itemid == 1945 and getwall1.itemid == 1946 then doTransformItem(item.uid,item.itemid+1) doRemoveItem(getpedra1.uid,1) doRemoveItem(getpedra2.uid,1) elseif item.itemid == 1946 then doTransformItem(item.uid,item.itemid-1) else doPlayerSendCancel(cid,"Sorry, not possible.") end else doSendMagicEffect(getPlayerPosition(cid), 3) doPlayerPopupFYI(cid, "Voce precisa aguardar ".. getPlayerStorageValue(cid, t.storage) - os.time() .." segundos.") end return 1 end  
  15. Gostei
    So volto tarde deu reputação a FeeTads em (Resolvido)Adcionar tempo na alavanca   
    local tempo = getPlayerStorageValue(cid, storage) - os.time() if tempo > 0 then if tempo > 60 then doPlayerSendCancel(cid,"Você precisa esperar "..math.floor(tempo/60).." minutos e "..(tempo%60).." segundos.") else doPlayerSendCancel(cid,"Você precisa esperar "..(tempo%60).." segundos.") end return true end  
     
    eu uso assim pra checar tempo em segundos
    tempo/60 ou seja, tempo da storage - os.time()
    se for 600 segundos
    vai pegar
    600/60 = 10
    e tempo%60 = resto da equação, ou seja, o que sobra da divisão são segundos
     
    math.floor = arredonda pra baixo
    math.ceil = arredonda pra cima
     
    uso o arredonda pra baixo pq normalmente os.time/60 da um numero tipo 21.0505850, ai sempre arredonda pra 2 digitos
  16. Curtir
    So volto tarde deu reputação a xMonkey em (Resolvido)Adcionar tempo na alavanca   
    Bom dia!

    timeToAgain = Tempo para entrar novamente
    posLever = posição da alavanca

    storP = storageValue que adicionei, caso queira mudar, basta trocar
    -- Edited by xMonkey local room = { ['start'] = {x=2192, y=2543, z=8}, ['end'] = {x=2213, y=2564, z=8} } local players_pos = { {x=2194, y=2577, z=8, stackpos = 253}, {x=2195, y=2577, z=8, stackpos = 253}, {x=2196, y=2577, z=8, stackpos = 253}, {x=2197, y=2577, z=8, stackpos = 253} } local boss_name = 'Gravelord' local boss = {x=2203, y=2549, z=8} local kick_pos = {x=2195, y=2583, z=8} local new_player_pos = {x=2205, y=2564, z=8} local player = {0, 0, 0, 0} local all_ready = 0 local timeToAgain = {20, "min"} local posLever = {x=00000, y=00000, z=00} local storP = 12281 -- Para deixar mais organizado, jogar essas funções em LIB (se jogar em LIB, remover o local na frente de function) -- Custom Functions (inicio) local function mathtime(table) -- by dwarfer local unit = {"sec", "min", "hour", "day"} for i, v in pairs(unit) do if v == table[2] then return table[1]*(60^(v == unit[4] and 2 or i-1))*(v == unit[4] and 24 or 1) end end return error("Bad declaration in mathtime function.") end local function getTimeString(self) local format = { {'dia', self / 60 / 60 / 24}, {'hora', self / 60 / 60 % 24}, {'minuto', self / 60 % 60}, {'segundo', self % 60} } local out = {} for k, t in ipairs(format) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #format and (#out > 0 and ', ' or '') or ' e ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find('segundo') then local a, b = ret:find(' e ') ret = ret:sub(b+1) end return ret end -- Custom Functions (fim) function onUse(cid, item, fromPosition, itemEx, toPosition) if item.itemid == 1945 then for i = 1, 4 do player[i] = getThingfromPos(players_pos[i]) if player[i].itemid > 0 and isPlayer(player[i].uid) then if (getPlayerStorageValue(player[i].uid, storP) - os.time() > 0) then doCreatureSay(cid, "O jogador ".. getPlayerName(player[i].uid) .." deve aguardar ".. getTimeString(getPlayerStorageValue(player[i].uid, storP) - os.time()) .." para fazer novamente.", TALKTYPE_ORANGE_1, false, 0, posLever) return true end all_ready = 1 end end if all_ready == 1 then doCreateMonster(boss_name, {x=boss.x, y=boss.y, z=boss.z}) for i = 1, 4 do if isPlayer(player[i].uid) then doSendMagicEffect(players_pos[i], 2) doTeleportThing(player[i].uid, new_player_pos, false) doSendMagicEffect(new_player_pos, 10) setPlayerStorageValue(player[i].uid, storP, os.time() + mathtime(timeToAgain)) addEvent(kickFromArea, (10 * 60 * 1000), player[i].uid, room['start'], room['end'], kick_pos) all_ready = 0 end end doTransformItem(item.uid, 1946) end elseif item.itemid == 1946 then local player_room = 0 for x = room['start'].x, room['end'].x do for y = room['start'].y, room['end'].y do for z = room['start'].z, room['end'].z do local pos = {x=x, y=y, z=z, stackpos=253} local thing = getThingfromPos(pos) if thing.itemid > 0 then if isPlayer(thing.uid) == true then player_room = player_room + 1 end end end end end if player_room >= 1 then doPlayerSendTextMessage(cid, 19, "There is already a player in the boss room.") elseif player_room == 0 then for x = room['start'].x, room['end'].x do for y = room['start'].y, room['end'].y do for z = room['start'].z, room['end'].z do local pos = {x=x, y=y, z=z, stackpos=253} local thing = getThingfromPos(pos) if thing.itemid > 0 then doRemoveCreature(thing.uid) end end end end player_room = 0 doTransformItem(item.uid, 1945) end end return true end  
  17. Curtir
    So volto tarde recebeu reputação de daniel.braga989 em Liberar Personagem No Site Após Missões   
    maneiro a idéia, vou deixar uma lógica para quem quiser se aventurar:
    adiciona um novo valor na db, tabela accounts, que você irá usar para validar no futuro;
    no final da quest do npc, altera esse valor na tabela, para liberar o personagem;
    na hr de exibir o personagem, valida se o player tem esse valor x na tabela, se tiver, exibe o personagem pra criação (verifica esse valor tb na hr de criar, pra evitar falha de segurança)
  18. Obrigado
    So volto tarde deu reputação a FeeTads em (Resolvido)Premmy no nick   
    esse eh o isPremium(cid) da source ja, pra pegar todo o script eh chatinho kkkkk, vou fazer o script pra ele, mas caso ele não tenha na source n vai funfar tbm
    function Split(s, delimiter) result = {}; for match in (s..delimiter):gmatch("(.-)"..delimiter) do table.insert(result, match); end return result; end function onLogin(cid) if getPlayerAccess(cid) > 2 then -- ignora GM+ return true end local func = db.query or db.executeQuery local namePlayer = getPlayerName(cid) if isPremium(cid) and getPlayerStorageValue(cid, 25425466) == -1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você será desconectado pra mudança de nome!") --Msg em vermelho na tela do player addEvent(function() if isCreature(cid) then --verifica se o player ainda ta on e executa setPlayerStorageValue(cid, 25425466, 1) --seta storage da mudança pra 1, pode mudar pra qualquer numero o "25415466" doRemoveCreature(cid) --desloga o char func("UPDATE `players` SET `name` = [P] "..namePlayer.." WHERE `name` = "..namePlayer..";") --executa a função na DB end end, 2000) -- 2000 = 2s pra deslogar o player elseif not isPremium(cid) and getPlayerStorageValue(cid, 25425466) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você será desconectado pra mudança de nome!") addEvent(function() if isCreature(cid) then --verifica se o player ainda ta on e executa setPlayerStorageValue(cid, 25425466, -1) --seta a storage pra -1 -- não mexer em nada daqui pra baixo ****** local split = Split(getPlayerName(cid), " ") -- função pra tirar o [P] local nomeAntigo = '' for i=2, #split do nomeAntigo = nomeAntigo + split[i] if i+1 <= #split then --se ainda tiver mais nomes nomeAntigo = nomeAntigo + ' ' -- caso seja nome composto add espaço ex: Pedro Mauro end end -- não mexer em nada pra cima ****** doRemoveCreature(cid) --desloga o char func("UPDATE `players` SET `name` = "..nomeAntigo.." WHERE `name` = "..namePlayer..";") --executa a função na DB end end, 2000) -- 2000 = 2s pra deslogar o player end return true end  
    @lolksky ta na mão, PORÉM sugiro **FORTEMENTE** tu testar isso antes de por em pratica no teu OT kkk, não cheguei testar pra ver se ta 100%
  19. Gostei
    So volto tarde deu reputação a dumazin em [ZnoteAAC] 1x - Botão Registrar   
    Ola, estou usando um layout do Znoteaac, que tem a função de Registro/Conta, que ao logar na sua conta a imagem muda, porem o codigo em si nao funciona, voce loga na conta e a imagem continua como "Registrar". Alguem teria alguma solução ? 
     
    Codigo:
     
    Imagem:

  20. Curtir
    É pra por online mesmo! formação de equipe mesmo a parte dos sistemas eu faço, só precisaria de pessoas pra contribuir tipo em sprites
  21. Gostei
    So volto tarde recebeu reputação de Sipidripisipin em sprites db   
    Este tópico foi movido para a seção de Suporte Otserv Alternativo
  22. Gostei
    So volto tarde recebeu reputação de vitinhoo96 em Erro castle actions   
    tenta mudar teu action pra esse:
     
     
    na verdade, em lua, é possível instanciar as funções através das locais, e os paramêtros só são passados quando vc chama a função instanciada, como por exemplo:
     
    local rem = doRemoveCreature rem(cid)  
  23. Obrigado
    So volto tarde recebeu reputação de Thony D. Serv em Rank Storage   
  24. Curtir
    So volto tarde recebeu reputação de Thony D. Serv em Rank Storage   
    local config = { sagas = { ["Pain"] = { storage = 47771, storage_val = 1, -- valor do storage p/ ter a saga }, ["Naruto"] = { storage = 47772, storage_val = 1, -- valor do storage p/ ter a saga }, } } function onSay(cid, words, param, channel) local str = {} for k, v in pairs(config.sagas) do local txt = k if (getPlayerStorageValue(cid, v.storage) == v.storage_val) then txt = txt.." - Concluida.\n" else txt = txt.." - Nao concluida.\n" end table.insert(str, txt) end doShowTextDialog(cid, 6533, table.concat(str)) return true end  
  25. Gostei
    So volto tarde recebeu reputação de vitinhoo96 em Erro castle actions   
    Este tópico foi movido para a seção de Suporte Otserv.
    não tem nada relacionado ao castle na sua pasta lib?

Informação Importante

Confirmação de Termo