Ir para conteúdo

gmstrikker

Campones
  • Total de itens

    89
  • Registro em

  • Última visita

Histórico de Reputação

  1. Amei
    gmstrikker deu reputação a HolyMaN em Ajuda install AGS SYSTEM erro SQL   
    vc usa mysql como banco de dados?..
    se sim, executa essa trigger no phpmyadmin dentro do banco q vc criou..
    CREATE TRIGGER `rank_id update` AFTER UPDATE OF rank_id ON players BEGIN UPDATE players SET guild_id = IFNULL((SELECT guild_id FROM guild_ranks WHERE `id` = rank_id), 0); talvez n tenha a entidade rank_id, pra criar executa esse
     
    ALTER TABLE `players` ADD `rank_id` VARCHAR(20);  
    ñ conheço sqlite, creio q funcione parecido com mysql.. vai ter q pesquisar pra conseguir alterar.
  2. Upvote
    gmstrikker deu reputação a nociam em Mouse Button   
    Alguem sabe qual e o comando pra usar o botão do mouse do meio (OTCLIENT) já tentei vários e não vai esse foi o ultimo?
     
    MouseMiddleButton
     
    encontrei já pode fechar a reposta era
     
    MouseMidButton
  3. Upvote
    gmstrikker deu reputação a Omega em Advanced Guild System   
    Bom, eu percebi que algo que poderia deixar os servidores bem legais seria um foco maior nas guilds em si. Então, resolvi criar um sistema que fosse melhorar isso, e surgiu o Advanced Guild System.

    Atualizações
    22/01/14 - Publicação da versão 1.0 21/04/14 - Adição de mais tratamento de erros Informações
    O AGS, em si, não faz nada. Isso mesmo. Ele é uma biblioteca com várias funções focadas para guilds. Além disso, ele também faz algumas modificações no seu banco de dados ao ser instalado:
    Cria a tabela guild_storages; Adiciona a coluna pontos na tabela guilds, se ela não existir; Adiciona a coluna balance na tabela guilds, se ela não existir; Adiciona a coluna guild_id na tabela players; Adiciona um gatilho(trigger) para atualizar a coluna guild_id toda vez que ocorrer uma mudança na tabela guilds. Para acompanhar essa biblioteca e mostrar sua utilidade, fiz alguns sistemas utilizando ela:
    Guild Rank; Guild Tasks; Guild Banker. Funções


    Instalação



    Código
    Salve-o como guildlib.lua em data/lib




    Problemas na Instalação?
    Caso uma ou mais das colunas adicionadas já existam no seu banco de dados, execute as queries manualmente:



    Depois disso, considere seu AGS instalado.
  4. Upvote
    gmstrikker deu reputação a Night Wolf em O poder é seu, o que desenvolver?   
    O que desenvolver?
     
    Olá caros membros do nosso lindíssimo fórum, hoje vim falar pra vocês um pouquinho dos nossos projetos...
    Nós da equipe do xtibia iremos começar a desenvolver um servidor em parceria com a comunidade, vocês dirão o tema e nós iremos correr atrás de desenvolver todo o resto e montar o servidor da forma que vocês desejarem. Claro que todos aqui terão acesso e poderão ajudar através do github, isso é uma forma de haver uma maior interação entre os membros da equipe (euzinho, por exemplo) e você caro membro que está lendo isso agora. Sempre teve o sonho de montar uma equipe mas não conseguia achar gente pra isso? Não desista desse sonho!! Agora os melhores de cada área aqui desse fórum poderão se juntar pra virar uma equipe fantástica. Emocionante? Já quer começar??
     
    É só votar na enquete e comentar aqui nesse tópico, a nossa equipe irá se encarregar de divulgar e hostear o servidor oficial assim que o tema for definido; Paralelamente teremos sempre a pasta do servidor pública e aberta pra vocês poderem estudar os sistemas que fazemos e sugerir modificações e melhoras. Espero que vocês se engajem. Abraços do Lobo.
  5. Upvote
    gmstrikker deu reputação a dalvorsn em Problema client   
    Habilita a feature de transparencia
  6. Upvote
    gmstrikker deu reputação a dalvorsn em Mensagem ao dropar loot   
    Exatamente como eu tinha dito:
    local config = { ids = {5926, 3940, 11119, 10518, 10521}, --ID do item. drop_effect = true --Efeito que aparecerá em cima da corpse (apenas para o dono da corpse). OPCIONAL! Se não quiser, coloque false.} function examine(cid, position, corpse_id, name) if not isPlayer(cid) then return true end local corpse = getTileItemById(position, corpse_id).uid if corpse <= 1 or not isContainer(corpse) then return true end for slot = 0, getContainerSize(corpse) - 1 do local item = getContainerItem(corpse, slot) if item.uid <= 1 then return true end if isInArray(config.ids, item.itemid) then doBroadcastMessage("[LOOT MENSAGEM]: O jogador ("..getCreatureName(cid)..") dropou um item exclusivo de um ("..name..").", 19) if config.drop_effect then doSendMagicEffect(position, config.drop_effect, cid) end end endend function onKill(cid, target) if not isMonster(target) then return true end local monster_name = getCreatureName(target) local corpse_id = getMonsterInfo(monster_name).lookCorpse addEvent(examine, 5, cid, getThingPos(target), corpse_id, monster_name) return trueend  
  7. Upvote
    gmstrikker deu reputação a dalvorsn em Mensagem ao dropar loot   
    Tu precisa transformar o id em uma tabela, e mudar a verificação de "item.itemid == config.itemid" para isInArray(config.items, item.itemid)
  8. Upvote
    gmstrikker deu reputação a dalvorsn em Mensagem ao dropar loot   
    Creio eu que não exista um callback para isso em lua, e registrar uma creaturescript pra cada monstro é inviavel. Minha sugestão é que seja feito nas sources, diretamente na função void MonsterType::dropLoot(Container* corpse). Dai um meio facil de configurar seria criando um novo atributo dentro da tag do loot no xml do monstro identificando que esse item deve ter uma mensagem exclusiva.
     
    Ou de maneira alternativa, tu pode fazer um onKill registrado no player, que verifica o corpses a procura do item, e caso encontre manda a mensagem.
  9. Upvote
    gmstrikker deu reputação a dalvorsn em Problem Lubuntu + Elfbot - Shift+F12 [20 REPS]   
    Isso sim, mas não necessariamenté algo trivial, o esconder que tu diz é fechar o programa? ou tem mais alguma função, se for eu sei que tem como tu fazer bind de hotkeys no linux, com alguns programas, um deles se nao me engano seria o xtools(algo assim), dai faria um shell pra matar, e outro pra ligar, mas não é bem isso que tu quer ne?
  10. Upvote
    gmstrikker deu reputação a dalvorsn em Problem Lubuntu + Elfbot - Shift+F12 [20 REPS]   
    Provavelmente o elf usa o hook do windows pra ouvir as teclas, pode ser que o bug seja por isso, ai nao tem muito o que fazer, é incompatibilidade do wine
  11. Upvote
    gmstrikker deu reputação a dalvorsn em Problem Lubuntu + Elfbot - Shift+F12 [20 REPS]   
    Rapaz, normalmente eu rodo programas no wine e os atalhos funcionam normalmente, deve ter algo bloqueando isso, ja tentou usar diretamente pelo wine sem o playonlinux? Quanto ao elfbot especificamente eu nao sei dizer, não jogo tibia em si, e nunca usei ele, menos ainda no linux
  12. Upvote
    gmstrikker deu reputação a Night Wolf em globalevent 1 em 1 minuto ganhar 1 minuto de stamina   
    versão recursiva (só jogar em login.lua antes do ultimo return true e botar embaixo
    cancelStamina(cid)
    function cancelStamina (uid) if isPlayer(uid) then doPlayerAddStamina(uid, 1) end addEvent(cancelStamina, 1000, uid) end por globalevents fica melhorzinho mas to pelo cel agr
  13. Upvote
    gmstrikker deu reputação a Danihcv em globalevent 1 em 1 minuto ganhar 1 minuto de stamina   
    @@gmstrikker, ao dar return TRUE, vc está retornando uma string basicamente, e não um sinal booleano.

    #EDIT: caso o seu pedido já tenha sido resolvido, pf marque o post que melhor respondeu sua duvida como Resolvido (esse botão s eencontra no rodapé de cada post)
  14. Upvote
    gmstrikker deu reputação a Night Wolf em globalevent 1 em 1 minuto ganhar 1 minuto de stamina   
    @@gmstrikker, sim.. só coloca return true porque return TRUE não "existe"
  15. Upvote
    gmstrikker deu reputação a meubk em Passar script de 1x pra 0.4 [dou 10 reps qm conseguir resolver]   
    local spells = {
    [1] = { --sorcerer
    level = {
    [1] = {"utevo lux", "exura", "adori"},
    [40] = {"exevo gran mas vis"}
    }
    },
    [2] = { --druid
    level = {
    [1] = {"utevo lux", "exura", "adori"},
    [28] = {"exevo gran mas pox"}
    }
    },
    [3] = { --paladin
    level = {
    [1] = {"utevo lux", "exura", "exevo con"},
    [14] = {"exevo con vis"}
    }
    },
    [4] = { --knight
    level = {
    [1] = {"utevo lux", "exura"},
    [5] = {"exori"}
    }
    }
    }
    local vocs = {
    {1,4,8},
    {2,5,9},
    {3,6,10},
    {4,7,11}
    }
     
    local vocationSpells = {}
     
    function onAdvance(cid, skill, oldLevel, newLevel)
    if skill == 7 then
    for i, class in ipairs(vocs) do
    if isInArray(class, getPlayerVocation(cid)) then
    vocationSpells = spells
    end
    end
     
    if vocationSpells == nil then
    return false
    end
     
    local lvl = getPlayerMagLevel(cid)
    local playerSpells = vocationSpells.level[lvl]
     
    if #playerSpells == nil or #playerSpells == 0 then
    return false
    end
     
    for x = 1, #playerSpells do
    doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "New spells for level["..lvl.."]: "..playerSpells[x]..".")
    end
    end
    return true
    end

     
  16. Upvote
    gmstrikker deu reputação a Bruno em NPC promotion (10 reps)   
    Segue:
     
     
  17. Upvote
    gmstrikker deu reputação a Bruno em NPC promotion (10 reps)   
    Foi uma definição incorreta, kkkk, ai está:
     
     
  18. Upvote
    gmstrikker deu reputação a Bruno em NPC promotion (10 reps)   
    Tenta assim:
     
     
  19. Upvote
    gmstrikker deu reputação a Bruno em NPC promotion (10 reps)   
    @@gmstrikker,
     
    XML:
    <?xml version="1.0" encoding="UTF-8"?> <npc name="Promotion VIP" script="data/npc/scripts/promotions.lua" walkinterval="2000" floorchange="0"> <mana now="800" max="800"/> <health now="200" max="200"/> <look type="133" head="114" body="119" legs="132" feet="114"/> </npc> Script Lua (promotions.lua): 
     
  20. Upvote
    gmstrikker deu reputação a RigBy em Pq os monstros passivos no meu OT estão dando follow?   
    muda o:
    <flag targetdistance="1"/> para 7, 8 ou 10
  21. Upvote
    gmstrikker deu reputação a zipter98 em Como usar essa msm função pra local chat   
    20 é o número do canal.
    <channel id="20" name="Loot"/>
    Você pode ver a lista de cores na tabela TALKTYPE_TYPES, de 000-constant.lua. Entretanto, nem todas as opções lá disponíveis são válidas para a função doPlayerSendChannelMessage.
    As que funcionam nesta função são aquelas com o prefixo TALKTYPE_CHANNEL.
    Exemplo:
     
    TALKTYPE_CHANNEL_O TALKTYPE_CHANNEL_RA TALKTYPE_CHANNEL_Y
  22. Upvote
    gmstrikker deu reputação a zipter98 em Como usar essa msm função pra local chat   
    doPlayerSendTextMessage(pid, MESSAGE_INFO_DESCR, 'Loot of ' .. monster .. ': ' .. (ret ~= '' and ret or 'nothing'))

     
  23. Upvote
    gmstrikker deu reputação a zipter98 em Como usar essa msm função pra local chat   
    doPlayerSendChannelMessage(pid, '', 'Loot of ' .. monster .. ': ' .. (ret ~= '' and ret or 'nothing'), TALKTYPE_CHANNEL_RN, 20)

     
  24. Upvote
    gmstrikker deu reputação a zipter98 em Essa pot healar no máximo 150k de health e mana!   
    Desculpe minha má interpretação, mas você quer que a poção cure 150k ou, caso o valor máximo de HP/mana ultrapasse esse limite, a quantia curada seja essa?
  25. Upvote
    gmstrikker deu reputação a zipter98 em [Pedido] Ganhar Item quem Bater no Monstro   
    data/creaturescripts/scripts
    local config = { name = "monster_name", --Nome do monstro. minDamage = 7000, --Dano mínimo para receber as recompensas. items = { prize = {itemid, count}, --{ID do item, quantidade} medal = xxx, --ID da medalha. }, storage = 91828, } function onStatsChange(cid, attacker, type, combat, value) if isPlayer(attacker) and isMonster(cid) and getCreatureName(cid) == config.name and type == STATSCHANGE_HEALTHLOSS then local damage = getPlayerStorageValue(attacker, config.storage) < 1 and 0 or getPlayerStorageValue(attacker, config.storage) setPlayerStorageValue(attacker, config.storage, damage + value) end return true end function onDeath(cid, corpse, deathList) for _, pid in pairs(deathList) do local damage = getPlayerStorageValue(pid, config.storage) if damage >= config.minDamage then doPlayerSendTextMessage(pid, 27, "For helping killing "..config.name..", you received a medal and "..config.items.prize[2].."x "..getItemNameById(config.items.prize[1])..".") doPlayerAddItem(pid, config.items.prize[1], config.items.prize[2]) doItemSetAttribute(doPlayerAddItem(pid, config.items.medal, 1), "description", "Medalha de honra ganha por "..getCreatureName(pid).." por ajudar a derrotar o "..config.name.." no dia "..os.date("%D")..".") setPlayerStorageValue(pid, config.storage, -1) end end db.executeQuery("UPDATE player_storage SET value = -1 WHERE key = "..config.storage) return true end Tags: <event type="statschange" name="mDamage" event="script" value="nome_do_arquivo.lua"/> <event type="death" name="mItems" event="script" value="nome_do_arquivo.lua"/> Em login.lua: registerCreatureEvent(cid, "mDamage") No arquivo .xml do monstro: <script> <event name="mItems"/> </script>
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...