Postado Abril 25, 2014 11 anos Fala ai galera, tudo tranquilo? Então, eu sou novato por aqui não sei se estou pedindo na área correta ou não, mas tudo bem. Eu queria pedir um movement que quando o player pisar nele ele será teleportado para tal lugar e quando outro player pisar ele será teleportado para outro lugar, para dividir os players.. Exemplo: Eu entro na sala, e lá tem um tile quando eu piso nele eu sou teleportado para o lado esquerdo com outfit vermelha e é adicionado dois storages (123321 e 123325) Quando outro player pisa no tile ele vai para o lado direito com outfit azul e é adicionado dois storages também (123322 e 123326) Bão, acho que é isso.. Aguardo respostas e já agradeço a todos! Editado Abril 25, 2014 11 anos por Yoshigawa (veja o histórico de edições)
Postado Abril 26, 2014 11 anos caricatura do script: local pos1 = {x=XXX, y=YYY, z= ZZ} local pos 2 = {x=XXX, y=YYY, z= ZZ} local outfit1 = {lookType = 152, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3} local outfit2 = {lookType = 152, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3} local storage = {123321, 123325, 123322, 123326} function onStepIn(cid, item, position, fromPosition) c = math.random(1,100) if c > 50 then setPlayerStorageValue (storage[1], 1) setPlayerStorageValue (storage[2], 1) doTeleportThing(cid, pos1, TRUE) doSetCreatureOutfit(cid, outfit1, -1) else setPlayerStorageValue (storage[3], 1) setPlayerStorageValue (storage[4], 1) doTeleportThing(cid, pos2, TRUE) doSetCreatureOutfit(cid, outfit2, -1) end return true end agora se vc quiser que separe os times de uma maneira mais balanceada (e menos randômica) salve dois globalstorage e chame ele a cada pisada de player, o time que o player for será o global storage +1 e ele checa se o globalstorage 1 é maior que o 2. Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Postado Abril 26, 2014 11 anos Acho que assim faz tudo que tu pediu ... -- <movevent type="StepIn" actionid="XXXX" event="script" value="separar_times.lua"/> function onStepIn(cid, item, position, fromPosition) local conditionBlack = createConditionObject(CONDITION_OUTFIT) setConditionParam(conditionBlack, CONDITION_PARAM_TICKS, -1) addOutfitCondition(conditionBlack, {lookType = 134, lookHead = 114, lookBody = 114, lookLegs = 114, lookFeet = 114}) local conditionRed = createConditionObject(CONDITION_OUTFIT) setConditionParam(conditionRed, CONDITION_PARAM_TICKS, -1) addOutfitCondition(conditionRed, {lookType = 143, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94}) local storage_global = 50000 local team = { one = { name = "Black Team", -- nome time 1 storage = 140120, -- storage time 1 storage1 = 123322, storage2 = 123326, pos = {x=456, y=17, z=7} -- posição para onde eles vão ao passar pela tile (cada time tem o seu) }, two = { name = "Red Team", -- nome time 2 storage = 140121, -- storage time 2 storage1 = 123321, storage2 = 123325, pos = {x=505, y=17, z=7} -- posição para onde eles vão ao passar pela tile (cada time tem o seu) }, } if getPlayerAccess(cid) > 3 then doTeleportThing(cid, team.one.pos) return false elseif getGlobalStorageValue(storage_global) > 0 then setGlobalStorageValue(storage_global, getGlobalStorageValue(storage_global)-1) end if getGlobalStorageValue(storage_global) >= 0 then if getGlobalStorageValue(team.one.storage) < getGlobalStorageValue(team.two.storage) then setPlayerStorageValue(cid, team.one.storage, 1) doAddCondition(cid, conditionBlack) setGlobalStorageValue(team.one.storage, getGlobalStorageValue(team.one.storage)+1) setPlayerStorageValue(cid,team.one.storage1,1) setPlayerStorageValue(cid,team.one.storage2,1) doTeleportThing(cid, team.one.pos) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. team.one.name .. "!") else setPlayerStorageValue(cid, team.two.storage, 1) doAddCondition(cid, conditionRed) setGlobalStorageValue(team.two.storage, getGlobalStorageValue(team.two.storage)+1) setPlayerStorageValue(cid,team.two.storage1,1) setPlayerStorageValue(cid,team.two.storage2,1) doTeleportThing(cid, team.two.pos) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. team.two.name .. "!") end end return true end Para configurar são essas linhas ... one = { name = "Black Team", -- nome time 1 storage = 140120, -- storage time 1 storage1 = 123322, storage2 = 123326, pos = {x=456, y=17, z=7} -- posição para onde eles vão ao entrar no tp (cada time tem o seu) }, two = { name = "Red Team", -- nome time 2 storage = 140121, -- storage time 2 storage1 = 123321, storage2 = 123325, pos = {x=505, y=17, z=7} -- posição para onde eles vão ao entrar no tp (cada time tem o seu) }, Não testei, acho que dá certo. STYLLER OT 2022
Postado Abril 26, 2014 11 anos caricatura do script: local pos1 = {x=XXX, y=YYY, z= ZZ}local pos 2 = {x=XXX, y=YYY, z= ZZ}local outfit1 = {lookType = 152, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3}local outfit2 = {lookType = 152, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3}local storage = {123321, 123325, 123322, 123326}function onStepIn(cid, item, position, fromPosition)c = math.random(1,100)if c > 50 thensetPlayerStorageValue (storage[1], 1)setPlayerStorageValue (storage[2], 1)doTeleportThing(cid, pos1, TRUE)doSetCreatureOutfit(cid, outfit1, -1)elsesetPlayerStorageValue (storage[3], 1)setPlayerStorageValue (storage[4], 1)doTeleportThing(cid, pos2, TRUE)doSetCreatureOutfit(cid, outfit2, -1)endreturn trueendagora se vc quiser que separe os times de uma maneira mais balanceada (e menos randômica) salve dois globalstorage e chame ele a cada pisada de player, o time que o player for será o global storage +1 e ele checa se o globalstorage 1 é maior que o 2. Obrigadasso pelo script brother, só que tem um problema, que nem você falou ele está separando de um forma randômica, se eu pisar e logo outro player pisar, eles vão para o mesmo lugar assim desbalanceando o time, ai podendo ficar time com mais jogadores do que no time adversário. Será que você poderia balancea-lo para mim? não manjo muito de scripts UHSAEUHAS, mas em relação ao script em si , funcionou perfeitamente, ele apenas não balanceia. Acho que assim faz tudo que tu pediu ... -- <movevent type="StepIn" actionid="XXXX" event="script" value="separar_times.lua"/>function onStepIn(cid, item, position, fromPosition) local conditionBlack = createConditionObject(CONDITION_OUTFIT) setConditionParam(conditionBlack, CONDITION_PARAM_TICKS, -1) addOutfitCondition(conditionBlack, {lookType = 134, lookHead = 114, lookBody = 114, lookLegs = 114, lookFeet = 114}) local conditionRed = createConditionObject(CONDITION_OUTFIT) setConditionParam(conditionRed, CONDITION_PARAM_TICKS, -1) addOutfitCondition(conditionRed, {lookType = 143, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94}) local storage_global = 50000 local team = { one = { name = "Black Team", -- nome time 1 storage = 140120, -- storage time 1 storage1 = 123322, storage2 = 123326, pos = {x=456, y=17, z=7} -- posição para onde eles vão ao passar pela tile (cada time tem o seu) }, two = { name = "Red Team", -- nome time 2 storage = 140121, -- storage time 2 storage1 = 123321, storage2 = 123325, pos = {x=505, y=17, z=7} -- posição para onde eles vão ao passar pela tile (cada time tem o seu) }, } if getPlayerAccess(cid) > 3 then doTeleportThing(cid, team.one.pos) return false elseif getGlobalStorageValue(storage_global) > 0 then setGlobalStorageValue(storage_global, getGlobalStorageValue(storage_global)-1) end if getGlobalStorageValue(storage_global) >= 0 then if getGlobalStorageValue(team.one.storage) < getGlobalStorageValue(team.two.storage) then setPlayerStorageValue(cid, team.one.storage, 1) doAddCondition(cid, conditionBlack) setGlobalStorageValue(team.one.storage, getGlobalStorageValue(team.one.storage)+1) setPlayerStorageValue(cid,team.one.storage1,1) setPlayerStorageValue(cid,team.one.storage2,1) doTeleportThing(cid, team.one.pos) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. team.one.name .. "!") else setPlayerStorageValue(cid, team.two.storage, 1) doAddCondition(cid, conditionRed) setGlobalStorageValue(team.two.storage, getGlobalStorageValue(team.two.storage)+1) setPlayerStorageValue(cid,team.two.storage1,1) setPlayerStorageValue(cid,team.two.storage2,1) doTeleportThing(cid, team.two.pos) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. team.two.name .. "!") end end return trueend Para configurar são essas linhas ... one = { name = "Black Team", -- nome time 1 storage = 140120, -- storage time 1 storage1 = 123322, storage2 = 123326, pos = {x=456, y=17, z=7} -- posição para onde eles vão ao entrar no tp (cada time tem o seu)}, two = { name = "Red Team", -- nome time 2 storage = 140121, -- storage time 2 storage1 = 123321, storage2 = 123325, pos = {x=505, y=17, z=7} -- posição para onde eles vão ao entrar no tp (cada time tem o seu)}, Não testei, acho que dá certo. Pelo que eu entendo de script, seu script também esta perfeito, impecável.. Era bem o que eu queria mesmo, além de separar manda a mensagem para qual time foi, obrigadão também irmão, mas ele não funciona, eu fiz o teste e quando o player pisa não acontece nada.. teria como arrumar? Obrigado aos dois membros que me ajudaram, realmente Tibia King é o melhor site *-* HUAEAHUHSAUHSA Abraços Editado Abril 26, 2014 11 anos por eusouobozo1 (veja o histórico de edições)
Postado Abril 27, 2014 11 anos Já revisei o código, não sei porque não esta funcionando, WhiteWolf, pode nos ajudar? STYLLER OT 2022
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.