Ir para conteúdo
Entre para seguir isso  
Socket

Wanted Dead or Alive!(V3)

Recommended Posts

Socket    0
Socket

Wanted Dead or Alive!

Autor: Socket

Servidor Testado: TFS 0.3.5 (Crying Damson 5) - 8.5

 

Versão: Terceira versão adaptada do meu Sistema de Reputação.

 

Comentários: Esse sistema foi feito em luaSQL (Comunicação da linguagem lua com a SQL), porém, testado inteiramente em MySql, por isso não garanto a funcionalidade do mesmo em SQLite.

 

Talkaction:

[spoiler=Talkaction]Crie um arquivo chamado rewardtalk com a extensão .lua em data\talkactions\scripts e cole o conteúdo a seguir dentro do mesmo:

local config = {
 rew = false,
 minLevel = 80,
 taxa = 100000
 }

function onSay(cid, words, param)
name = {}
for i in param:gmatch('(%a+)') do
 table.insert(name,i)
end
name = table.concat(name, ' ')  
 if words == '!addreward' then
   if getPlayerAccess(cid) > 3 then
     if param=='' then
       doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Player not found.")
       return true
     end
     if name == '' and param:match('(%d+)')~= nil then
       doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Choose the player to add ".. param:match('(%d+)') .." in his reward.")
       return true
     elseif param:match('(%d+)') == nil then
       doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Choose the reward to add to ".. name ..".")
       return true
     end
     if getPlayerGUIDByName(name) then
       doPlayerAddReward(name,tonumber(param:match('(%d+)')))
       doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "You added ".. tonumber(param:match('(%d+)')) .. " gold coins in the reward of ".. name ..".")
       return true
     else
       doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Player not found.")
       return true
     end
   else
     if param=='' then
       doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, 'Player not found.')
       return true
     end
     if name == '' and param:match('(%d+)')~= nil then
       doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Choose the player to add ".. param:match('(%d+)') .." in his reward.")
       return true
     elseif param:match('(%d+)') == nil then
       doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Choose the reward to add to ".. name ..".")
       return true
     end
     if getPlayerGUIDByName(name) then
     local query = db.getResult('SELECT * FROM `players` WHERE `name` = \''.. name ..'\';')
     local level = query:getDataInt('level')
     local sexa = query:getDataInt('sex')
     local taxa = config.taxa+tonumber(param:match('(%d+)'))
       if level > config.minLevel then 
         if doPlayerRemoveMoney(cid,taxa) then
           doPlayerAddReward(name,tonumber(param:match('(%d+)')))
           doPlayerSendTextMessage(cid,MESSAGE_EVENT_ORANGE,'You added '.. param:match('(%d+)') ..' gold coins in the reward of '.. name ..' for '.. taxa ..' gold coins.')
           return true
         else
           doPlayerSendTextMessage(cid,MESSAGE_EVENT_ORANGE,'You need '.. taxa ..' gold coins to add '.. param:match('(%d+)') ..' gold coins in the reward of '.. name ..'.')
           return true
         end
       else
         local sex = {
         [0] = 'her',
         [1] = 'his',
         }
         doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, name..' must be level '.. config.minLevel ..' to you add gold coins in '.. sex[sexa] ..' reward.')
         return true
       end
     else
       doPlayerSendTextMessage(cid,MESSAGE_EVENT_ORANGE,'Player not found.')
       return true
     end        
   end
 elseif words == '!removereward' then
   if param=='' then
     doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Player not found.")
     return true
   end
   if name == '' and param:match('(%d+)')~=nil then
     doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Choose the player to remove ".. param:match('(%d+)') .." from his reward.")
     return true
   elseif param:match('(%d+)') == nil then
     doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Choose the reward to remove from ".. name ..".")
     return true
   end
   if getPlayerGUIDByName(name) then
     doPlayerRemoveReward(name,tonumber(param:match('(%d+)')))
     doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "You removed ".. param:match('(%d+)') .. " gold coins in the reward of ".. name ..".")
     return true
   else
     doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Player not found.")
     return true  
   end
 elseif words == '!setreward' then
   if param=='' then
     doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Player not found.")
     return true
   end
   if name == '' and param:match('(%d+)')~=nil then
     doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Choose the player to set his reward to ".. param:match('(%d+)') ..".")
     return true
   elseif param:match('(%d+)') == nil then
     doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Choose the reward to set from ".. name ..".")
     return true
   end
   if getPlayerGUIDByName(name) then
     setPlayerReward(name,tonumber(param:match('(%d+)')))
     doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "You set the reward from ".. name .." to ".. param:match('(%d+)') ..".")
     return true
   else
     doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Player not found.")
     return true
   end
 elseif words == '!reward' then
   if config.rew then
     local voca = {[0]='No vocation', [1]='Sorcerer',[2]='Druid',[3]='Paladin',[4]='Knight',[5]='Master Sorcerer',[6]='Elder Druid',[7]='Royal Paladin',[8]='Elite Knight'}

     if getPlayerGUIDByName(name) then
       local voca = {[0]='No vocation', [1]='Sorcerer',[2]='Druid',[3]='Paladin',[4]='Knight',[5]='Master Sorcerer',[6]='Elder Druid',[7]='Royal Paladin',[8]='Elite Knight'}
       local query = db.getResult("SELECT `level`,`vocation` FROM `players` WHERE `id` = ".. getPlayerGUIDByName(name) ..";")
       local level, voc = query:getDataInt('level'), query:getDataInt('vocation')
       doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "\n|¯¯¯¯| "..param..": Level "..level.."\n|            | "..voca[voc].."\n|____| Reward: ".. getPlayerReward(param) .. "\nWanted") 
       return true
     else
       doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Player not found.")
       return true
     end
   end
 elseif words == '!pay' then
 gold = param:match('(%d+)')
   if gold then
     if type(tonumber(gold)) == 'number' then
       if getPlayerReward(getPlayerName(cid)) >= tonumber(gold) then
         if doPlayerRemoveMoney(cid, tonumber(gold)) then
           doPlayerRemoveReward(getPlayerName(cid),tonumber(gold))
           doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "You removed ".. gold .." gold coins from your reward.")
           return true
         else
           doPlayerSendTextMessage(cid,MESSAGE_EVENT_ORANGE, "You don't have ".. gold .." gold coins.")
           return true
         end
       else
         doPlayerSendTextMessage(cid,MESSAGE_EVENT_ORANGE, "You don't have ".. gold .." gold coins in your reward.")
         return true
       end
     else
       doPlayerSendTextMessage(cid,MESSAGE_EVENT_ORANGE, gold.." isn't a number.")
       return true
     end
   else
       doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Choose how many gold coins you'll remove from your reward.")
       return true
   end
 elseif words == '!support' then
   local r = (config.rew == true and '\n\n!reward Socket » Will show how many gold coin the government will pay if you kill Socket.' or '')
   local str = "¤Functions:\n\n!addreward Socket 10 » Will add 10 gold coins in the reward of Socket for a random price.\n\n!pay 10 » Will remove 10 gold coins from your reward.\n\n!support » Will show this to you." .. r
   local str1 = "¤Functions:\n\n!addreward Socket 10 » Will add 10 gold coins in the reward of Socket.\n\n!removereward Socket 10 » Will remove 10 gold coins from the reward of Socket.\n\n!setreward Socket 10 » Will change the reward of Socket to 10.\n\n!pay 10 » Will remove 10 gold coins from your reward.\n\n!support » Will show this to you." .. r
   if getPlayerAccess(cid) > 3 then
     doPlayerPopupFYI(cid, str1)
     return true
   else
     doPlayerPopupFYI(cid, str)
     return true
   end
 elseif words == '!lookrew' then
   if getPlayerStorageValue(cid, 1078) == -1 then
     setPlayerStorageValue(cid, 1078, 1)
     doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Now you see the reward from players but can't see the information of the players.")
     return true
   else
     setPlayerStorageValue(cid, 1078, -1)
     doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Now you see the information of the players but you can't see the reward from the players.")
     return true
   end      
 end
end

Comentário:

Na V2 utilizava-se o comando !reward 'playerName' para saber a reward de alguém, mas agora na V3 a reward aparece depois do level no look, por isso fica a escolha de manter ou não o comando !reward. Configure na primeira linha:

local config = {
 rew = false,
 minLevel = 80,
 taxa = 100000
 }

rey: false para desativar o comando !reward ou true para ativar.

minLevel: Esse é o level minimo pra uma pessoa ter seuspontos adcionados por outra.

taxa: Éa taxa cobrada para adcionar pontos a outra pessoa, se eu for adcionar 50 será cobrado taxa+50.

 

 

Movement:

[spoiler=Movement]Crie um arquivo chamado rewardmove com a extensão .lua em data\movements\scripts e cole isso em seu conteúdo:

local sex = {
 [0] = 'she\'s',
 [1] = 'he\'s',
}
local config = {
 bc = true,
 uid = 1000,
 reward = 1500
}

function onStepIn(cid, item, pos)
 if item.uid == config.uid then
   doPlayerAddReward(getPlayerName(cid),config.reward)
   doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "You entered an area of government, now you're wanted for ".. getPlayerReward(getPlayerName(cid)) .." gold coins.")
   if config.bc == true then
     doBroadcastMessage(getPlayerName(cid).." have entered an area of government, now ".. sex[getPlayerSex(cid)] .." wanted for ".. getPlayerReward(getPlayerName(cid)) .. " gold coins.", 25)
   end
 end
 return true
end

Configure:

local config = {
 bc = true,
 uid = 1000,
 reward = 1500
}

bc: Se for true irá mandar uma mensagem global falando que tal player passou num lugar do governo.

uid: Unique id do tile.

reward: reward que vai adcionar ao player que passar por ali.

 

 

Creature script:

[spoiler=Creature script 1]Crie um arquivo chamado rewardkill com a extensão .lua em data\creaturescripts\scripts e cole isso em seu conteúdo:

function onKill(cid,target)

 if isPlayer(cid) and isPlayer(target) then
   local sk = getCreatureSkullType(target)
   local level = getPlayerLevel(target)
   local prize = {0.7*level*100, 1.3*level*100}
   if getPlayerIp(cid) ~= getPlayerIp(target) then
     if sk == SKULL_WHITE or sk == SKULL_RED or sk == SKULL_BLACK then
       if haveReward(getPlayerName(target)) then
         doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "The government payed ".. getPlayerReward(getPlayerName(target)) .." gold coins for the killer of ".. getPlayerName(target) ..". Thank you.")
         doPlayerAddMoney(cid, getPlayerReward(getPlayerName(target)))
         setPlayerReward(getPlayerName(target),0)
       else
         doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "That player aren't wanted.")
       end
     else
       doPlayerAddReward(getPlayerName(cid), math.random(prize[1],prize[2]))
       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Now the government will pay ".. getPlayerReward(getPlayerName(cid)) .." gold coins for your head.")
       setPlayerReward(getPlayerName(target),0)  
     end
   end
 end
 return true
end 

 

 

[spoiler=Creature Script 2]Crie um arquivo chamado look com a extensão .lua em data\creaturescripts\scripts e cole isso em seu conteúdo:

function onLook(cid, thing)
pid = thing.uid
local access = {[1] = {[0] = 'has no vocation',
                      [1] = 'a sorcerer',
                      [2] = 'a druid',
                      [3] = 'a paladin',
                      [4] = 'a knight',
                      [5] = 'a master sorcerer',
                      [6] = 'an elder druid',
                      [7] = 'a royal paladin',
                      [8] = 'an elite knight',},
               [2] = {'a tutor'},
               [3] = {'a senior tutor'},
               [4] = {'a gamemaster'},
               [5] = {'a god'},}       

