Sofft 5 Postado Agosto 5, 2012 Share Postado Agosto 5, 2012 Xtibianos, Gostaria que alguém pudesse desenvolver e disponibilizar, um Sistema de Treinamento Offline, como o inserido no global. Especificações: # Limite de Treinamento - Por exemplo, treina só por 1h depois de deslogar. E para começar a treinar denovo esperar 24h. # Para começar o treinamento, assim como no Global clicar em um Item, o char desloga e treina. # Treinar METADE do que se estivesse treinando em Monk...etc...etc # As seguintes combinações de treino: Axe+Shield, Club+Shield, Sword+Shield, Distance+Shield, Magic Level+Shield Tenho uma ideia de como seria o script, mas não consigo fazer, Usando Eventos e Storages. Link para o comentário https://xtibia.com/forum/topic/191388-treinamento-offline/ Compartilhar em outros sites More sharing options...
0 Vodkart 1515 Postado Agosto 5, 2012 Share Postado Agosto 5, 2012 estava pesquisando sobre o sistema, só começa a treinar 10 minutos após o char deslogar, outra coisa é pensar como vai ser feito o sistema, talvez dê para fazer por querys em LUA. Você sabe se por exemplo, eu cliquei no item e desloguei, ai resolvi logar de novo durante o treino... se se eu deslogar de nova a contagem do tempo é a mesma ou caso eu logue durante o treinamento offline, tem que esperar 24 hrs de novo Link para o comentário https://xtibia.com/forum/topic/191388-treinamento-offline/#findComment-1310097 Compartilhar em outros sites More sharing options...
0 Sofft 5 Postado Agosto 5, 2012 Autor Share Postado Agosto 5, 2012 (editado) @Vodkart, O global é assim, por exemplo: você tem 1h de treinamento, se porventura você logar apos 30 min, você pode por novamente para treinar, não é necessário esperar 24h no global, aumenta como STAMINA, se você acabou com as horas de treinamento, e esperar aumenta 1min e desloga, vai treinar 1 min. Deu pra entender ?? poderia ser desse jeito também o SCRIPT, não precisaria de 24h de descanso. Aproveitando que você está aqui dê uma olhada nesse tópico aqui, e vê se consegue me ajudar. Editado Agosto 5, 2012 por Sofft Link para o comentário https://xtibia.com/forum/topic/191388-treinamento-offline/#findComment-1310105 Compartilhar em outros sites More sharing options...
0 Vodkart 1515 Postado Agosto 5, 2012 Share Postado Agosto 5, 2012 hmm, vou tentar pensar em alguma maneira de fazer em lua, talvez seja preciso usar c++ também =s Link para o comentário https://xtibia.com/forum/topic/191388-treinamento-offline/#findComment-1310167 Compartilhar em outros sites More sharing options...
0 Sofft 5 Postado Agosto 5, 2012 Autor Share Postado Agosto 5, 2012 hummm... acho que da pra fazer sim, com Event, doPlayerAddSkillTry(cid,0,2), doPlayerAddSpentMana(cid,150), storage... Link para o comentário https://xtibia.com/forum/topic/191388-treinamento-offline/#findComment-1310184 Compartilhar em outros sites More sharing options...
0 Vodkart 1515 Postado Agosto 5, 2012 Share Postado Agosto 5, 2012 mas isso só vai funcionar se os jogadores estiverem online... teria que ter uma formula especifica pra no caso por exemplo a cada "X" tempo aumentar tanto de "amount" skill outra coisa é checar se o jogador usou o item, porque se você usar a função para checar qualquer coisa e o jogador estiver offline, vai retornar erro no distro. talvez de para usar globalevent e a cada "x" segundo aumenta a skill dos player que usaram esse item, mas tudo enquanto o jogador estiver offline, ou seja por db. Link para o comentário https://xtibia.com/forum/topic/191388-treinamento-offline/#findComment-1310193 Compartilhar em outros sites More sharing options...
0 Sofft 5 Postado Agosto 5, 2012 Autor Share Postado Agosto 5, 2012 @Vodkart, pensei em outra possibilidade aqui agora! O player usa o item X, ai setStorage Y=1 e desloga. Quando o player logar adiciona um evento que pega o tempo que o player ficou offline, ou pegue a hora do logoff, e para cada 2 segundos doPlayerAddSkillTry...e setStorage Y=0 basicamente isso, agora é tratamento de exceção. e... eu não sei uma função que retorne o tempo offline, nem a hora do logoff. Link para o comentário https://xtibia.com/forum/topic/191388-treinamento-offline/#findComment-1310215 Compartilhar em outros sites More sharing options...
0 caotic 393 Postado Agosto 5, 2012 Share Postado Agosto 5, 2012 tava fazendo ai me falaram que ja tinha feito o sistema. Tava bem cansativo mais tava fazendo usando lastlogin. Link para o comentário https://xtibia.com/forum/topic/191388-treinamento-offline/#findComment-1310218 Compartilhar em outros sites More sharing options...
0 Fir3element 185 Postado Agosto 5, 2012 Share Postado Agosto 5, 2012 (editado) Vodkart, se precisar tenho todos os códigos nas sources =P Essa semana ou na outra o Talaturen já vai adicionar o sistema inteiro... Editado Agosto 5, 2012 por fireelement Link para o comentário https://xtibia.com/forum/topic/191388-treinamento-offline/#findComment-1310220 Compartilhar em outros sites More sharing options...
0 Sofft 5 Postado Agosto 6, 2012 Autor Share Postado Agosto 6, 2012 @fireelement, vai adicionar em que versão e que distro? Link para o comentário https://xtibia.com/forum/topic/191388-treinamento-offline/#findComment-1310820 Compartilhar em outros sites More sharing options...
0 MaXwEllDeN 89 Postado Agosto 6, 2012 Share Postado Agosto 6, 2012 (editado) onUse(cid) setPlayerStorageValue(cid, 7123, os.time()) return doRemoveCreature(cid) function getTime(s) local h = math.floor(s/3600) local m = math.floor((s - h * 3600) / 60) return h, m, (s - h * 3600) - m * 60 end function onLogin(cid) local secs_off = os.time() - getPlayerStorageValue(cid, 7123) if (secs_off > 0) then local tim = {getTime(secs_off)} local h, m, s = (tim[1] > 0) and tim[1] .. " hora" or "", (tim[2] > 0) and tim[2] .." minuto " or "", (tim[3] > 0) andtim[3] .. " segundo " or "" local h, m, s = (tim[1] > 1) and tim[1] .. " horas" or h, (tim[2] > 1) and tim[2] .." minutos " or m, (tim[3] > 1) andtim[3] .. " segundos " or s local timz = h if (m ~= "") then if (h ~= "" and s ~= "") then timz = timz .. ", ".. m .. "e " elseif(s ~= "") then timz = timz .. m .."e " else timz = timz .. m end end doPlayerSendTextMessage(cid, 19, "Durante sua ausência você treinou por ".. timz .. s .. ".") setPlayerStorageValue(cid, 7123, -1) --addSkillEquivalenteAoTimeOff(tim) end return true end Editado Agosto 6, 2012 por MaXwEllDeN Link para o comentário https://xtibia.com/forum/topic/191388-treinamento-offline/#findComment-1310963 Compartilhar em outros sites More sharing options...
0 Sofft 5 Postado Agosto 6, 2012 Autor Share Postado Agosto 6, 2012 @MaXwEllDeN, posso usar esse seu creatureevent para fazer a função certinha, e postar aqui? Link para o comentário https://xtibia.com/forum/topic/191388-treinamento-offline/#findComment-1311065 Compartilhar em outros sites More sharing options...
0 MaXwEllDeN 89 Postado Agosto 6, 2012 Share Postado Agosto 6, 2012 @MaXwEllDeN, posso usar esse seu creatureevent para fazer a função certinha, e postar aqui? Claro ^^ Link para o comentário https://xtibia.com/forum/topic/191388-treinamento-offline/#findComment-1311080 Compartilhar em outros sites More sharing options...
0 Sofft 5 Postado Agosto 6, 2012 Autor Share Postado Agosto 6, 2012 (editado) Fiz um sistema aqui usando o que o amigo MaXwEllDeN postou ali em cima, NÃO esta pronto ainda, tem que testar! Fiz um sistema usando 3 Storages, 1 para testar o tempo que o player tem disponível para treinar, 1 para ver o tempo que ele gastou treinando, 1 para interagir as outras 2 storages. onUse(cid) local rec = os.time() - getPlayerStorageValue(cid, 7124) --- Subtrai a hora do ultimo treinamento da hora atual local recrate = 2 --- Taxa de recarga, ex: 2 = a cada 2 minutos sem treinar aumenta 1 para poder treinar setPlayerStorageValue(cid, 7125, getPlayerStorageValue(cid, 7125) + (rec/recrate)) --- adiciona o tempo de treinamento setPlayerStorageValue(cid, 7123, os.time()) setPlayerStorageValue(cid, 7124, -1) return doRemoveCreature(cid) function getTime(s) local h = math.floor(s/3600) local m = math.floor((s - h * 3600) / 60) return h, m, (s - h * 3600) - m * 60 end function onLogin(cid) local secs_off = os.time() - getPlayerStorageValue(cid, 7123) local skilltime = getPlayerStorageValue(cid, 7125) --- Tempo de treinamento disponivel local skillrate = 1 --- Taxa com quem o skill passará if(secs_off > skilltime) then local secs_off = skilltime end --- Limita o treino if (secs_off > 0) then local tim = {getTime(secs_off)} local h, m, s = (tim[1] > 0) and tim[1] .. " hora" or "", (tim[2] > 0) and tim[2] .." minuto " or "", (tim[3] > 0) andtim[3] .. " segundo " or "" local h, m, s = (tim[1] > 1) and tim[1] .. " horas" or h, (tim[2] > 1) and tim[2] .." minutos " or m, (tim[3] > 1) andtim[3] .. " segundos " or s local timz = h if (m ~= "") then if (h ~= "" and s ~= "") then timz = timz .. ", ".. m .. "e " elseif(s ~= "") then timz = timz .. m .."e " else timz = timz .. m end end elseif (m <= 10) then --- Só apos 10 minutos depois de deslogado começa a treinar doPlayerSendTextMessage(cid, 19, "O treinameto só ativa depois de 10 minutos.") elseif (h >= 1) then --- Limita o treino a 1 hora doPlayerSendTextMessage(cid, 19, "Durante sua ausência você treinou por 1 hora.") doPlayerAddSkillTry(cid,1,skillrate*1200) doPlayerAddSkillTry(cid,5,skillrate*1200) elseif (h < 1 and m >= 10) then --- Adiciona o tanto de skill referente ao tempo de treino doPlayerSendTextMessage(cid, 19, "Durante sua ausência você treinou por ".. timz .. s .. ".") doPlayerAddSkillTry(cid,1,skillrate*(tim-600)/2) --- raciocinio: skillrate * (tempo de treino - 10 minutos) / por padrão o HITs são a cada 2 segundos doPlayerAddSkillTry(cid,5,skillrate*(tim-600)/2) end setPlayerStorageValue(cid, 7123, -1) setPlayerStorageValue(cid, 7125, getPlayerStorageValue(cid, 7125) - (secs_off)) --- remove o tempo de treinamento setPlayerStorageValue(cid, 7124, os.time()) end return true Falta limitar a Storage 7125 para que o máximo de tempo treinável seja 1 hora. Conto com a ajuda de vocês MaXwEllDeN e Vodkart. EDIT---------------------------------- EI!!!!!!! me ajudem por favor! confiram as funções, porque eu não sei se estão usadas de maneiras corretas!!! VODKART MAXWELLDEN por favor. =/ Editado Agosto 10, 2012 por Sofft Link para o comentário https://xtibia.com/forum/topic/191388-treinamento-offline/#findComment-1311097 Compartilhar em outros sites More sharing options...
0 GodalonexD 4 Postado Agosto 12, 2012 Share Postado Agosto 12, 2012 Bem eu to com um server 9.6 e to procurando isso... sera que pode usa isso? Link para o comentário https://xtibia.com/forum/topic/191388-treinamento-offline/#findComment-1315155 Compartilhar em outros sites More sharing options...
0 Sofft 5 Postado Agosto 13, 2012 Autor Share Postado Agosto 13, 2012 @TitanicoxD, pode sim, só que presciso testar antes. qual server 9.60 vc usa?? pode mandar link por mensagem?? Link para o comentário https://xtibia.com/forum/topic/191388-treinamento-offline/#findComment-1315902 Compartilhar em outros sites More sharing options...
Pergunta
Sofft 5
Xtibianos,
Gostaria que alguém pudesse desenvolver e disponibilizar, um Sistema de Treinamento Offline, como o inserido no global.
Especificações:
# Limite de Treinamento - Por exemplo, treina só por 1h depois de deslogar. E para começar a treinar denovo esperar 24h.
# Para começar o treinamento, assim como no Global clicar em um Item, o char desloga e treina.
# Treinar METADE do que se estivesse treinando em Monk...etc...etc
# As seguintes combinações de treino: Axe+Shield, Club+Shield, Sword+Shield, Distance+Shield, Magic Level+Shield
Tenho uma ideia de como seria o script, mas não consigo fazer, Usando Eventos e Storages.
Link para o comentário
https://xtibia.com/forum/topic/191388-treinamento-offline/Compartilhar em outros sites
23 respostass a esta questão
Posts Recomendados