Ir para conteúdo

Featured Replies

Postado

Eu tenho um ot com o script changemap que fica trocando de mapa a cada 20 minutos , como todos os players são puxados quando troca de mapa não tem como fazer uma área de trainer, tem como colocar uma exceção para os players não serem puxados quando tiverem na área de trainer , para eles sairem de lá sem bugar facilmente coloco um tp para ele ser deslogado e ir quando relogar ir diretamente para o mapa onde todos estão , quem puder ajudar REP+.

 

 


Quote

<?xml version="1.0" encoding="ISO-8859-1"?> 
<mod name="ChangeMap" version="2.0" author="Vodkart" contact="none.com" enabled="yes"> <config name="map_func"><![CDATA[ info = {"] = 1, 
[1] = 3, 
[2] = 5,
[3] = 7,
[4] = 9,
[5] = 11,
[6] = 13,
[7] = 14,
[8] = 15,
[9] = 16,
[10] = 17

}
storage = 789520

]]></config>
<event type="login" name="Check Map" event="script"><![CDATA[ domodlib('map_func') function onLogin(cid) if getGlobalStorageValue(storage) == -1 then setGlobalStorageValue(storage, 0) end doTeleportThing(cid, getTownTemplePosition(info[getGlobalStorageValue(st"])) 
return true 
end 
]]></event>
<globalevent name="ChangeMap" interval="1350" event="script"><![CDATA[ domodlib('map_func') function onThink(interval, lastExecution) doBroadcastMessage('The map will be changed again in 1 hour.') setGlobalStorageValue(storage, getGlobalStorageValue(storage) < #info and getGlobalStorageValue(storage)+1 or 0) for _, pid in ipairs(getPlayersOnline()) do doPlayerSetTown(pid, info[getGlobalStorageValue(st"])
doRemoveConditions(pid, true)
doCreatureAddHealth(pid, getCreatureMaxHealth(pid))
doCreatureAddMana(pid, getCreatureMaxMana(pid))
doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid))) 
end
return true 
end]]></globalevent>
</mod>
 

 

  • Respostas 11
  • Visualizações 1.1k
  • Created
  • Última resposta

Top Posters In This Topic

Postado

Eu tenho um ot com o script changemap que fica trocando de mapa a cada 20 minutos , como todos os players são puxados quando troca de mapa não tem como fazer uma área de trainer, tem como colocar uma exceção para os players não serem puxados quando tiverem na área de trainer , para eles sairem de lá sem bugar facilmente coloco um tp para ele ser deslogado e ir quando relogar ir diretamente para o mapa onde todos estão , quem puder ajudar REP+.

Teste esse

 

<?xml version="1.0" encoding="ISO-8859-1"?>
<mod name="ChangeMap" version="2.0" author="Vodkart" contact="none.com" enabled="yes">
          <config name="map_func"><![CDATA[
                    info = {
                    [1] = 3,
                    [2] = 5,
                    [3] = 7,
                    [4] = 9,
                    [5] = 11,
                    [6] = 13,
                    [7] = 14,
                    [8] = 15,
                    [9] = 16,
                    [10] = 17
                    }
                    storage = 789520
                    fromPos = {x = 1059, y = 1034, z = 7} -- Posição do piso superior esquerdo
                    toPos = {x = 1062, y = 1036, z = 7} -- Posição do piso inferior direito
          ]]></config>
          <event type="login" name="Check Map" event="script"><![CDATA[
                    domodlib('map_func')
                    function onLogin(cid)
                              local fromp, top = fromPos, toPos
                              for x = fromp.x, top.x do
                                        for y = fromp.y, top.y do
                                                  local areapos = {x=x, y=y, z=fromPos.z}
                                                  getPlayer = getThingfromPos(areapos)
                                                  if isPlayer(getPlayer.uid) then
                                                            doPlayerSendTextMessage(cid, 18, 'You are training, so there will be teleported.')
                                                  end
                                                  if getGlobalStorageValue(storage) == -1 then
                                                            setGlobalStorageValue(storage, 0)
                                                  end
                                                  doTeleportThing(cid, getTownTemplePosition(info[getGlobalStorageValue(storage)]))
                                        end
                              end
                              return true
                    end
          ]]></event>
          <globalevent name="ChangeMap" interval="3600" event="script"><![CDATA[
                    domodlib('map_func')
                    function onThink(interval, lastExecution, thinkInterval)
                              local fromp, top = fromPos, toPos
                              for x = fromp.x, top.x do
                                        for y = fromp.y, top.y do
                                                  local areapos = {x=x, y=y, z=fromPos.z}
                                                  getPlayer = getThingfromPos(areapos)
                                                  if isPlayer(getPlayer.uid) then
                                                            doPlayerSendTextMessage(cid, 18, 'You are training, so there will be teleported.')
                                                  end
                                                  doBroadcastMessage('The map will be changed again in 1 hour.')
                                                  setGlobalStorageValue(storage, getGlobalStorageValue(storage) < #info and getGlobalStorageValue(storage)+1 or 0)
                                                  for _, pid in ipairs(getPlayersOnline()) do
                                                            doPlayerSetTown(pid, info[getGlobalStorageValue(storage)])
                                                            doRemoveConditions(pid, true)
                                                            doCreatureAddHealth(pid, getCreatureMaxHealth(pid))
                                                            doCreatureAddMana(pid, getCreatureMaxMana(pid))
                                                            doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
                                                  end
                                        end
                              end
                              return true
                    end
          ]]></globalevent>
</mod>

 

Dúvidas? Me avise.

 

Att.

Giovani Rodrigo

Editado por GiovaniRodrigo (veja o histórico de edições)

Spoiler

local config = {
	delrey = getPlayerCarValue(cid, DELREY),
	cigarro = getPlayerCancer(cid, DERBY),
	prostituta = getPlayerAIDS(cid, cracuda),
	tresOitao = getPlayerRevorvi(cid, 38)
}

if(delrey == "Ligado" and cigarro == "Aceso" and prostituta == "No Colo" and tresOitao == "Carregado") then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Começou o fim de semana. #PAS")
end

 

Postado
  • Autor

Não entendi a parte que você modifico ...

 

fromPos = {x=0000, y=0000, z=0000} -- Posição do piso superior esquerdo
     toPos = {x=0000, y=0000, z=0000} -- Posição do piso inferior direito

Postado

Não entendi a parte que você modifico ...

Explicando:

 

Imagem 1

 

post-72403-0-22377800-1369618229_thumb.p

A fromPos é a posição do piso superior esquerdo ou o piso contornado de azul como mostra na Imagem 1.

A toPos é a posição do piso inferior direito ou o piso contornado de vermelho como mostra a Imagem 1.

 

Pergunta: Mas o que tem a ver essa fromPos e toPos com a área do trainer?

Resposta: Esses dois pisos tem uma função bem simples que é marcar a área de um quadrado ou retângulo.

 

Continua não entendendo? Vou explicar melhor.

 

 

Imagem 2

post-72403-0-96343400-1369618231_thumb.p

 

Veja que na Imagem 2 tem quatro linhas marcando os eixos X e Y de cada piso, veja também que as linhas se encontram formando um quadrado ou retângulo, isso faz com que os dois pisos que não era de nenhuma importância sejam as peças principais na formação de um quadrado ou retângulo.

 

Pergunta: Mas porque determinar essa área?

Resposta: Se você prestar atenção eu não modifiquei só isso, eu adicionei o seguinte comando.

if isPlayer(getPlayer.uid) then
          doPlayerSendTextMessage(cid, 18, 'You are training, so there will be teleported.')
else

 

Traduzindo

O código diz o seguinte:

Se existir um jogador em determinada área faça (Pergunta: Faça o que?).
          Envie a seguinte mensagem(Mensagem a ser enviada).
Senão (Caso não tenha um jogador em determinada área).
          Executar o script que teletransportará o jogador para a outra cidade.

 

Entendeu?

 

Recopie o código pois editei algumas coisas.

Testado 50% (Apenas abri o OT e não deu nenhum erro).

 

Att.

Giovani Rodrigo

Editado por GiovaniRodrigo (veja o histórico de edições)

Spoiler

local config = {
	delrey = getPlayerCarValue(cid, DELREY),
	cigarro = getPlayerCancer(cid, DERBY),
	prostituta = getPlayerAIDS(cid, cracuda),
	tresOitao = getPlayerRevorvi(cid, 38)
}

if(delrey == "Ligado" and cigarro == "Aceso" and prostituta == "No Colo" and tresOitao == "Carregado") then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Começou o fim de semana. #PAS")
end

 

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