Ir para conteúdo
  • Cadastre-se

Posts Recomendados

estou com um erro no meu rep system quando o player morre ele n perde o rep que ele tinha, e o player que mata ele era para ganhar rep  por ter matado um pk ou redskull

Sem título.png

 

 

 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<mod name="Reputation System" enabled="yes">
<config name="repSystem"><![CDATA[
rep = {
--[[ GLOBAL CONFIG ]]--
interval = 6 * 60 * 60, --This is [6] hours, in seconds. Time between rep.
lastTime = 5136, --Used to store the player's last Rep Timestamp
lastName = 5138, --Used to store the last repped's GUID
minLevel = 20, --From this level onwards player can use commands
pvpLevel = 30, --Minimum level for PVP Rep'ing
skull = {4,5}, --these skulled player won't receive rep when killing
getArticle = function(cid, uppercase)
return getPlayerSex(cid) == 0 and (uppercase and 'S' or 's') ..'he' or (uppercase and 'H' or 'h') ..'e'
end,
getPoints = function(cid)
local Info = db.getResult("SELECT `rep` FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. ";")
local rep = Info:getDataInt("rep")
Info:free()
return rep
end,
getPower = function(points)
local power = {{0,2},{300,3},{500,4},{1000,5},{1500,6},{2000,8}, {5000,10}}
table.sort(power, function(a, b) return a[1] > b[1] end)
for _, t in ipairs(power) do
if(math.abs(points) >= t[1]) then
return t[2]
end
end
return power[1][2]
end,
getRank = function(points)
local ranks = {
{-5000, 'Power Abuser (+============)'},
{-2000, 'Evil (=|===========)'},
{-1500, 'Slayer (==|==========)'},
{-1000, 'Killer (===|=========)'},
{-500, 'Villain (====|========)'},
{-300, 'Creeping (=====|=======)'},
{-299, 'Noob (======|======)'},
{300, 'Avowed (=======|=====)'},
{500, 'Popular (========|====)'},
{1000, 'Hailed (=========|===)'},
{1500, 'Acclaimed (==========|==)'},
{2000, 'Hero (===========|=)'},
{5000, 'Legend (============+)'},
}
if points > -1 then
table.sort(ranks, function(a, b) return a[1] > b[1] end)
for _, t in ipairs(ranks) do if points >= t[1] then return t[2] end end
else
table.sort(ranks, function(a, b) return a[1] < b[1] end)
for _, t in ipairs(ranks) do if points <= t[1] then return t[2] end end
end
return ranks[1][2]
end,
set = function(cid, points)
db.executeQuery("UPDATE `players` SET `rep` = " .. points .. " WHERE `id` = " .. getPlayerGUID(cid) .. ";")
end,
add = function(cid, amount, color)
db.executeQuery("UPDATE `players` SET `rep` = `rep` + " .. amount .. " WHERE `id` = " .. getPlayerGUID(cid) .. ";")
doSendAnimatedText(getCreaturePosition(cid), '+REP', color)
doPlayerSendCancel(cid,'You have just been hailed and gained '.. amount ..' reputation points.')
end,
remove = function(cid, amount, color)
db.executeQuery("UPDATE `players` SET `rep` = `rep` - " .. amount .. " WHERE `id` = " .. getPlayerGUID(cid) .. ";")
doSendAnimatedText(getCreaturePosition(cid), '-REP', color)
doPlayerSendCancel(cid,'You have just been repudiated and lost '.. amount ..' reputation points.')
end,
getTime = function(timeDiff)
local dateFormat = {
{'h', timeDiff / 60 / 60 % 6},
{'m', timeDiff / 60 % 60},
}
local out = {}
for k, t in ipairs(dateFormat) do
local v = math.floor(t[2])
if(v > 0) then
table.insert(out, (k < #dateFormat and '' or ' and ') .. v .. '' .. t[1])
end
end
return table.concat(out)
end,
formatNum = function(str, sep)
str = tostring(str):reverse()
str = str:gsub("(%d)(%d)(%d)", '%1%2%3' .. (sep or " "), math.ceil(str:len() / 3)-1)
return str:reverse()
end,
}]]>
</config>
<event type="login" name="repRegister" event="script"><![CDATA[
function onLogin(cid)
registerCreatureEvent(cid, "repLook")
registerCreatureEvent(cid, "repKill")
registerCreatureEvent(cid, "repMonster")
return true
end]]>
</event>
<event type="look" name="repLook" event="script"><![CDATA[
domodlib('repSystem')
function onLook(cid, thing, position, lookDistance)
if isPlayer(thing.uid) then
doPlayerSetSpecialDescription(thing.uid,'.\n' .. (thing.uid == cid and 'He are' or rep.getArticle(thing.uid, true) .. ' is') .. ' ' .. rep.getRank(rep.getPoints(thing.uid)))
end
return true
end]]>
</event>
<event type="kill" name="repKill" event="script"><![CDATA[
domodlib('repSystem')
local t = {
[sKULL_WHITE] = 30,
[sKULL_RED] = 45,
[sKULL_BLACK] = 45,
[sKULL_NONE] = -30,
}
function onKill(cid, target, lastHit)
if isPlayer(cid) and isPlayer(target) then
--THE KILLER
if isInArray({0,3,4,5}, getCreatureSkullType(target)) then
if getPlayerLevel(target) >= rep.pvpLevel and not isInArray(rep.skull, getCreatureSkullType(cid)) then
doSendAnimatedText(getCreaturePosition(cid), getCreatureSkullType(target) == 0 and '-REP' or '+REP', math.random(1,255))
rep.set(cid, rep.getPoints(cid)+t[getCreatureSkullType(target)])
doPlayerSendTextMessage(cid, 20, 'You '.. (getCreatureSkullType(target) == 0 and 'lose' or 'gain') ..' reputation because you killed a player.')
end
end
--THE VICTIM
if rep.getPoints(target) == 0 then
return true
elseif rep.getPoints(target) > 0 then
rep.remove(target, 5, TEXTCOLOR_RED)
doPlayerSendTextMessage(target, 20, 'You lose reputation because you were killed by a player.')
else
rep.add(target, 5, TEXTCOLOR_LIGHTBLUE)
doPlayerSendTextMessage(target, 20, 'You lose reputation because you were killed by a player.')
end
end
return true
end]]>
</event>
<event type="kill" name="repMonster" event="script"><![CDATA[
domodlib('repSystem')
function onKill(cid, target, lastHit)
if not isPlayer(cid) or not isMonster(target) then
return true
end
local monsters = {
["rat"] = 0,
["hellfire fighter"] = 0,
}
local name = getCreatureName(target)
local monster = monsters[string.lower(name)]
if monster then
rep.add(cid, monsters[string.lower(getCreatureName(target))], TEXTCOLOR_LIGHTBLUE)
end
return true
end]]>
</event>
<talkaction log= "yes" words="/hail;/fuck;/set" access="4" event="buffer"><![CDATA[
domodlib('repSystem')
if param == '' then
doPlayerSendCancel(cid,'You must write a player\'s name.')
return true
end
local t = string.explode(param, ',')
local tid = getPlayerByName(t[1])
if not isPlayer(tid) then
doPlayerSendCancel(cid, 'Player ' .. param .. ' not found or is not online.')
return true
end
if not t[2] and isPlayer(tid) then
if words == '/hail' then
rep.add(tid, 5, TEXTCOLOR_TEAL)
doPlayerSendCancel(cid, 'You added +5 rep points to ' .. getPlayerName(tid) .. ', and now ' .. rep.getArticle(tid, false) .. ' has ' .. rep.getPoints(tid) .. ' points.')
return true
end
if words == '/fuck' then
rep.remove(tid, 5, TEXTCOLOR_RED)
doPlayerSendCancel(cid, 'You removed -5 rep points to ' .. getPlayerName(tid) .. ', and now ' .. rep.getArticle(tid, false) .. ' has ' .. rep.getPoints(tid) .. ' points.')
return true
end
end
if t[2] and isInArray({'/set','/hail','fuck'}, words) then
if not tonumber(t[2]) then
doPlayerSendCancel(cid, 'Reputation amount is invalid.')
return true
end
end
if words == '/hail' then
rep.add(tid, t[2], TEXTCOLOR_TEAL)
doPlayerSendCancel(cid, 'You added ' .. t[2] .. ' rep points to ' .. getPlayerName(tid) .. ', and now ' .. rep.getArticle(tid, false) .. ' has ' .. rep.getPoints(tid) .. ' points.')
return true
end
if words == '/fuck' then
rep.remove(tid, t[2], TEXTCOLOR_RED)
doPlayerSendCancel(cid, 'You removed ' .. t[2] .. ' rep points to ' .. getPlayerName(tid) .. ', and now ' .. rep.getArticle(tid, false) .. ' has ' .. rep.getPoints(tid) .. ' points.')
return true
end
if t[2] and words == '/set' then
rep.set(tid, t[2])
doPlayerSendCancel(cid, 'You have set ' .. getPlayerName(tid) .. '\'s points to ' .. rep.getPoints(tid))
else
doPlayerSendCancel(cid, 'Absolute reputation amount not specified.')
return true
end
if not t[2] then
doPlayerSendCancel(cid, 'Absolute reputation amount not specified.')
return true
end
return true]]>
</talkaction>
<talkaction words="!ranks" event="buffer"><![CDATA[
domodlib('repSystem')
local players = 10
local str, value, name, result = "","","",0,nil
if isInArray({'hero','pos','1','+'}, param) then
str,value,name = "[#]-[Name]-[Points]-[Rank]\n--[Positive Rep Highscores]--\n","rep","name"
result = db.getResult("SELECT `name`, `rep` FROM `players` WHERE `rep` > -1 AND `id` > 6 AND `group_id` < 2 ORDER BY `rep` DESC, `name` ASC;")
elseif isInArray({'evil','neg','2','-'}, param) then
str,value,name = "[#]-[Name]-[Points]-[Rank]\n--[Negative Rep Highscores]--\n","rep","name"
result = db.getResult("SELECT `name`, `rep` FROM `players` WHERE `rep` < 0 AND `id` > 6 AND `group_id` < 2 ORDER BY `rep` ASC, `name` DESC;")
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Unknown Paramater: '" .. param .. "'")
return true
end
if (result:getID() ~= -1) then
local i = 1
while true do
str = str .. "\n " .. i .. ". " .. result:getDataString("name") .. " - [" .. result:getDataInt(value) .. "] - " .. rep.getRank(result:getDataInt(value)) .. ""
i = i+1
if not(result:next()) or i > players then
break
end
end
result:free()
end
if str ~= "" then
doPlayerPopupFYI(cid, str)
end
return true]]>
</talkaction>
<talkaction words="!rep" event="buffer"><![CDATA[
domodlib('repSystem')
local points, lastName, action = rep.getPoints(cid), getPlayerStorageValue(cid, rep.lastName), false
doPlayerSendTextMessage(cid, 19, 'You have ' .. rep.formatNum(points, ",") .. ' reputation points. You are ' .. rep.getRank(points) .. '\nYour Rep Power is ' .. rep.getPower(points) ..'. ' .. (getPlayerStorageValue(cid, rep.lastName) ~= -1 and 'You last reputed ' .. getPlayerNameByGUID(lastName) .. '.' or ''))
if points > 4999 and getPlayerSex(cid) == 0 then --female rep+++ queen outfit
disguise, text, action = {lookType = 331}, "Queen!!", true
elseif points > 4999 and getPlayerSex(cid) > 0 then --male rep+++ king outfit
disguise, text, action = {lookType = 332}, "King!!", true
elseif points > 2499 then --rep++ cm outfit
disguise, text, action = {lookType = 306}, "Legend!!", true
elseif points > 1499 then --rep+ hero outfit
disguise, text, action = {lookType = 73}, "Hero!!", true
elseif points < -4999 and getPlayerSex(cid) == 0 then --rep*** female outfit
disguise, text, action = {lookType = 312}, "DarkLord!!", true
elseif points < -4999 and getPlayerSex(cid) > 0 then --rep*** male outfit
disguise, text, action = {lookType = 287}, "DarkLord!!", true
elseif points < -2499 then --rep** pig outfit --
disguise, text, action = {lookType = 300}, "Morte!!", true
elseif points < -1499 then --rep* orc outfit --
disguise, text, action = {lookType = 194}, "Gangster!!", true
end
if action and getCreatureOutfit(cid).lookType ~= disguise.lookType then
doSetCreatureOutfit(cid, disguise, -1)
doSendAnimatedText(getCreaturePosition(cid), text, math.random(1,255))
return true
end
return true]]>
</talkaction>
<talkaction words="!hail;!fuck" event="buffer"><![CDATA[
domodlib('repSystem')
if param == '' then
doPlayerSendCancel(cid, 'Command requires a player\'s name.')
return true
end
local target, oldTime = getPlayerByName(param), getPlayerStorageValue(cid, rep.lastTime)
if not isPlayer(target) then
doPlayerSendCancel(cid, 'That player does not exist or is offline.')
return true
end
if oldTime == -1 then
setPlayerStorageValue(cid, rep.lastTime, os.time())
end
if getPlayerLevel(cid) < rep.minLevel then
doPlayerSendCancel(cid,'You may repute from level ' .. rep.minLevel ..' onwards.')
return true
end
if getPlayerGUID(target) == getPlayerStorageValue(cid, rep.lastName) then
doPlayerSendCancel(cid, 'You may not repute that player two times in a row.')
return true
end
if (os.time() - oldTime) < rep.interval then
doPlayerSendCancel(cid, 'You may repute in ' .. rep.getTime(oldTime - os.time()) .. ' [' .. os.date("%b.%d %X", oldTime + rep.interval) ..']')
return true
end
if getPlayerIp(cid) == getPlayerIp(target) then
doPlayerSendCancel(cid, 'You may not repute neither yourself nor someone in your IP.')
return true
end
if words == '!hail' then
setPlayerStorageValue(cid, rep.lastName, getPlayerGUID(target))
rep.add(target, rep.getPower(cid), TEXTCOLOR_LIGHTBLUE)
setPlayerStorageValue(cid, rep.lastTime, os.time())
doPlayerSendCancel(cid, 'You have just reputed ' .. getCreatureName(target))
elseif words == '!fuck' then
setPlayerStorageValue(cid, rep.lastName, getPlayerGUID(target))
rep.remove(target, rep.getPower(cid), TEXTCOLOR_RED)
setPlayerStorageValue(cid, rep.lastTime, os.time())
doPlayerSendCancel(cid, 'You have just reputed ' .. getCreatureName(target))
end
return true]]>
</talkaction>
</mod>
Editado por Valakinhas (veja o histórico de edições)

 

 

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo