Ir para conteúdo
Entre para seguir isso  
lyndell

SetPlayerExtraExpRate

Recommended Posts

Pivizz    1
Pivizz

Bah, Magus. Também não sabia dessa

Vlwzão :)

Compartilhar este post


Link para o post
lyndell    0
lyndell

Bah, depois dessa vo vira emo, mais uma coisa a toa.

 

Bom esse ja tinha sido atoa, entao da nada ;P

Compartilhar este post


Link para o post
Jovial    2
Jovial

Dica, use:

doPlayerSetRate(cid, type, rate)

Em type pode-se usar:

SKILL_FIST = 0
SKILL_CLUB = 1
SKILL_SWORD = 2
SKILL_AXE = 3
SKILL_DISTANCE = 4
SKILL_SHIELD = 5
SKILL_FISHING = 6
SKILL__MAGLEVEL = 7
SKILL__LEVEL = 8

Lembrando que em rate você estara alterando a rate de exp baseada na rate do server: Se o seu server é 10x, e você colocar no doPlayerSetRate(cid, SKILL__LEVEL, 2) será equivalente a 20x, pois você dobrou a exp normal do server.

 

Se você quiser alterar o rate do plarer do mesmo jeito do seu script é só usar uma formula: RateDesejada / RateDoServer:

doPlayerSetRate(cid, SKILL__LEVEL, (2 / 10)) --Se o server for 10x e você quiser que o rate do player seja 2x

 

Espero ter ajudado :D

Compartilhar este post


Link para o post
Mock    32
Mock

@jovial

vc pro aqui o.o

 

tipo ele fez essa função pra servidores que nao são o TFS que nao tem essa função setPlayerRate

Compartilhar este post


Link para o post
Jovial    2
Jovial

@mock

Parece que vou voltar... Eu pensei que era só o forgotten que tinha, mas fui olhar e o opentibia também tem, por isso postei. Mas versões antigas podem não ter.

Compartilhar este post


Link para o post
lyndell    0
lyndell

Acho que se vc tivesse lido o tópico inteiro teria visto que eu falei disso né? :P

Compartilhar este post


Link para o post
Jovial    2
Jovial
Acho que se vc tivesse lido o tópico inteiro teria visto que eu falei disso né? :P

Acho que se você só quis te ajudar. Pelo jeito perdi meu tempo, certo? Você é bem educado ^^

 

@Script: Horrível :P

Desorganizado.

Nome de variáveis ridículos.

Muita coisa desnecessária, se for ver o script todo é desnecessário.

 

Sem contar os bugs: Ele vai ser executado até se você mata um player. Você estará dando exp a mais pro cara, se o ot for 10x e você por pro cara ganhar 20x com seu script, ele vai ganahar tanto os 10x do ot quanto os 20x do script.

 

Obs: Da pra fazer um script com a mesma finalidade do seu só que com 1/3 do tamanho.

Editado por Jovial

Compartilhar este post


Link para o post
lyndell    0
lyndell

Se você ler o tópico inteiro vc tbm vai achar que eu disso que ele é desnessesário :P

 

E as variaveis eu ponho o nome que eu quiser, isso altera alguma coisa?

 

Começou a zuar só porque eu fiz um comentário sincero :/

Compartilhar este post


Link para o post
Jovial    2
Jovial
Se você ler o tópico inteiro vc tbm vai achar que eu disso que ele é desnessesário :P

 

E as variaveis eu ponho o nome que eu quiser, isso altera alguma coisa?

 

Começou a zuar só porque eu fiz um comentário sincero :/

Falar a verdade é zuar? :P Editei o post lá e apontei 2 bugs do seu script. Continui fazendo scripts assim que você vai virar um exelente mapper. (Nada contra os mappers)

Compartilhar este post


Link para o post
morgado4ever    0
morgado4ever
Se você ler o tópico inteiro vc tbm vai achar que eu disso que ele é desnessesário :P

 

E as variaveis eu ponho o nome que eu quiser, isso altera alguma coisa?

 

Começou a zuar só porque eu fiz um comentário sincero :/

Não ti faz de santinho, ele tentou ajudar e em vez de você mandar um: "obrigado, mas o meu server não tem exprate".. Nem ao menos isso tu fez.

Compartilhar este post


Link para o post
lyndell    0
lyndell
Acho que se você só quis te ajudar. Pelo jeito perdi meu tempo, certo? Você é bem educado ^^

 

@Script: Horrível :P

Desorganizado.

Nome de variáveis ridículos.

Muita coisa desnecessária, se for ver o script todo é desnecessário.

 

Sem contar os bugs: Ele vai ser executado até se você mata um player. Você estará dando exp a mais pro cara, se o ot for 10x e você por pro cara ganhar 20x com seu script, ele vai ganahar tanto os 10x do ot quanto os 20x do script.

 

Obs: Da pra fazer um script com a mesma finalidade do seu só que com 1/3 do tamanho.

 

Player nao da exp, e outra, realmente essa era a intençao, adicionar a exp a mais, se o ot for 15x e vc colocar 10x, pro player a exp ficaria 25x

 

sim, da pra fazer com menos de 1/3 do tamanho, como eu tbm ja disse, sobre a funçao que o magus falou e pelo jeito pouca gente conhecia.

 

Maus ai se vc nao prestou atençao nos meus posts, Manjador.

Compartilhar este post


Link para o post
Jovial    2
Jovial

Eu não quis dizer que dava para reduzir usando outras funções e sim tornando esse script ai decente :P E se o player não da exp pra que procurar o nome dele no monsters.xml?

Compartilhar este post


Link para o post
lyndell    0
lyndell

Man faz melhor ai vc vem fala comigo, e por favor pra continua usa mp :P

Compartilhar este post


Link para o post
Jovial    2
Jovial
Man faz melhor ai vc vem fala comigo, e por favor pra continua usa mp :P

 

function onKill(cid, target)
   if (not(isPlayer(target)) and (getPlayerStorageValue(cid, 3211) > 0)) then
       local file = io.open(getDataDir() .. "/monster/monsters.xml")
       local _, _, monster_file = string.find(string.lower(file:read('*a')), 'name="' .. string.lower(getCreatureName(target)) .. '" file="([^"]*)"')
       file:close()
       if (monster_file) then
           local file = io.open(getDataDir() .. "/monster/" .. monster_file) 
           local _, _, exp = string.find(string.lower(file:read('*a')), "experience=\"(%d*)\"")
           file:close()
           doPlayerAddExperience(cid, tonumber(exp) * getPlayerStorageValue(cid, 3211))
       end
   end
   return true
end

Já que você quis ver... O script acima faz exatamente a mesma coisa que o seu, mas é bemmmm melhor :ras: Acho que aqui encerramos essa discução, certo?

Compartilhar este post


Link para o post
morgado4ever    0
morgado4ever

Owneeeeeeeeeeeeeddddddddddd!!!! Jovialll Winnnnssss!!!! Fatality!

Compartilhar este post


Link para o post
lyndell    0
lyndell

Se for ver mesmo, você fez a mesma coisa, só tirou as variaveis e pois direto, por exemplo:

 

exp = 10

daPlayerAddExp(cid,exp)

 

 

Você:

 

daPlayerAddExp(cid,10)

 

E é claro, com isso alem de deixar menos facil de entender, fica beeem³ menor

Compartilhar este post


Link para o post
Mock    32
Mock

@lyndell

Existem 2 metodos

Errado:

str = "oi"

print(str)

Certo

print("oi")

 

alem de economizar memoria o scirpt roda mais rapido e fica menor, o jeito correto seria o que o jovial usou

Compartilhar este post


Link para o post
lyndell    0
lyndell

Sim, mas realmente isso deixa mais dificil de se entender.

 

Nesses exemplos que eu e vc usamos, obviamente seria melhor por direto, mais imagina uma coisa do tipo

doPlayerAddExp(cid,string.sub(gETplayerStoragevalue(cid,(variavel + 10),getCreatureHealth(cid))

 

só um exemplo, ficaria muito mais facil de entender se for separado.

Compartilhar este post


Link para o post
Vasigap    0
Vasigap

Ficaria mais fácil,mas não é o certo =]

 

Sem conta que isso que voce fez gasta + memória que gastaria do outro jeito..

 

Já que primeiro voce cria a variavel,atribui o valor, usa a função,ae a função tem que procurar o valor da variavel e copiar para a função.

 

Ao inves de simplesmente fazer a função com o valor =]

Compartilhar este post


Link para o post
lyndell    0
lyndell

LoL, estamos falando desse tipo de script, e esse tipo nunca vai ter problema de processamento nem nada isso é algo simples.

 

Se for ver a diferença entre os dois jeitos, é quase nula, só faz diferença mesmo se usado muuuitas vezes no script, oque nao é o caso, e sim, porque nao seria certo também ? Claro que é certo, mesmo que nao seje o mais certo, é certo.

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.

×