Histórico de Curtidas
-
koete recebeu reputação de paulo thush em AJUDA "disconnected for exceeding packet per second limit."Percebi que ninguém respondeu, e sei que já fazem 30 dias. Mas encontrei pelo google esse post e não vou deixar de responder pois há vários players que não sabem como resolver. Vai no config.lua e modifica "maxPacketsPerSecond = 25" para mais pacotes por segundos.
-
koete recebeu reputação de Frenesy em AJUDA "disconnected for exceeding packet per second limit."Percebi que ninguém respondeu, e sei que já fazem 30 dias. Mas encontrei pelo google esse post e não vou deixar de responder pois há vários players que não sabem como resolver. Vai no config.lua e modifica "maxPacketsPerSecond = 25" para mais pacotes por segundos.
-
koete recebeu reputação de darkramonzyn em AJUDA "disconnected for exceeding packet per second limit."Percebi que ninguém respondeu, e sei que já fazem 30 dias. Mas encontrei pelo google esse post e não vou deixar de responder pois há vários players que não sabem como resolver. Vai no config.lua e modifica "maxPacketsPerSecond = 25" para mais pacotes por segundos.
-
koete recebeu reputação de maicomuleks em AJUDA "disconnected for exceeding packet per second limit."Percebi que ninguém respondeu, e sei que já fazem 30 dias. Mas encontrei pelo google esse post e não vou deixar de responder pois há vários players que não sabem como resolver. Vai no config.lua e modifica "maxPacketsPerSecond = 25" para mais pacotes por segundos.
-
koete recebeu reputação de Sleet em AJUDA "disconnected for exceeding packet per second limit."Percebi que ninguém respondeu, e sei que já fazem 30 dias. Mas encontrei pelo google esse post e não vou deixar de responder pois há vários players que não sabem como resolver. Vai no config.lua e modifica "maxPacketsPerSecond = 25" para mais pacotes por segundos.
-
koete deu reputação a Thayguroficial em Data EffectSeu client é 8.60 ou 8.54?
Veja o tutorial do nosso amigo KotZletY, eu segui os passos pra aumentar o limite do 8.60 e funcionou perfeitamente.
tutorial alteração nas source (8.60):
tutorial alteração no client (8.60):
versão do client 8.54 (não testei mas acredito que esteja 100%)
-
koete deu reputação a Rusherzin em (Resolvido)Como reduzir o Script?local bonus = {{0, 1, 2}, {1, 2, 1.75}, {2, 3, 1.5}, {3, 4, 1.25} } function onUse(cid, item, frompos, item2, topos) for k, v in pairs(bonus) do if getPlayerSkillLevel(cid,3) >= v[1] and getPlayerSkillLevel(cid,3) <= v[2] then return doCreatureAddMana(cid, mana / v[3]) end end end
-
koete deu reputação a psychonaut em (Resolvido)Como reduzir o Script?Não tem como fazer menos se você precisa fazer algo, a menor distancia entre dois pontos é uma linha reta, então a melhor organização é usar a função mais adequada o possível, pra por exemplo, em vez de fazer duas ou três funções para um resultado, fazer uma só com a função certa(falando em funções do TFS). Nessa parte do código você já poderia ter usado elseif:
Elseif pois lua não tem switch tipo o do C, algumas pessoas criam ela com caseof ou vararg, se tivessem varios elseif no código, seria melhor um
function onUse(cid, item, frompos, item2, topos) if getPlayerSkillLevel(cid,3) <= 1 then doCreatureAddMana(cid, mana/2) elseif getPlayerSkillLevel(cid,3) == 1 or getPlayerSkillLevel(cid,3) == 2 then doCreatureAddMana(cid, mana/1.75) elseif getPlayerSkillLevel(cid,3) == 2 or getPlayerSkillLevel(cid,3) == 3 then doCreatureAddMana(cid, mana/1.50) elseif getPlayerSkillLevel(cid,3) == 3 or getPlayerSkillLevel(cid,3) == 4 then doCreatureAddMana(cid, mana/1.25) end end
Caso tenha mais coisas no script. uma coisa que ajuda a limpar o código é criar funções, quando você vai repetir algo muitas vezes, é só usar a função em vez de escrever tudo de novo.
Lua tem uma performance incrível, por isso que é bastante usada. Como não tem uma estrutura de repetição aí, não vejo notável diferença pra colocar a função getPlayerSkillLevel em uma variável local(local playerskilllevel = getPlayerSkillLevel(cid,3)), o que pode ser feito mas são poucos valores ali, mas se tivesse uma estrutura de repetição, você colocaria a função antes em uma variável.
Os 3 R da reciclagem se aplicam em lua, reduza, reuse e recicle.
Porém no seu caso, acho que a criação de uma formula seria melhor, mas você não poderia escolher um valor especifico para cada level. A sua formula teria que usar o getPlayerSkillLevel junto com outros valores para adicionar a mana.
doCreatureAddMana(cid, (getPlayerMaxMana(cid) / 10) + (mana * ((getPlayerSkillLevel(cid,3) / alguma coisa)))) Esse é só um exemplo, não sei direito se você está usando um padrão, se quiser reduzir mesmo o script, vale a pena usar um, dá pra criar qualquer padrão, até usar alguns ifs pra isso.
Essa aí do exemplo adiciona 10% da mana máxima do jogador + a mana que você colocou lá(100) * uma porcentagem do skill level ou alguma outra coisa, esse é só um exemplo.
A solução pra mim então é, ou usar uma formula(aí não vai controlar os valores) ou reduzir usando uma alternativa pro switch pois a cadeia de comparação não é eficiente.
Essa daí permite passar parâmetros no mudarmana[ ](parâmetro) por causa da função(é exemplo, tem que editar), você poderia remover pois não vai usar, mas pode usar se precisar colocar mais coisas.
local valor local mudarmana = { [1] = 2, [2] = 1.75, [3] = 1.50, [4] = 1.25 } mudarmana[getPlayerSkillLevel(cid,3)] doCreatureAddMana(cid, mana/valor)
Você pode repetir o mesmo valor pra 2 aí, ou então
local mudarmana = { [0] = 2, [2] = 1.75, [4] = 1.50, [6] = x, } local i if (getPlayerSkillLevel(cid,3) % 2 == 0) then i = getPlayerSkillLevel(cid,3) else i = getPlayerSkillLevel(cid,3) + 1 end doCreatureAddMana(cid, mana/mudarmana[i]) Isso é pra somar um caso seja ímpar, pois não entendi muito bem, sua verificação tá meio bugada, maior ou igual a 0 ou menor ou igual a 1, seria 0 ou 1, o mesmo em seguida, 1 ou 2, então pra não repetir poderia verificar se é ímpar e somar 1, aí você só teria números pares, entãa só coloca números pares na tabela mudarmana com o valor, bom não sei se tá funcionando o script, foi só um exemplo.
Tem varias outras maneiras só dar uma pesquisada, ah e a tabela ali fica fora da função onUse.
-
koete recebeu reputação de joisman em AJUDA "disconnected for exceeding packet per second limit."Percebi que ninguém respondeu, e sei que já fazem 30 dias. Mas encontrei pelo google esse post e não vou deixar de responder pois há vários players que não sabem como resolver. Vai no config.lua e modifica "maxPacketsPerSecond = 25" para mais pacotes por segundos.
-
koete deu reputação a TioSlash em [v32] GlobalFull 11/12 - New Asuras, Falcons, Warzones 4,5,6 . (Updates Frequentes)Muito bom,
melhor post de ot global do forúm.
-
koete deu reputação a Qwizer em [v32] GlobalFull 11/12 - New Asuras, Falcons, Warzones 4,5,6 . (Updates Frequentes)Global 11/12x [v32]
- New Falcons
- New Asuras
- Warzone 4,5,6
- Exercise Training
- Raids 100%
- Monstros 100%
- Trainer Offline 100%
- Trainer Online 100%
- Taming system funcionando 100%;
- Database completa
- War System 100%
- Global MAP Full
- Store 100%
- Imbuement
- Prey System
- Entre outros sistemas.
Projeto no: GITHUB
Scan Vírus Total
IMAGES
Créditos:
-
koete recebeu reputação de axebruno em [WEBSITE] ERROR!Cara você disse que trocou mas estou vendo que ainda está 80
#Listen 12.34.56.78:80
Listen 80
ServerName localhost:80
mude os 80 para 8090
-
koete recebeu reputação de axebruno em [WEBSITE] ERROR!Passo 1, cria o ip no duc devastation.servegame.com.
Passo 2, Desbloqueie as portas 7171, 7172, 433, 80, 8090, 8080, 4499. no roteador e no firewall.
passo 3, mude o xampp para funcionar com 8090, 4499.
passo 4, abre o no-ip, verifica se esta la o ip devastation.servegame.com.
Passo 5, com o no-ip aberto abra o xampp e da start no apache e no mysql.
passo 6, acesse o site do jogo dessa forma, localhost:8090, para acessar sua database entre http://localhost:8090/phpmyadmin/
passo 7, se o passo 6 funcionar acesse. devastation.servegame.com:8090
OBS: faça isso tudo sem logar o server, se funcionar testa com o server online.
-
koete recebeu reputação de xWhiteWolf em No - logout em treiners.Tenho uma ideia melhor cara, porque ao invés de fazer um script. você não vai no map edito e edita isso? sabe aquela cor verde que você coloca área pz? então área de non-logout é amarela. só pintar la de amarelo onde você não quer que o player deslogue.
-
koete recebeu reputação de zPerseu em Script Transformar ERROAcho que die bobeira, mude a parte if getPlayerStorageValue(cid, 89745) >= 0 then para if getPlayerStorageValue(cid, 89745) == -1 then
-
koete recebeu reputação de zPerseu em Script Transformar ERROquando coloco formato php ele muda alguns símbolos desculpe copie e cole esse de baixo aqui.
doPlayerSay(cid, "transformar")
local voc = config[getPlayerVocation(cid)]
if getPlayerStorageValue(cid, 89745) >= 0 then
if voc then
if getPlayerLevel(cid) >= voc[1] then
doPlayerSetVocation(cid, voc[2])
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você Transformou!")
local outfit = {lookType = voc[3]}
doCreatureChangeOutfit(cid, outfit)
doSendMagicEffect(getCreaturePosition(cid), voc[4])
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você precisa estar no level " .. voc[1] .. " para transformar.")
end
else
doPlayerSendCancel(cid, "Você não pode se Transformar!")
end
return false
end
return true
end
-
koete recebeu reputação de zPerseu em Script Transformar ERROentão cara, como eu disse antes não tem a vocação akatsuki no seu ot. O que esta acontecendo é que os players da akatsuki ganham uma storage setPlayerStorageValue(cid,89745,6) . quando você da look ele checa essa storage e se tiver ela ele retorna dizendo que o player é da akatsuki. justamente para o player continuar dando transform. Porém como você não quer que ele dê mais transform o jeito é você criar novas classes para akatsuki.
ou você pode acrescentar isso nessa parte do script
acrescentei para checar se o jogador é akatsuki com
if getPlayerStorageValue(cid, 89745) >= 0 then
se for akatsuki ele vai dar return false e não vai transformar. Testa e me fala.
-
koete deu reputação a KotZletY em Problemas com TalkActionAhm ? Sério ? Os Admin's geralmente são gruop id 6. Veja na TalkAtions os comandos e veja qual é o maior group id que tem, que com certeza vai ser maior que 3.
Ou então, vá em data/xml e abra o arquivo group.xml e veja qual é o group id dos Admin's.
-
koete deu reputação a Bodak Reborn em so poder usar item em cima de X pisolocal pos = {x = 1503, y = 1504, z = 7} if getTopCreature(pos).uid > 0 then
-
koete recebeu reputação de Careless em WEBSITE ONLINE COM IP DO OTNa maioria das vezes os outros jogadores não conseguem entrar pela porta 80. tendo então que modificar a porta para 8090 no xampp. Foi esse o motivo de ter falado para ja abrir a porta. mas obrigado por complementar a resposta.
-
koete deu reputação a Bodak Reborn em GlobalStorageValue [Hunt um de cada vez]A função em si não foi eu quem fez, não recordo o nome do criador, mas realmente é bem útil. (:
Olha, tem uma função que eu usei em outro tópico (o nome do criador está no final do meu post) que remove os monstros na área X.
Eu fiz um globalevents, ou seja, é por tempo. Você pode fazer para verificar se tem X monstro na área a partir dela.
De novo, estou meio sem tempo, então só passarei o link do post.
Boa sorte.
-
koete deu reputação a Bodak Reborn em GlobalStorageValue [Hunt um de cada vez]Eu estou um pouco sem tempo agora, eu faria exemplos e tal.
Enfim, faça como eu fiz no movements:
É só remover a verificação se o player tem X storage (que era para saber se ele tinha usado o item), pois seu sistema é por NPC.
Acho que não terá muitas dificuldades, por ser scripter.
A função verifica se tem algum jogador na área, caso não tiver, teleporta para a área. Se tiver, o jogador é teleportado para o tile anterior e não poderá entrar.
Você poderia usar o os.time() para fazer seu script, mas caso alguém morresse lá dentro, ninguém ia poder entrar até acabar o tempo.
Reforçando o que eu disse no tópico: o teleport é sem coordenadas, você dá coordenadas para o tile no qual ele fica em cima, pelo script.
Boa sorte.
-
koete deu reputação a Bodak Reborn em [Problemas com o "end"]function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if (msgcontains(msg, 'sim')) or (msgcontains(msg, 'yes')) then selfSay('A primeira pergunta é: primeira pergunta?', cid) talkState[talkUser] = 1 elseif (msgcontains(msg, 'primeira')) and talkState[talkUser] == 1 then selfSay('Muito bem, essa foi facil. Vamos para a segunda pergunta: segunda pergunta?', cid) talkState[talkUser] = 2 elseif (msgcontains(msg, 'segunda')) and talkState[talkUser] == 2 then selfSay('Muito bem, essa foi relativamente facil. Vamos para a terceira pergunta: Terceira pergunta?', cid) talkState[talkUser] = 3 elseif (msgcontains(msg, 'terceira')) and talkState[talkUser] == 3 then selfSay('Muito bem, essa foi facil. Vamos para a segunda pergunta: fim', cid) talkState[talkUser] = 4 else selfSay('Resposta errada, você está bom o suficiente.', cid) doTeleportThing(cid, {x= 377, y= 183, z= 6}) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
-
koete deu reputação a GabrielSapient em Launcher AutoUpdate C#Galera sempre procurei um Launcher AutoUpdate para meu servidor, depois de muita pesquisa e pouco conhecimento consegui fazer um em C#, está ai:
1. Download:
• Download | • Scan
2. Oque ele faz:
• Verifica a existência da versão local na pasta do cliente; • Se a versão do arquivo não existir, ele assume que a versão é "1.0" e cria um arquivo de versão; • Verifica arquivo .xml no servidor de atualização; • Baixar atualizações para todas as versões maiores do que a versão atual do cliente (atualiza tudo em apenas formato de arquivo .zip); • Extrai os arquivos .zip; • Exclui os arquivos .zip após a extração; • Arquiva a versão atualizada na pasta do cliente; • E, finalmente, desbloqueia o botão "Start Game". 3. Como editar: • Abra o arquivo .sln na pasta "VS Project" com o Visual Studio: Procure por: string Server = "http://127.0.0.1/Updates/"; • Altere o http://127.0.0.1/Updates/ para qualquer URL que você estará hospedando suas atualizações.
• Agora vamos procurar por: Process.Start("OTClient PkR DX9.exe", "\\Pokémon Rusty"); • Modifique o OTClient PkR DX9.exe pelo nome do .exe do seu Client.
• \\Pokémon Rusty e a pasta que está seu .exe e vai ficar seu Launcher. (troque sem tirar os "\\")
• No Visual Studio, selecione o controle WebBrowser(Neste caso, o nome "patchNotes") e alterar a url do "http://127.0.0.1/"para o caminho do arquivo index.html, na pasta do host: OBS: Isto á opcional, é apenas um template em .html. Você pode remove-lo e editar da maneira deseja. • Agora apenas jogue o .exe, .dll e o arquivo version da pasta "Launcher\VS Project\Launcher v2\bin\Debug ou Release" para a pasta de seu Client: Pronto! Agora e com o Site. • No host do site, apos colarmos a pasta Updates, editamos o arquivo Updates.xml, para cada atualização adicionamos um <update> fechamos com </update> como no exemplo do arquivo. Colocamos o arquivo atualização em .zip nessa mesma pasta, editando a versão e o nome no arquivo: • No arquivo version.txt colocamos a versão da nova atualização: • Uma dica para o .zip de atualização é colocar em pastas o caminho no client desejado a fazer update. Exemplo: data/things/854 nesta pasta colocaremos os arquivos que será substituído, no exemplo foi Tibia.spr e .dat. Depois compactamos e deixamos na pasta Updates, sem esquecer de colocar o nome no arquivo Updates.xml. 4. Dica • Pronto! Agora e só criar um instalador com o launcher, com atalho na área de trabalho (o launcher é o .exe que você colocou no client). Você pode modificar o launcher do jeito que quiser, o arquivo index.html e etc. Quando abrir o arquivo ele irá atualizar, liberar o botão "Start Game", e quando você clicar vai fechar o Launcher e abrir o Client. 5. Créditos Eu - Pelo launcher e pelo tutorial. -
koete deu reputação a Cellu em Gesior (8.50)Aqui meu parceiro! https://github.com/gesior/Gesior2012/tree/TFS-0.2.13+