Gostei
info
Grupo: Conde
Registrado: 21/04/16
Posts: 831
Reputação: +271
Gênero: Masculino

Editado Junho 5 por Poccnn
Não há necessidade de citar o tópico todo.
poderia explicar como funciona esse script? como adicionar no server como fazer modificações e tal?
info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

Em 07/10/2017 at 02:46, PuW disse:poderia explicar como funciona esse script? como adicionar no server como fazer modificações e tal?
É uma torre na qual o player tem que eliminar todos os monstros da sala antes de passar para uma sala superior e por fim a ultima sala que é a da recompensa.
No script tu não modifica nada. o que tu pode modificar é os monstros da sala, a sala, as recompensas e tudo o que não precise alterar no script.
"event = addEvent(upDateLevelParadox,1000) " esta parte do script seria a aid que eu registraria no movements? @Poccnn
info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

Em 12/10/2017 at 16:55, PuW disse:"event = addEvent(upDateLevelParadox,1000) " esta parte do script seria a aid que eu registraria no movements? @Poccnn
No script tu não meche em nada. vai no mapa e adiciona uma aid qualquer na escada e essa aid tu coloca no arquivo movements.xml
@Poccnn, poderia me ajudar com uma coisa? Preciso de três modificações simples nesse script (pra mim não é tão simples mas pra você deve ser ksjdskaj)
A primeira modificação é a seguinte, o script detectar se tem alguma pessoa na tower e se caso tiver o script mandar pra outro mapa que será semelhante ao primeiro (somente para que as pessoas não possam entrar juntos no mesmo mapa) ou que o script detectasse quando tivesse uma pessoa e aparecesse uma frase de que já existe uma pessoa lá dentro qualquer uma dessas soluções seria legal pra mim mas se for pra escolher prefiro a primeira
(agora se tu fizesse pra ter como eu configurar quantas pessoas iriam entrar seria muito foda)
e a segunda modificação é, do script deixar o player fazer uma vez a cada 24 horas, e não ser uma coisa que fez e não pode fazer mais.
e a terceira modificação é ter um tempo de 10~15 segundos para teleportar o player e não assim que derrotar o monstro
se puder me ajudar com essas coisas ficarei grato
Editado Outubro 21 por PuW
info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

Em 20/10/2017 at 20:41, PuW disse:@Poccnn, poderia me ajudar com uma coisa? Preciso de três modificações simples nesse script (pra mim não é tão simples mas pra você deve ser ksjdskaj)
A primeira modificação é a seguinte, o script detectar se tem alguma pessoa na tower e se caso tiver o script mandar pra outro mapa que será semelhante ao primeiro (somente para que as pessoas não possam entrar juntos no mesmo mapa) ou que o script detectasse quando tivesse uma pessoa e aparecesse uma frase de que já existe uma pessoa lá dentro qualquer uma dessas soluções seria legal pra mim mas se for pra escolher prefiro a primeira(agora se tu fizesse pra ter como eu configurar quantas pessoas iriam entrar seria muito foda)
e a segunda modificação é, do script deixar o player fazer uma vez a cada 24 horas, e não ser uma coisa que fez e não pode fazer mais.
e a terceira modificação é ter um tempo de 10~15 segundos para teleportar o player e não assim que derrotar o monstro
se puder me ajudar com essas coisas ficarei grato
Fiz as modificações. verifica se é isso que tu quer.
@Poccnn Muito obrigado manoooooooo <3.
Deu esse error
OBS: USO TFS 0.3.6
[25/10/2017 00:45:14] [Error - MoveEvents Interface]
[25/10/2017 00:45:14] data/movements/scripts/tower1.lua:onStepIn
[25/10/2017 00:45:14] Description:
[25/10/2017 00:45:14] data/movements/scripts/tower1.lua:42: attempt to call global 'getCreaturesInRange' (a nil value)
[25/10/2017 00:45:15] stack traceback:
[25/10/2017 00:45:15] data/movements/scripts/tower1.lua:42: in function <data/movements/scripts/tower1.lua:39>
agora umas dúvidas se não for incomodo.
local search = getCreaturesInRange(tower, 50, 50, true, showPlayers)
local players = getCreaturesInRange(tower, 50, 50, showMonsters, true)
local pp = getCreaturesInRange(tower, 50, 50, showMonsters, true)
Caso eu coloque essa parte do creature range assim, ela irá procurar monstros a 50x50 da posição inicial da quest que no caso é:
{x=1950,y=2232,z=8,firstNivel=8,ultimoNivel=10}
Ou da posição atual do player? E só irá teleportar o player para o outro andar caso todos os monstros dessa área de 50x50 estejam mortos, correto?
Se caso for da posição inicial da quest que é "{x=1950,y=2232,z=8,firstNivel=8,ultimoNivel=10}" poderia colocar pra ser da posição do player, precisaria que o script fosse checando conforme o player andasse pois queria fazer uma tower maior em tamanho mas mesmo assim com vários andares.
e também para colocar um limite de tempo (configurável se der) dentro da sala pra que não haja players que fiquem lá dentro prendendo por exemplo "você tem 60 minutos para completar a tower" e se o player deslogar quando ele logar novamente ele aparecer no cp ou em uma posição escolhida por mim. E além dessas coisas eu também gostaria de te pedir (juro que é a última coisa kajsdkajsdkj) para que eu possa limitar alguns itens lá dentro, por exemplo, você pode entrar com quantos itens de id 2394 quiser, mas só poderá usar 10 lá dentro, uma tabelinha configuravel de id's com + de 1 e quantidades ficaria bom (só se der pra tu fazer)
Editado Outubro 25 por PuW
info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

