Inovador, eu nao tinha visto sistema como esse, agora é só testar tudo pra ver se nao tem nenhum bug, aaahhh e é bom os donos do servers colocar um preço bem alto porque se nao vai ser um SPAM da poh# no BC
Abraços, Rep+
Por Demonbholder, 14 de fev. de 2011 em NPCs, monsters e raids
Inovador, eu nao tinha visto sistema como esse, agora é só testar tudo pra ver se nao tem nenhum bug, aaahhh e é bom os donos do servers colocar um preço bem alto porque se nao vai ser um SPAM da poh# no BC
Abraços, Rep+
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

wow,ótimo sistema cara,ctz vai ser muito usado nos servidores,pois inova no rpg (:
parabéns.
info
Grupo: Cavaleiro
Registrado: 26/02/10
Posts: 158
Reputação: +35
Gênero: Masculino
Char no Tibia: Vampiresco

Excelente sistema, ideia excepcional a sua, e funciono.. meus sinceros parabéns!
Cara você é um crânio.. Sei que não tenho muita moral para falar mais ! Fico mais que ótimo.E outra vou colocar em meu server e garanto que vai ficar bom ![]()
REP+
info
Grupo: Barão
Registrado: 31/07/10
Posts: 247
Reputação: +1

Só tenho uma coisa a dizer, Parabéns!
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

Valeu galera, tinha uns errinhos no npc, mas agora ta arrumado.
info
Grupo: Cavaleiro
Registrado: 03/03/07
Posts: 150
Reputação: +48
Gênero: Masculino
Char no Tibia: Kaball Madness

Script Ótimo e aprovado! Ótima ideia aalem de ser um script perfeito e incentivador de "movimentação" no server,vlw! :smile_positivo:
info
Grupo: Campones
Registrado: 30/10/05
Posts: 80
Reputação: -1
Char no Tibia: Cren Lucienuk

Ótima idéia, inovador mesmo. Script ta perfeito pelo que vi, vo indicar pros meus amigos que tão criando servers.
info
Grupo: Conde
Registrado: 08/12/10
Posts: 960
Reputação: +132
Char no Tibia: Wayhell Soul

Ideias Cada Vez Melhores e Achei A Sua Como Todos Disseram:
Inovadora :button_ok: !
Editado Fevereiro 17 por cmgabriel
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

Muito obrigado pelos comentários, isso me levou a criar a versão 1.5, já disponível, com algumas alterações, mas o principal motivo foi diminuir os scripts mesmo.
info
Grupo: Cavaleiro
Registrado: 26/02/10
Posts: 158
Reputação: +35
Gênero: Masculino
Char no Tibia: Vampiresco

A versão 1.5 melhor ainda, obrigado Demonbholder pelo belo script!
info
Grupo: Campones
Registrado: 26/02/11
Posts: 20
Reputação: 0

Nice,coloquei no meu OT ![]()
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

Valeu pessoal, o que vocês acham de fazer uma formula para o valor da recompensa? Se aprovarem, logo estarei fazendo.
Exemplo:
Preço + Formula.
Até.
info
Grupo: Campones
Registrado: 24/02/11
Posts: 67
Reputação: +8

Muito Bem.
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder
Olá galera do XTibia; eu postei já vários tópicos, incluindo sistemas, e scripts em parceria com o Vodkart, por exemplo, que infelizmente, não foram muito apreciados (links na minha assinatura). Então eu pensei em fazer algo grande, um sistema que talvez não fosse compartilhado por outras pessoas, sem negociações de dinheiro. Foi ai que me veio uma idéia, que inicialmente eu pensei que poderia ser grande, um sistema difícil e com vários scripts. Trabalhando nisso por alguns dias, eu desenvolvi um sistema de reputação, ou recompensa, como preferirem, utilizando apenas dois scripts lua. Não posso dizer que foi fácil, tive meus problemas, mas não foi tão difícil quanto o esperado.
Bom, vamos ao que interessa; o sistema funciona assim: Há um npc, e este npc pode colocar recompensas pela cabeça dos jogadores, desde que você o pague, é claro. São dez níveis de recompensa, sendo que a cada nível, a recompensa vai melhorando. Exemplo de uso:
Vamos aos scripts e suas explicações:
Versão 1.5:
CreatureScripts:
Vá em data/creaturescripts/scripts, crie um arquivo .lua, e cole isto nele:
function onKill(cid, target) local award = { [0] = 2160, -- crystal coin [1] = 2497, -- crusader helmet [2] = 2487, -- crown armor [3] = 2195, -- boots of haste [4] = 2520, -- demon shield [5] = 2470, -- golden legs [6] = 2466, -- golden armor [7] = 2506, -- dragon scale helmet [8] = 2492, -- dragon scale mail [9] = 2514 -- mastermind shield } if getPlayerStorageValue(target, 13131) > -1 then doPlayerAddItem(cid, award[getPlayerStorageValue(target, 13131)]) setPlayerStorageValue(target, 13131, -1) end return TRUE endFeito isso, nesta mesma pasta, abra o arquivo login.lua, ache as tags que registram eventos, que são algo assim:
Entre alguma delas, adicione esta tag:
Para finalizar a parte do CreatureScripts, vá em data/creaturescripts, abra o arquivo creaturescripts.xml e cole esta tag em algum lugar:
Npc:
Vá em data/npcs, crie um arquivo .xml e cole isto nele:
<?xml version="1.0" encoding="UTF-8"?> <npc name="Matador por Recompensas" script="data/npc/scripts/Nome_do_Arquivo.lua" walkinterval="2000" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="152" head="79" body="128" legs="114" feet="0" addons="3"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. Diga {promover, recompensa, level,} ou para mais informacoes, diga {informacoes}." /> </parameters> </npc>Agora vá em data/npcs/scripts, crie um arquivo .lua e cole isto nele:
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 preco = { [-1] = 100000, [0] = 200000, [1] = 300000, [2] = 400000, [3] = 500000, [4] = 600000, [5] = 700000, [6] = 800000, [7] = 900000, [8] = 1000000 } if(msgcontains(msg, 'promover')) then selfSay('Diga o nome do jogador que voce deseja promover.', cid) talkState[talkUser] = 1 elseif isPlayer(getPlayerByNameWildcard(msg)) and talkState[talkUser] == 1 then if getPlayerStorageValue(getPlayerByNameWildcard(msg), 13131) < 9 then if doPlayerRemoveMoney(cid, preco[getPlayerStorageValue(getPlayerByNameWildcard(msg), 13131)]) == TRUE then setPlayerStorageValue(getPlayerByNameWildcard(msg), 13131, getPlayerStorageValue(getPlayerByNameWildcard(msg), 13131) + 1) doBroadcastMessage("O jogador "..msg.." foi promovido para o nivel "..getPlayerStorageValue(getPlayerByNameWildcard(msg), 13131)..".", BroadCast_Type) else selfSay('Descupe, voce não possui o dinheiro necessário para promover este jogador.', cid) end else selfSay('O jogador que voce escolheu ja foi promovido ao maximo.', cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('Certo entao.', cid) end if(msgcontains(msg, 'level')) then selfSay('Diga o nome do jogador que voce deseja checar o level.', cid) talkState[talkUser] = 2 elseif isPlayer(getPlayerByNameWildcard(msg)) and talkState[talkUser] == 2 then if getPlayerStorageValue(getPlayerByNameWildcard(msg), 13131) >= 0 then selfSay("O level de recompensa deste jogador é "..getPlayerStorageValue(getPlayerByNameWildcard(msg), 13131)..".", cid) else selfSay('Este jogador nao esta sendo procurado.', cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('Certo entao.', cid) end if(msgcontains(msg, 'recompensa')) then selfSay('Deseja checar o seu level de recompensa?', cid) talkState[talkUser] = 3 elseif (msgcontains(msg, 'yes') and talkState[talkUser]) == 3 then if getPlayerStorageValue(cid, 13131) >= 0 then selfSay("O seu level de recompensa é "..getPlayerStorageValue(cid, 13131)..".", cid) else selfSay('Voce nao esta sendo procurado.', cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('Certo entao.', cid) end if(msgcontains(msg, 'informaçoes')) then selfSay('O sistema funciona da seguinte maneira: voce pode colocar recompensas pela cabeça de jogadores, assim, quem matar estes jogadores irá ganhar algum item, porem, ha um alto custo para utilizar os meus serviços.', cid) talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())As seguintes opções de palavras são validas para versão 1.5:
Espero que gostem, me esforcei de mais para fazer este sistema, espero que todos que utilizarem, comentem; é só comentar dizendo se gostou ou não, ou se encontrou algum erro, enfim, comentem.
Editado Setembro 8 por Demonbholder