JH

[Creaturescript] Simple Reputation System !

Por jhon992, 30 de nov. de 2011 em Globalevents e Spells

otserv
tibia
script
92
19.7k
jhon992J
06 de dezembro de 2011 às 12:00

Desculpe @Trivelatos é que tinha dado um bug na edição, então tive e editar tudo denovo e tinha esquecido a última parte mais ja corrigi. Para funcionar o comando adiciona a última tag do script no seus talkactions. Desculpa aew!

TrivelatosT
06 de dezembro de 2011 às 16:51

deu tudo certinho aki agr, mt bom vei parabéns e continua criando scripts pro forum aew •

vitorvvmV
08 de dezembro de 2011 às 15:09

Ótimo tutorial... obrigado por trazer ao Xtibia... vou adicionar ao meu server...

4 semanas depois...
30 de dezembro de 2011 às 14:11

Muito Bom

 

Mas Eu Vi Em Um No Global War

 

Que Era Por Comando De Player Pra Player

 

ex: !pespeito NAME

 

Ai O player Ai Ganhar Um Ponto De Respeito

 

E Aparecei Quando Alguem Desse Look Nele

 

Algo Mais Ou Menos Assim Se Alguem Tiver Algo Assim Post Aki Pra min

1 mês depois...
igor6I
15 de janeiro de 2012 às 18:14

Olá, teria como colocar para mostrar o rank de reputação pelo site? no meu caso gesior.

 

obrigado, parabéns !

81334278
20 de janeiro de 2012 às 13:54

Ei Cara Como Que eu coloco Portas... Alavancas ... Quests que Apenas Um Certo numero de Rep pode passar/ usar a alavanca e bau...

 

Me ensina a Fazer isso com a porta que da eu já posso fase com o bau etc...

 

Tipo Eu tenho um Sever de War... E quero coloca Itens Novos Assim... Rep 10>> Uma certa Porta Rep 30>>.... assim em diante

 

 

Me ajuda ai... Plix

jhon992J
20 de janeiro de 2012 às 22:12

To meio ocupado, mais assim que tiver tempo faço isso, mais tardar semana quivem!

DonSparrowD
21 de janeiro de 2012 às 20:40

poderia me ajudar a inserir essa parte

 

-- Verificar se é primeira vez que loga, pois ao usar storage ele ja começa com -1,

-- Então vamos zera-lo para que sua Reputação comece do 0.

if (getPlayerStorageValue(cid, 102087) ~= 1) then

setPlayerStorageValue(cid, 102087, 1)

setPlayerStorageValue(cid, 102086, 0)

end

 

registerCreatureEvent(cid, "RepSystem")

no meu login.lua ?

 

Da erro na hora de iniciar o ot,fala que nao consegue achar o repsystem...

 

 

local config = {
loginMessage = getConfigValue('loginMessage'),
useFragHandler = getBooleanFromString(getConfigValue('useFragHandler')),
addMount = getBooleanFromString(getConfigValue('gainMountOnLogin'))
}[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]function onLogin(cid)
local loss = getConfigValue('deathLostPercent')
if(loss ~= nil) then
 doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
end[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]local accountManager = getPlayerAccountManager(cid)
if(accountManager == MANAGER_NONE) then
 local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage
 if(lastLogin > 0) then
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
  str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."
 else
  str = str .. " Please choose your outfit."
  doPlayerSendOutfitWindow(cid)
 end[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]  doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
elseif(accountManager == MANAGER_NAMELOCK) then
 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_TEAL, "Hello, it appears that your character has been namelocked, what would you like as your new name?")
elseif(accountManager == MANAGER_ACCOUNT) then
 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_TEAL, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")
else
 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_TEAL, "Hello, type 'account' to create an account or type 'recover' to recover an account.")
end[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]if(not isPlayerGhost(cid)) then
 doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
end[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]if(config.addMount) then
 doPlayerAddMount(cid, 1)
 doPlayerAddMount(cid, 2)
 doPlayerAddMount(cid, 3)
 doPlayerAddMount(cid, 4)
 doPlayerAddMount(cid, 5)
 doPlayerAddMount(cid, 6)
 doPlayerAddMount(cid, 7)
 doPlayerAddMount(cid, 8)
 doPlayerAddMount(cid, 9)
 doPlayerAddMount(cid, 10)
 doPlayerAddMount(cid, 11)
 doPlayerAddMount(cid, 12)
end[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]if (getPlayerStorageValue(cid, 102087) ~= 1) then
  setPlayerStorageValue(cid, 102087, 1)
  setPlayerStorageValue(cid, 102086, 0)
end[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]registerCreatureEvent(cid, "Mail")
registerCreatureEvent(cid, "ChannelEvents")[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]registerCreatureEvent(cid, "Idle")
if(config.useFragHandler) then
 registerCreatureEvent(cid, "SkullCheck")
end[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]registerCreatureEvent(cid, "ReportBug")
registerCreatureEvent(cid, "AdvanceSave")
registerCreatureEvent(cid, "Castle")
registerCreatureEvent(cid, "FirstItems")
registerCreatureEvent(cid, "FimVip")
    registerCreatureEvent(cid, "VipReceive")
registerCreatureEvent(cid, "repsystem")
return true[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]end[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]

o meu login.lua esta assim

jhon992J
23 de janeiro de 2012 às 11:20

na parte do seu script:

 

registerCreatureEvent(cid, "repsystem")

 

 