Em 24/10/2017 at 04:24, PuW disse:@Poccnn Muito obrigado manoooooooo <3.
Deu esse errorOBS: USO TFS 0.3.6
[25/10/2017 00:45:14] [Error - MoveEvents Interface]
[25/10/2017 00:45:14] data/movements/scripts/tower1.lua:onStepIn
[25/10/2017 00:45:14] Description:
[25/10/2017 00:45:14] data/movements/scripts/tower1.lua:42: attempt to call global 'getCreaturesInRange' (a nil value)
[25/10/2017 00:45:15] stack traceback:
[25/10/2017 00:45:15] data/movements/scripts/tower1.lua:42: in function <data/movements/scripts/tower1.lua:39>
agora umas dúvidas se não for incomodo.local search = getCreaturesInRange(tower, 50, 50, true, showPlayers)
local players = getCreaturesInRange(tower, 50, 50, showMonsters, true)
local pp = getCreaturesInRange(tower, 50, 50, showMonsters, true)1 - Caso eu coloque essa parte do creature range assim, ela irá procurar monstros a 50x50 da posição inicial da quest que no caso é:
{x=1950,y=2232,z=8,firstNivel=8,ultimoNivel=10}
Ou da posição atual do player?
2 -E só irá teleportar o player para o outro andar caso todos os monstros dessa área de 50x50 estejam mortos, correto?
3 - Se caso for da posição inicial da quest que é "{x=1950,y=2232,z=8,firstNivel=8,ultimoNivel=10}" poderia colocar pra ser da posição do player, precisaria que o script fosse checando conforme o player andasse pois queria fazer uma tower maior em tamanho mas mesmo assim com vários andares.
4 - e também para colocar um limite de tempo (configurável se der) dentro da sala pra que não haja players que fiquem lá dentro prendendo por exemplo "você tem 60 minutos para completar a tower" e
5 - se o player deslogar quando ele logar novamente ele aparecer no cp ou em uma posição escolhida por mim.
6 - E além dessas coisas eu também gostaria de te pedir (juro que é a última coisa kajsdkajsdkj) para que eu possa limitar alguns itens lá dentro, por exemplo, você pode entrar com quantos itens de id 2394 quiser, mas só poderá usar 10 lá dentro, uma tabelinha configuravel de id's com + de 1 e quantidades ficaria bom (só se der pra tu fazer)
O erro se deu pela falta dessa função:
function getCreaturesInRange(position, radiusx, radiusy, showMonsters, showPlayers) local creaturesList,radiusx,radiusy = {},radiusx or 0,radiusy or 0 for x = -radiusx, radiusx do for y = -radiusy, radiusy do local creature = getTopCreature({x = position.x+x, y = position.y+y, z = position.z, stackpos = STACKPOS_TOP_CREATURE}) if (creature.type == 1 and showPlayers == true) or (creature.type == 2 and showMonsters == true) then table.insert(creaturesList, creature.uid) end end end return creaturesList end
1 - Da posição da sala da tower.
2 - Sim.
3 - Se for dessa forma, ao matar os monstros próximos do player ele será teleportado para o próximo andar sem ter que eliminar todos os monstros do andar.
4 - Irei fazer isso.
5 - Pelo mapper editor existe um negocio que adiciona em uma área que impede do player deslogar e caso o servidor caia, ele irá voltar no templo. faça isso na área da tower.
6 - Essa dai já é uma grande alteração que tem que ser feita. não sei se vou fazer isso pra tu.
1 hora atrás, Poccnn disse:
O erro se deu pela falta dessa função:
function getCreaturesInRange(position, radiusx, radiusy, showMonsters, showPlayers) local creaturesList,radiusx,radiusy = {},radiusx or 0,radiusy or 0 for x = -radiusx, radiusx do for y = -radiusy, radiusy do local creature = getTopCreature({x = position.x+x, y = position.y+y, z = position.z, stackpos = STACKPOS_TOP_CREATURE}) if (creature.type == 1 and showPlayers == true) or (creature.type == 2 and showMonsters == true) then table.insert(creaturesList, creature.uid) end end end return creaturesList end
1 - Da posição da sala da tower.
2 - Sim.
3 - Se for dessa forma, ao matar os monstros próximos do player ele será teleportado para o próximo andar sem ter que eliminar todos os monstros do andar.
4 - Irei fazer isso.
5 - Pelo mapper editor existe um negocio que adiciona em uma área que impede do player deslogar e caso o servidor caia, ele irá voltar no templo. faça isso na área da tower.
6 - Essa dai já é uma grande alteração que tem que ser feita. não sei se vou fazer isso pra tu.
Coloquei a função que você me indicou, e agora não dá nenhum erro na distro até envia pra sala da tower, porém não envia pro segundo andar mesmo após matar todos os bixos da sala
info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

