-
Total de itens
89 -
Registro em
-
Última visita
Histórico de Reputação
-
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.
-
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
-
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.
-
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.
-
-
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
-
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)
-
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.
-
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?
-
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
-
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
-
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
-
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)
-
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"
-
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
-
-
gmstrikker deu reputação a Bruno em NPC promotion (10 reps)
Foi uma definição incorreta, kkkk, ai está:
-
-
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):
-
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
-
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 -
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'))
-
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)
-
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?
-
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.