troca por:

 

registerCreatureEvent(cid, "RepSystem")

 

tens que ser com letra maiuscula como na tag do creaturescripts.xml.

 

Se não conseguir troca teu login.lua por esse:

 

 

 

local config = {
loginMessage = getConfigValue('loginMessage'),
useFragHandler = getBooleanFromString(getConfigValue('useFragHandler')),
addMount = getBooleanFromString(getConfigValue('gainMountOnLogin'))
}

function onLogin(cid)
local loss = getConfigValue('deathLostPercent')
if(loss ~= nil) then
 doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
end
local accountManager = getPlayerAccountManager(cid)
if(accountManager == MANAGER_NONE) then
 local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage
 if(lastLogin > 0) then
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
  str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."
 else
  str = str .. " Please choose your outfit."
  doPlayerSendOutfitWindow(cid)
 end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
elseif(accountManager == MANAGER_NAMELOCK) then
 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_TEAL, "Hello, it appears that your character has been namelocked, what would you like as your new name?")
elseif(accountManager == MANAGER_ACCOUNT) then
 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_TEAL, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")
else
 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_TEAL, "Hello, type 'account' to create an account or type 'recover' to recover an account.")
end
if(not isPlayerGhost(cid)) then
 doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
end
if(config.addMount) then
 doPlayerAddMount(cid, 1)
 doPlayerAddMount(cid, 2)
 doPlayerAddMount(cid, 3)
 doPlayerAddMount(cid, 4)
 doPlayerAddMount(cid, 5)
 doPlayerAddMount(cid, 6)
 doPlayerAddMount(cid, 7)
 doPlayerAddMount(cid, 8)
 doPlayerAddMount(cid, 9)
 doPlayerAddMount(cid, 10)
 doPlayerAddMount(cid, 11)
 doPlayerAddMount(cid, 12)
end
if (getPlayerStorageValue(cid, 102087) ~= 1) then
  setPlayerStorageValue(cid, 102087, 1)
  setPlayerStorageValue(cid, 102086, 0)
end
registerCreatureEvent(cid, "Mail")
registerCreatureEvent(cid, "ChannelEvents")
registerCreatureEvent(cid, "Idle")
if(config.useFragHandler) then
 registerCreatureEvent(cid, "SkullCheck")
end
registerCreatureEvent(cid, "ReportBug")
registerCreatureEvent(cid, "AdvanceSave")
registerCreatureEvent(cid, "Castle")
registerCreatureEvent(cid, "FirstItems")
registerCreatureEvent(cid, "FimVip")
registerCreatureEvent(cid, "VipReceive")

-- Verificar se é primeira vez que loga, pois ao usar storage ele ja começa com -1,
-- Então vamos zera-lo para que sua Reputação comece do 0.
if (getPlayerStorageValue(cid, 102087) ~= 1) then
  setPlayerStorageValue(cid, 102087, 1)
  setPlayerStorageValue(cid, 102086, 0)
end

registerCreatureEvent(cid, "RepSystem")

return true
end

 

 

 

Ei Cara Como Que eu coloco Portas... Alavancas ... Quests que Apenas Um Certo numero de Rep pode passar/ usar a alavanca e bau...

 

Me ensina a Fazer isso com a porta que da eu já posso fase com o bau etc...

 

Tipo Eu tenho um Sever de War... E quero coloca Itens Novos Assim... Rep 10>> Uma certa Porta Rep 30>>.... assim em diante

 

 

Me ajuda ai... Plix

 

Pronto @eduarodoot o sistema esta atualizado com porta e itens apenas pra players com certa quantidade de reputação.

Editado Janeiro 23 por Jhon992

grigacuinG
24 de janeiro de 2012 às 15:00

Uma coisa faltou no tutorial, como adicionar uma nova table no .s3db (database do OT)

Como eu parei de mexer em OT Server, nao poderei fazer uma video aula como fazer,

Por isso nao funcionou em alguns OT's! XD vlws flws!

jhon992J
24 de janeiro de 2012 às 17:04

@Viciadorlz, não faltou nada não. Não precisa alterar nada na database, o sistema funciona com storages que são armazenados nos proprios players.

grigacuinG
24 de janeiro de 2012 às 21:26

Ah tah... e q nao li o script mas otimo trabalho ira ajudarr muita gente... :)

REP+

 

@EDIT~

Ja usei meu REP+ pra algo o.O quando tive REP eu te do XD.

Editado Janeiro 25 por Viciadorlz

VodkartV
25 de janeiro de 2012 às 18:26

Para melhorar a organização,porque não faz tudo num mesmo MOD?

acho que ficaria mais fácil de configurar...

É só uma idéia,abraços!

caiolaszloC
26 de janeiro de 2012 às 02:45

Cara, muito boa a sua ideia! Com esse sistema não somente pontos de reputação podem ser adicionados, mas também muitas outras coisas. Outra ideia interessante seria, com o mesmo sistema, adicionar o "pk points" com o mesmo scripk. A ideia consiste em ao matar um player você ganhar "pk points" que irão diminuindo a medida que você mata monstros, quanto mais "pk points" menor seria a eficiência das potions...

2 meses depois...
LucasCastroL
01 de março de 2012 às 23:03

Muito legal

 

Bom repsystem

 

Tendo rank nassi a disputa por ter mais reputTio

Assim fika mais legal o pvp

 

Vlws

 

;D