Ir para conteúdo
Entre para seguir isso  
lyndell

SetPlayerExtraExpRate

Recommended Posts

Mock    32
Mock

@lyndell

você que pensa, esse script ele é executado uma vez a cada vez que o player mata umsm monstro (mesmo que não adcione a exp por exemplo ainda sim a creature vai rodar), asveses acontece da variavel não ser deletada apos o uso e ficar existindo na memoria ocupando espaço, se exemplo você mata 10 monstors e armazena-se 1kb de memoria na memoria ram, se vc deixar seu server online o dia todo vai ums 10mil monstros agora se 10 é 1kb entao 10,000 você vai ter 1mb de ram que nao será usada em seu server, isso tirando o lag de o script ter q fazer load de todas as funções e dele toda vez que um monstro for morto, esse seu script você DEVERIA ter pelomenos feito do modo certo, e sobre deixar o scirpt no modo facil de entender, amigo aqui não é tutorial você nao explicou linha por linha entao não tem por que nao usar da outra forma.

Compartilhar este post


Link para o post
lyndell    0
lyndell

Não, primeiro que nao seria todo mundo que teria o exprate, então ele só verificaria o storagevalue e ja acabaria o script, segundo que mesmo quando executar, ele armazena a variavel mais logo quando executa de novo, ele passa o valor por cima do antigo, então nao iria armazenar ela.

 

Mas ele tem mais posts né, então ele ta certo :x

Compartilhar este post


Link para o post
Mock    32
Mock

@lyndel

mesmo assim cara o script ta enorme mesmo o script parando no storagevalue ele ainda sim ia carregar tudo do mesmo jeito e detalhe:

kaka = getPlayerStorageValue(cid,3211)

if kaka > 0 then

você declarou uma variavel já entao aquilo do 1mb a cada 10000 monstro está valendo completamente :first:, tirando quem tiver a exp rate e as outras 16 variaveis declaradas no script, se todos tiverem a exp rate entao vai-se 17mb de ram embora tirando o que isso vai usar de prosessamento da CPU

Compartilhar este post


Link para o post
lyndell    0
lyndell

Como eu disse, a variavel antiga perde seu valor quando o script é executado novamente ou seja, isso nao vale.

 

E pela estética, como eu ja disse e o jovial nao leu eu pretendia usar o script para min, só que descobri que foi inútil

Editado por lyndell

Compartilhar este post


Link para o post
Mock    32
Mock

@lyndell

você se equivoca mais uma vez, vocÊ definiu a variavel como global ou seja mesmo quando o script terminer ela vai existir na tabela _G, no caso pra eviar usa local var = algo

 

e nao estamos querendo nada demais apenas estamos fazendo criticas construtivas sobre seu script e tantando lhe ensinar, agora se vc se ofende com isso entao desculpe :/

Compartilhar este post


Link para o post
Bryan™    0
Bryan™
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?

 

Você é mal ! :slap:

 

IOASJDOIASJDIOASJDIOASJDIOAS'

Compartilhar este post


Link para o post
lyndell    0
lyndell
@lyndell

você se equivoca mais uma vez, vocÊ definiu a variavel como global ou seja mesmo quando o script terminer ela vai existir na tabela _G, no caso pra eviar usa local var = algo

 

e nao estamos querendo nada demais apenas estamos fazendo criticas construtivas sobre seu script e tantando lhe ensinar, agora se vc se ofende com isso entao desculpe :/

 

Sim mock, nao estou ficando ofendidos com as críticas, pelo contrário, obrigado, mas tipo nao estou querendo dizer que a variavel vai deixar de existir fora do script, sim, eu realmente nao usei local, mas, no máximo, nao vai passar de 17 variáveis, pois você disse que elas irão ficar somando conforme o script é executado.

 

Isso está errado, porque quando o script volta, o valor passa por cima do antigo.

 

Se alguem se sentiu ofendido ou alguma coisa, avisa que eu tiro meus comentários ;)

Compartilhar este post


Link para o post
Jovial    2
Jovial
It is good programming style to use local variables whenever possible. Local variables help you avoid cluttering the global environment with unnecessary names. Moreover, the access to local variables is faster than to global ones.
Só complementando oque já foi dito. Isto está escrito no livro "Progamming in Lua" na segunda parte do 4° capítulo.

Compartilhar este post


Link para o post
Mock    32
Mock

@lyndell

não senhor, a variavel pode resetar o valor dela mais na memoria fisica ela ainda existira, mesmo você fexando o server, só reiniciando o PC ou limpando a memoria, isso ocorre sempre com todos, porem nao tem como evitar isso acontecer mas tem como diminuir, no caso usando local

Compartilhar este post


Link para o post
Undead Slayer    0
Undead Slayer

Eu n sou nenhum moderador, mas seria melhor que vcs continuassem a discussão por PM, para ser um pouco mais etico...

@topic:

A função ficou boa, pena que esta "enferrujada", porque mesmo se ainda não existisse a função, usando outras existentes teria como fazer o mesmo script bem menor [no caso ate menor que o script feito por Jovial]. Mas você se esforçou bastante [Quanto ao local, e as variaveis, eu concordo com o Mock e o propio Jovial...]. Parabens pelo esforço. (Y)

Cya~

Undead Slayer~

Editado por Undead Slayer

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.

×