1 hora atrás, PuW disse:Coloquei a função que você me indicou, e agora não dá nenhum erro na distro até envia pra sala da tower, porém não envia pro segundo andar mesmo após matar todos os bixos da sala
Já certificou-se de ter posto as posições corretas? Sua distro é de derivados?
4 horas atrás, Poccnn disse:Já certificou-se de ter posto as posições corretas? Sua distro é de derivados?
Sim ele até teleporta pro primeiro nível, porém ao matar todos os bixos do nível ele não é teleportado para o segundo nível.
E sim minha distro é a DxP 0.3.6.
Editado Outubro 29 por PuW
info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

Em 29/10/2017 at 19:01, PuW disse:minha distro é a DxP 0.3.6.
O problema pode ser sua distro.
Essas distros modificadas sempre são problemáticas.
Em 31/10/2017 at 20:16, Poccnn disse:O problema pode ser sua distro.
Essas distros modificadas sempre são problemáticas.
acho que o erro é devido a falta da função:
getStoreString
deu um erro com a função, porém, eu coloquei uma função getStoreString que achei aqui pelo fórum mas não sei se é a correta você poderia me mandar a função?
----Edit
acho que achei o motivo do erro, tipo, se eu colocar:
local search = getCreaturesInRange(tower, 70, 70, true, showPlayers)
local players = getCreaturesInRange(tower, 70, 70, showMonsters, true)
local pp = getCreaturesInRange(tower, 70, 70, showMonsters, true)
ele não funciona, mas, se eu colocar:
local search = getCreaturesInRange(tower, 3, 3, true, showPlayers)
local players = getCreaturesInRange(tower, 3, 3, showMonsters, true)
local pp = getCreaturesInRange(tower, 3, 3, showMonsters, true)
como tava no script inicial ele funciona normalmente, mas, como minha tower é grande ele teleporta o player sem o player precisar matar todos os bixos
Editado Novembro 2 por PuW




info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino
Hail Xtibianos!
Eu fiz essa quest há um tempo atrás como uma forma diferente da paradox tower quest.
Existem sete níveis (pode ser modificado), cada nível terá uma série de monstros, ao matar todos os monstros os players são teleportados para o andar acima, no último andar será a sala da recompensa.
Deixo aqui um exemplo de como montar a tower quest.
Parte superior (sala da recompensa)
Parte inicial com escada.
Primeira sala com monstros (aqui o sistema começa a funcionar).
Implementando o sistema.
Na escada tu coloca uma aid qualquer, registra no arquivo movements.xml
Ex:
Agora crie um arquivo lua e põe esse código nele.
tower.lua
Espero que gostem e qualquer dúvida ou problema no script, deixe nos comentários.
Editado Novembro 26 por Poccnn