local art = {
           [0] = 'She',
           [1] = 'He',
           }

 if isPlayer(pid) then
   local reward = getPlayerAccess(pid) > 2 and '' or ' Reward '.. getPlayerReward(getPlayerName(pid)) ..' gold coins.'
   local guild = (getPlayerGuildName(pid)~='' and " ".. art[getPlayerSex(pid)] .." is ".. getPlayerGuildRank(pid) .." of the ".. getPlayerGuildName(pid) .."" .. (getPlayerGuildNick(pid)~='' and ' ('.. getPlayerGuildNick(pid) ..').' or '.') or '')
   local guild1 = (getPlayerGuildName(pid)~='' and " You are ".. getPlayerGuildRank(pid) .." of the ".. getPlayerGuildName(pid) .."" .. (getPlayerGuildNick(pid)~='' and ' ('.. getPlayerGuildNick(pid) ..').' or '.') or '')
   local voc = getPlayerAccess(pid) > 2 and access[getPlayerAccess(pid)][1] or access[1][getPlayerVocation(pid)]
   local level = getPlayerAccess(pid) > 2 and '.' or ' (Level '.. getPlayerLevel(pid) ..').'
   local msg = ('You see '.. getPlayerName(pid) ..''.. level .. ' '.. art[getPlayerSex(pid)] ..' is '.. voc ..'.' ..reward)..guild
   local msg1 = ('You see yourself. You are '.. voc ..'.'..reward)..guild1
   if getPlayerName(pid) == getPlayerName(cid) then
     if getPlayerAccess(cid) > 2 then
       if getPlayerStorageValue(cid, 1078) == 1 then
         doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg1)
       else
         return true
       end
     else 
       doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg1)
     end
   else
     if getPlayerAccess(cid) > 2 then
       if getPlayerStorageValue(cid, 1078) == 1 then
         doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg)
       else
         return true
       end
     else
       doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg)
     end
   end
 elseif not isPlayer(pid) then
   return true
 end
end

Comentário: se você é iniciante em script eu aconselho a não estudar o script acima pois ele está em um nível relativamente "avançado".

 

 

Lib:

[spoiler=Lib]Crie um arquivo chamado reward com a extensão .lua em data\lib e cole isto em seu conteúdo:

function rewardtable()
local q = db.executeQuery("ALTER TABLE `players` ADD `reward` INT NOT NULL DEFAULT '0' AFTER `name`;")
 return q
end 
function setPlayerReward(player,qnt)
 db.executeQuery("UPDATE `players` SET `reward` = '".. qnt .."' WHERE `name` = '".. player .."' LIMIT 1;")
 return true
end
function getPlayerReward(player)
local get = db.getResult("SELECT `reward` FROM `players` WHERE `name` = '".. player .."';")
local reward = get:getDataInt('reward')
 return reward
end
function haveReward(player)
 if getPlayerReward(player) > 0 then
   return true
 end
 return false
end
function doPlayerAddReward(player,qnt)
t = (qnt and qnt or 1)
local get = db.getResult("SELECT `reward` FROM `players` WHERE `name` = '".. player .."';")
local reward = get:getDataInt('reward')
 return db.executeQuery("UPDATE `players` SET `reward` = '".. reward + t .."' WHERE `name` = '".. player .."' LIMIT 1;")
end
function doPlayerRemoveReward(player,qnt)
t = (qnt and qnt or 1)
local get = db.getResult("SELECT `reward` FROM `players` WHERE `name` = '".. player .."';")
local reward = get:getDataInt('reward')
 if reward > t then
   return db.executeQuery("UPDATE `players` SET `reward` = '".. reward - t .."' WHERE `name` = '".. player .."' LIMIT 1;")
 else
   return db.executeQuery("UPDATE `players` SET `reward` = '".. 0 .."' WHERE `name` = '".. player .."' LIMIT 1;")
 end
end

 

 

Instalação:

[spoiler=Instalação]

Siga esses paços a risca pois senão o script não irá funcionar:

 

Em data\creaturescripts abra o arquivo creaturescripts.xml e adcione isto no mesmo:

<event type="look" name="look" event="script" value="look.lua"/>
<event type="kill" name="reward" event="script" value="rewardkill.lua"/>

Em data\lib abra o arquivo data.lua ou global.lua dependendo do seu servidor e adcione isso no final:

dofile(getDataDir() .. "lib/reward.lua")

Em data\movements abra o arquivo movements.xml e adcione isto:

<movevent type="StepIn" itemid="407" event="script" value="rewardmove.lua"/>

Em itemid coloque o id do item "protegido" pelo governo.

 

Em data\creaturescripts\scripts abra o arquivo login.lua e adcione isto no final:

registerCreatureEvent(cid, "look")
registerCreatureEvent(cid, "reward")

Em data\talkactions abra o arquivo talkactions.xml e adcione isto:

<talkaction words="!addreward" access="5" event="script" value="rewardtalk.lua"/>
<talkaction words="!removereward" access="5" event="script" value="rewardtalk.lua"/>
<talkaction words="!setreward" access="5" event="script" value="rewardtalk.lua"/>
<talkaction words="!lookrew" access="5" event="script" value="rewardtalk.lua"/>
<talkaction words="!reward" event="script" value="rewardtalk.lua"/>
<talkaction words="!support" event="script" value="rewardtalk.lua"/>
<talkaction words="!pay" event="script" value="rewardtalk.lua"/>

Execute a função rewardtable() ou a seguinte query:

ALTER TABLE `players` ADD `reward` INT NOT NULL DEFAULT '0' AFTER `name`

Obs: Para executar uma query, acesse seu database depois o seu banco de dados, clique em SQL e CTRL+C CTRL+V a query acima, e clique em executar. Ou se preferir baixe o arquivo .sql no final do tópico.

 

 

Comandos:

[spoiler=Comandos]

------ God ------

!addreward 'playerName' 'qnt' / !addreward 'qnt''playerName'

!removereward 'playerName' 'qnt' / !removereward 'qnt' 'playerName'

!setreward 'playerName' 'qnt' / !setreward 'qnt' 'playerName'

!lookrew -- Seta entre o look do script (aparece a reward) e o look do tibia (com as informações).

!support

------ Player ------

!pay 'qnt'

!reward 'playerName'

!support

!addreward 'playerName' 'qnt' / !addreward 'qnt' 'playerName' -- No spoiler talkaction está a configuração.

Obs: As aspas são meramente ilustrativas :fun:

Obs2: O comando !support varia de god/gm pra player.

Obs3: O comando !reward só funciona se for ativado. A explicação está junto ao script.

 

 

SS:

[spoiler=SS]

addremove.png

 

pay.png

 

seta.png

 

movu.png

 

 

 

Obs: Quando disse no look, é no look mesmo. Ex:

You see Socket (Level 5). He is an elder druid. Reward 15000 gold coins.

 

Ob2: Para fazer isso sem mudar as sources, eu tive que "desabilitar" o look do tibia e criar uma simulação do look e colocar no lugar. Por isso se o look ficar com um espaço a mais, ou a menos, ou faltar um ponto, não é erro no script e sim na formatação do forum. Caso der problema na formatação do look (Espaço a mais, a menos), poste as seguintes variáveis:

guild, guild1, voc, level, msg e msg1, que eu arrumarei para vocês. (Elas se encontram no arquivo look.lua do meu sistema)

 

Obs3: Caso exista outro evento onLook no seu servidor, desative esse outro evento ou não coloque o meu (Creature Script 2) e ative o comando !reward.

 

Obs4: Para usar o arquivo .sql abaixo, após baixá-lo acesse seu database, depois seu banco de dados, clique em Importar selecione o arquivo reward.sql aonde você baixou ele e clique em executar. Pronto.

 

--------------------------Log de atualizações--------------------------

16/2/10: ..::Aceita a idéia de [V]Lucas Masotti::..

16/2/10: ..::Script da Talkaction alterado::..

17/2/10: ..::Corrigido alguns pequenos bugs da Talkaction::..

17/2/10: ..::Aceita a idéia de ultralord::..

17/2/10: ..::Script do look (Creature Script 2) alterado::..

-----------------------------------------------------------------------

 

Obrigado pelas sugestões dadas, e por favor mais sugestões :P

 

:bye:

 

 

 

Editado por Socket

Compartilhar este post


Link para o post
Gpwjhlkdcf    21
Gpwjhlkdcf

Movido.

Compartilhar este post


Link para o post
ushoriuma    0
ushoriuma

eee Socket quero até v a V4 como vai ficar!

xD

Compartilhar este post


Link para o post
Eueueueublabla    0
Eueueueublabla
doPlayerSetSpecialDescription

doPlayerSetNameDescription

nao daria pra usar essas funções da tal OTAL do mock?

seria mais fácil rs

Compartilhar este post


Link para o post
brunoeuxd    0
brunoeuxd

affs aqi deu erro i.i'

Compartilhar este post


Link para o post
vodkasiri    0
vodkasiri

ta aprimorando cada veis mais em mano (x, meu amigo me ensino aki como criar o client sertinho, o projeto ta indo agora a todo vapor (:

Compartilhar este post


Link para o post
ushoriuma    0
ushoriuma

doPlayerSetSpecialDescription

doPlayerSetNameDescription

issu é da OTAL ?lol nem sabia,

90% dos serve que c baxa ta vinu com issu!

xD

Compartilhar este post


Link para o post
Socket    0
Socket
affs aqi deu erro i.i'

 

Qual foi o erro?

Qual a mensagem no console?

Você usa MySql?

Você instalou a lib?

 

Ajuda ai também néh mano.

Compartilhar este post


Link para o post
ultralord    0
ultralord

Mto bom socket,

Aki funciono tdo certinho, exeto o look, aqui fica normal o look, n aparece a reward do player após o nome dele. Uso TFS 0.3.5 TIBIA 8.50

 

duas sugestões:

1)caso o player esteja em uma arena pvp que não conta frags, ele também ao morrer n deveria perder seu reward.

2) colocar o comando add reward para players normais, ai quando certo player fica enchendo vc, pegando seus respawns vc da addreward nele e ai o serv inteiro começa a caça ele

Compartilhar este post


Link para o post
Notorious    1
Notorious

Nao é nada pessoal, mas acho que nao precisa ficar fazendo tantos topicos assim, vai editando no proprio topico, e postando, "Nova versão V3" .. etc .. etc ..

Compartilhar este post


Link para o post
Socket    0
Socket
Mto bom socket,

Aki funciono tdo certinho, exeto o look, aqui fica normal o look, n aparece a reward do player após o nome dele. Uso TFS 0.3.5 TIBIA 8.50

 

duas sugestões:

1)caso o player esteja em uma arena pvp que não conta frags, ele também ao morrer n deveria perder seu reward.

2) colocar o comando add reward para players normais, ai quando certo player fica enchendo vc, pegando seus respawns vc da addreward nele e ai o serv inteiro começa a caça ele

Vlw ai mano, quanto ao look, repasse todas as etapas do spoiler Instalação pra ver se funciona. Quanto ao add reward é só você modificar no talkactions.xml o access para 0. E os gods tem a opção de usar ou não o sistema de look. Use o comando !lookrew para usar o meu look, e denovo para voltar ao look do tibia (apenas god usa o comando). Eu coloquei isso pois no meu look não aparece id/pos e as info do player.

 

Nao é nada pessoal, mas acho que nao precisa ficar fazendo tantos topicos assim, vai editando no proprio topico, e postando, "Nova versão V3" .. etc .. etc ..

Se eu não tivesse feito o novo tópico não pegava exclusivo >.<. Editado por Socket

Compartilhar este post


Link para o post
Le588    0
Le588

Muito legal!!! Quando tiver meu OT de volta eu testo :D

 

 

Essa história de o player pode adicionar uma recompensa em alguem seria legal...

Podia aprimorar ela, fazer assim:

# Players podem adicionar uma recompensa pela morte de alguem usando uma talkaction;

# Para o player adicionar, ele precisa pagar uma taxa e mais o dinheiro da recompensa Exemplo: (!addreward Player 10.000), ao usar esse comando, o player adiciona 10k como recompensa de alguem, ele paga 10k e mais um taxa (100k por exemplo). Assim ninguem fica abusando do sistema...

# So dá pra adicionar recompensas se a diferença de level for menor que X (exemplo 30), isso evita que high levels se aproveitem para colocar recompensa nos noobs.

# Somente poderá adicionar recompensa se o level do player for X (por exemplo 80). Isso evita que o cara cria um novo char pra add recompensa em noobs.

Compartilhar este post


Link para o post
Socket    0
Socket
Muito legal!!! Quando tiver meu OT de volta eu testo :D

 

 

Essa história de o player pode adicionar uma recompensa em alguem seria legal...

Podia aprimorar ela, fazer assim:

# Players podem adicionar uma recompensa pela morte de alguem usando uma talkaction;

# Para o player adicionar, ele precisa pagar uma taxa e mais o dinheiro da recompensa Exemplo: (!addreward Player 10.000), ao usar esse comando, o player adiciona 10k como recompensa de alguem, ele paga 10k e mais um taxa (100k por exemplo). Assim ninguem fica abusando do sistema...

# So dá pra adicionar recompensas se a diferença de level for menor que X (exemplo 30), isso evita que high levels se aproveitem para colocar recompensa nos noobs.

# Somente poderá adicionar recompensa se o level do player for X (por exemplo 80). Isso evita que o cara cria um novo char pra add recompensa em noobs.

 

Obrigado pela sugestão, e.. foi adcionada :yes: script da talkaction editado e pequenos bugs corrigidos.

 

Mano obrigado ai em todos os meus scripts você está me ajudando muito. ^^

Compartilhar este post


Link para o post
Zaffend    0
Zaffend

Que irado manow! Adorei o system, vou testar aqui, caso funcione

vou colocá-lo no projeto UnioNBR.

Obrigado por compartilhar desde arquivo conosco.

 

[APROVADO]

Compartilhar este post


Link para o post
ultralord    0
ultralord

Socket, refiz tdo, só que o look n funciona e tb qnd o player com reward morre, ele n dropa o reward e seu reward n eh rezetado, pq?

Me da uma mão ai, adorei o sistema e quero implementa no meu server.

 

Uso TFS 0.3.5

Compartilhar este post


Link para o post
Socket    0
Socket
Socket, refiz tdo, só que o look n funciona e tb qnd o player com reward morre, ele n dropa o reward e seu reward n eh rezetado, pq?

Me da uma mão ai, adorei o sistema e quero implementa no meu server.

 

Uso TFS 0.3.5

Opa eu esqueci uma etapa na instalação vou editar lá, desculpa qualquer coisa.

 

----Edit----

Em data\creaturescripts\scripts abra o arquivo login.lua e adcione isto no final:

registerCreatureEvent(cid, "look")

registerCreatureEvent(cid, "reward")

 

Editado por Socket

Compartilhar este post


Link para o post
ultralord    0
ultralord

Socket, mto bom, agr funciono o look porem na hora de receber a recompensa existe um problema:

Quando vc mata um player que matou outro (portanto o player que vc matou esta com reward dada pelo governador) vc recebe normalmente a recompensa.

Porem quando vc mata um player em que a recompensa foi adicionada via !addreward o player que o mata n recebe a recompensa.

 

Tenta arruma isso ae, e vc fez aquela sugestão que eu te dei topicos atras, a de caso o player esteja em uma arena pvp em que n conta frags, um player com reward for morto ele n perdera a reward e qm o matou n receberá a respectiva reward

 

E + uma coisa: ta dando pra da reward em GM.

Editado por ultralord

Compartilhar este post


Link para o post
Socket    0
Socket
Quando vc mata um player que matou outro (portanto o player que vc matou esta com reward dada pelo governador) vc recebe normalmente a recompensa.

Porem quando vc mata um player em que a recompensa foi adicionada via !addreward o player que o mata n recebe a recompensa.

R: O player só recebe recompensa se quem foi morto estiver pk.

 

E + uma coisa: ta dando pra da reward em GM.
Qual o problema? GM não morre :laugh:

Compartilhar este post


Link para o post
ultralord    0
ultralord

Citação:

Qual o problema? GM não morre :laugh:

Mais eh uma questão de estética, o player da look no gm e ta mostrando a reward.

 

Mais tdo bem, isso eh o de menos, e, novamente, obrigado pelo suporte ae

Compartilhar este post


Link para o post
Socket    0
Socket
Qual o problema? GM não morre :laugh:
Mais eh uma questão de estética, o player da look no gm e ta mostrando a reward.

 

Mais tdo bem, isso eh o de menos, e, novamente, obrigado pelo suporte ae

É, agora que fui perceber isso, espere 10 minutinhos vo coloca pra não a parecer a reward de GM. Obrigado pela sugestão.

 

----Edit----

Sugestão aceita e script alterado.

------------

Editado por Socket

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×