Ir para conteúdo

Featured Replies

Postado
  Em 30/06/2016 em 01:31, xWhiteWolf disse:


@elipe até tem mas ficaria uma gambiarra danada pra salvar a posição do ultimo uso e o tempo, compensa mais deixar como está

entendo... porem oque acontece, no meu servidor eu coloquei alguns sqms bem especificos, para que possa ser feito amineração, entoa os lugares do mapa que vai ter eles, serao bem raros, acha que talvez colocando um script no sqm especifico? caso nao de certo, obrigado de toda forma, da maneira que esta ja esta ajudando bastante :D

  • Respostas 122
  • Visualizações 20k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • tem sim, eu só não coloquei porque o próprio tibia ja tem um sistema de exhausted padrão de 1 segundo entre ações contendo itemEx (que é configurável pelo config.lua)

  • dá ué..  terra = {65783} . . . isInArray(terra, itemEx.uid) agora só vai dar pra minerar nos pisos que tiverem unique id 65783. A constante de level é o seguinte.. a fórmula da experiência necessá

  • sim ué.. pra upar do 50 pro 51 a conta é a seguinte: (51*51/k) - (50*50/k) que é igual a 1300 - 1250 = 50 picaretadas.

Postado
  • Autor
  Em 30/06/2016 em 12:09, elipe disse:

entendo... porem oque acontece, no meu servidor eu coloquei alguns sqms bem especificos, para que possa ser feito amineração, entoa os lugares do mapa que vai ter eles, serao bem raros, acha que talvez colocando um script no sqm especifico? caso nao de certo, obrigado de toda forma, da maneira que esta ja esta ajudando bastante :D

a solução é o seguinte, toda vez que vc minerar vc tem que escolher 4 storages, slá 1020, 1021, 1022, 1023 (um exemplo).
Aí no 1020 vc seta o valor dele como toPosition.x, no 1021 vc seta como toPosition.y, no 1022 toPosition.z e no 1023 vc seta os.time();

Aí toda vez que vc for minerar vc tem que verificar além do id do piso, esses 4 storages.

Ficaria assim a checagem

if isInArray(terra, itemEx.itemid) and (toPosition.x ~= getPlayerStorageValue(cid, 1020) or toPosition.y ~= getPlayerStorageValue(cid, 1021) or toPosition.z ~= getPlayerStorageValue(cid, 1022) or os.time() > getPlayerStorageValue(cid, 1023)) then

dessa forma fica com 1 segundo de delay, se quiser aumentar tem que fazer uma matemática nesse ultimo or aí

  Em 30/06/2016 em 02:04, di12345d disse:

eu já removi pra testar pois, dando certo iria criar uma com o mesmo icone no items.otb

 

23:03 You see stone floor.
ItemID: [431], ActionID: [353].
Position: [X: 156] [Y: 92] [Z: 7].
23:03 Using the last pick...

 

terra = {351,352,353,354,355}

 

e nada acontece novamente

 

 

Não é por actionid, é por itemid.. o itemid do stone floor é 431. Dá pra alterar pra verificar por actionid tb, é só mudar o .itemid pra .actionid ou .aid (dependendo da versão)

  Em 30/06/2016 em 12:38, egyptPOWER disse:

Tenho uma dúvida @xWhiteWolf

 

Um player com skill 50, além de coletar minérios de seu respectivo nível, coleta também dos niveis anteriores?!

 

Execelente script, parabéns pela arte.

exatamente, achei que fica melhor desse jeito em vez de dropar só o do respectivo nivel

Postado
  Em 30/06/2016 em 13:13, xWhiteWolf disse:

a solução é o seguinte, toda vez que vc minerar vc tem que escolher 4 storages, slá 1020, 1021, 1022, 1023 (um exemplo).
Aí no 1020 vc seta o valor dele como toPosition.x, no 1021 vc seta como toPosition.y, no 1022 toPosition.z e no 1023 vc seta os.time();

Aí toda vez que vc for minerar vc tem que verificar além do id do piso, esses 4 storages.

Ficaria assim a checagem

if isInArray(terra, itemEx.itemid) and (toPosition.x ~= getPlayerStorageValue(cid, 1020) or toPosition.y ~= getPlayerStorageValue(cid, 1021) or toPosition.z ~= getPlayerStorageValue(cid, 1022) or os.time() > getPlayerStorageValue(cid, 1023)) then

dessa forma fica com 1 segundo de delay, se quiser aumentar tem que fazer uma matemática nesse ultimo or aí

Não é por actionid, é por itemid.. o itemid do stone floor é 431. Dá pra alterar pra verificar por actionid tb, é só mudar o .itemid pra .actionid ou .aid (dependendo da versão)

exatamente, achei que fica melhor desse jeito em vez de dropar só o do respectivo nivel

Entendo, no caso entao eu tenho q criar multiplos scripts né? exemplo, 1 estor 1020, 2 estor 1030.. e assim por diante, tds com essa msm checagem do 'if isInArray'? ou eu entendi errado? :D

 

Postado
  • Autor

não, vc só faz 1 script e troca o if isInArray por essa linha que eu fiz aí, aí depois, dependendo de como vc quiser o sistema  vc coloca essas linhas abaixo (se colocar abaixo do if math.random vc só vai poder minerar dnv 1 segundo dps naquele piso após conseguir algum premio) se colocar antes vc vai precisar esperar 1 segundo mesmo q não ganhe nada.

setPlayerStorageValue(cid, 1020, toPosition.x)

setPlayerStorageValue(cid, 1021, toPosition.y)
setPlayerStorageValue(cid, 1022, toPosition.z)
setPlayerStorageValue(cid, 1023, os.time())

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo