Postado Maio 26, 2013 12 anos 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>
Postado Maio 26, 2013 12 anos 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 Junho 10, 2013 11 anos 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 Maio 26, 2013 12 anos 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 Maio 27, 2013 12 anos Não entendi a parte que você modifico ... Explicando: Imagem 1 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 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 Maio 30, 2013 12 anos 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 Maio 27, 2013 12 anos Autor coloquei a posição da ponta esquerda e da ponta direita mesmo assim continua sendo puxado :/
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.