Postado Janeiro 21, 2018 7 anos Gostaria de uma adaptação para o sistema de bike do meu servidor. Queria que o jogador só pudesse usar a bicicleta quando ela estivesse na bolsa. Segue as imagens com explicação: Realidade: a bike está no chão, cliquei nela e "montei". Expectativa: Seria necessário colocar ela na bolsa para usar(não podendo jogar fora enquanto o jogador está utilizando(montado) a bike.. Achei esses dois scripts nos meus arquivos, creio que se adaptar ele funciona. end if getPlayerSlotItem(cid, CONST_SLOT_AMMO).uid == item.uid then doPlayerSendCancel("Não está no slot correto") return true end ou end if isRiderOrFlyOrSurf(cid) then doPlayerSendCancel(cid, "Dismount your pokemon to ride.") return true end
Postado Janeiro 21, 2018 7 anos Solução Manda o script da bike aí, mas se não quiser, é só por a seguinte verificação: if fromPosition.x == CONTAINER_POSITION then --código aqui else doPlayerSendCancel(cid, "você só pode usar a bicicleta se ela estiver dentro da bp") end Só que isso não impede do player dropar a backpack no chão, ou fazer trade com ela O ideal seria fazer ela um "unmoveable item" (nao sei se eh assim que se escreve jdoasdwq) e deixar num slot fixo, que eh oq 90% dos poketibia fazem. Outra possibilidade seria ele não poder dar trade montado e quando dropasse ele saísse da bike, mas não dá pra fazer isso se teu tfs nao for 1.x, então fica na primeira opção. Editado Janeiro 21, 2018 7 anos por Mono Singed (veja o histórico de edições)
Postado Janeiro 21, 2018 7 anos Autor @Mono Singed Muito bom!, uso a versão tfs 0.3.6 2 horas atrás, Mono Singed disse: Manda o script da bike aí, mas se não quiser, é só por a seguinte verificação: if fromPosition.x == CONTAINER_POSITION then --código aqui else doPlayerSendCancel(cid, "você só pode usar a bicicleta se ela estiver dentro da bp") end Só que isso não impede do player dropar a backpack no chão, ou fazer trade com ela O ideal seria fazer ela um "unmoveable item" (nao sei se eh assim que se escreve jdoasdwq) e deixar num slot fixo, que eh oq 90% dos poketibia fazem. Outra possibilidade seria ele não poder dar trade montado e quando dropasse ele saísse da bike, mas não dá pra fazer isso se teu tfs nao for 1.x, então fica na primeira opção. Mando sim cara, afinal alguns membros daqui me ajudaram a editar o script, ponho com todo o prazer do mundo. function onUse(cid, item, fromPosition, itemEx, toPosition) local sBike = 2547 local speed = 20 -- speed que você quer extra local t = { [18473] = {s=9999, condition=bikeCondition}, } function BikeSpeedOn(cid,nSpeed) setPlayerStorageValue(cid,sBike,getCreatureSpeed(cid)) doChangeSpeed(cid,getCreatureSpeed(cid)+nSpeed) end function BikeSpeedOff(cid) doChangeSpeed(cid,-getCreatureSpeed(cid)) doChangeSpeed(cid,getPlayerStorageValue(cid,sBike)) end local v, r = getCreaturePosition(cid), t[item.itemid] local s = r.s local pos = {x = v.x, y = v.y, z = v.z} if r then if getPlayerStorageValue(cid, 25000) == 5 then return end if getPlayerStorageValue(cid, 23000) == 5 then return end if isRiderOrFlyOrSurf(cid) then doPlayerSendCancel(cid, "Dismount your pokemon to ride.") return true end if getPlayerSlotItem(cid, CONST_SLOT_AMMO).uid == item.uid then doPlayerSendCancel("Não está no slot correto") return true end if getPlayerStorageValue(cid, s) <= 0 then doCreatureSay(cid, r.text, 19) setPlayerStorageValue(cid, s, 1) BikeSpeedOn(cid,speed) player_outfit = getCreatureOutfit(cid) if getPlayerSex(cid) == 1 then doSetCreatureOutfit(cid, {lookType = 2293, lookHead = player_outfit.lookHead, lookAddons = 0, lookLegs = player_outfit.lookLegs, lookBody = player_outfit.lookBody, lookFeet = player_outfit.lookFeet}, -1) ---Female else doSetCreatureOutfit(cid, {lookType = 2292, lookHead = player_outfit.lookHead, lookAddons = 0, lookLegs = player_outfit.lookLegs, lookBody = player_outfit.lookBody, lookFeet = player_outfit.lookFeet}, -1) --- Male end elseif getPlayerStorageValue(cid, s) == 1 then doCreatureSay(cid, r.dtext, 19) setPlayerStorageValue(cid, s, 0) BikeSpeedOff(cid) return doRemoveCondition(cid, CONDITION_OUTFIT) else return doPlayerSendCancel(cid, 'You can\'t do this.') end else return doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, 'Report bugs in Bike system.') end end @Mono Singed Achei esse script no go/back, forçando com que o jogador ponha a pokeball no slot feet(que é o local dos pokemons/pokebolas). elseif item.itemid == pokeballs[btype].on then if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then doPlayerSendCancel(cid, "You must put your pokeball in the correct place!") return TRUE end Creio que consegues adaptar, forçando o jogador a colocar a bike no slot secundário, (acho que é o slot de arrow)
Postado Janeiro 21, 2018 7 anos 12 minutos atrás, tavarb disse: @Mono Singed Muito bom!, uso a versão tfs 0.3.6 Mando sim cara, afinal alguns membros daqui me ajudaram a editar o script, ponho com todo o prazer do mundo. Tenta assim: function BikeSpeedOn(cid,nSpeed) setPlayerStorageValue(cid,sBike,getCreatureSpeed(cid)) doChangeSpeed(cid,getCreatureSpeed(cid)+nSpeed) end function BikeSpeedOff(cid) doChangeSpeed(cid,-getCreatureSpeed(cid)) doChangeSpeed(cid,getPlayerStorageValue(cid,sBike)) end function onUse(cid, item, fromPosition, itemEx, toPosition) local sBike = 2547 local speed = 20 -- speed que você quer extra local t = { [18473] = {s=9999, condition=bikeCondition}, } local v, r = getCreaturePosition(cid), t[item.itemid] local s = r.s local pos = {x = v.x, y = v.y, z = v.z} if fromPosition.x == CONTAINER_POSITION then if r then if getPlayerStorageValue(cid, 25000) == 5 then return end if getPlayerStorageValue(cid, 23000) == 5 then return end if isRiderOrFlyOrSurf(cid) then doPlayerSendCancel(cid, "Dismount your pokemon to ride.") return true end if getPlayerSlotItem(cid, CONST_SLOT_AMMO).uid == item.uid then doPlayerSendCancel("Não está no slot correto") return true end if getPlayerStorageValue(cid, s) <= 0 then doCreatureSay(cid, r.text, 19) setPlayerStorageValue(cid, s, 1) BikeSpeedOn(cid,speed) player_outfit = getCreatureOutfit(cid) if getPlayerSex(cid) == 1 then doSetCreatureOutfit(cid, {lookType = 2293, lookHead = player_outfit.lookHead, lookAddons = 0, lookLegs = player_outfit.lookLegs, lookBody = player_outfit.lookBody, lookFeet = player_outfit.lookFeet}, -1) ---Female else doSetCreatureOutfit(cid, {lookType = 2292, lookHead = player_outfit.lookHead, lookAddons = 0, lookLegs = player_outfit.lookLegs, lookBody = player_outfit.lookBody, lookFeet = player_outfit.lookFeet}, -1) --- Male end elseif getPlayerStorageValue(cid, s) == 1 then doCreatureSay(cid, r.dtext, 19) setPlayerStorageValue(cid, s, 0) BikeSpeedOff(cid) return doRemoveCondition(cid, CONDITION_OUTFIT) else return doPlayerSendCancel(cid, "You can't do this.") end else return doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, 'Report bugs in Bike system.') end else doPlayerSendCancel(cid, "deixe o item na backpack") --mensagem que vai aparecer quando utilizar o item fora da bp return true end end
Postado Janeiro 21, 2018 7 anos Autor @Mono Singed Não funcionou. 9 minutos atrás, Mono Singed disse: Tenta assim: function BikeSpeedOn(cid,nSpeed) setPlayerStorageValue(cid,sBike,getCreatureSpeed(cid)) doChangeSpeed(cid,getCreatureSpeed(cid)+nSpeed) end function BikeSpeedOff(cid) doChangeSpeed(cid,-getCreatureSpeed(cid)) doChangeSpeed(cid,getPlayerStorageValue(cid,sBike)) end function onUse(cid, item, fromPosition, itemEx, toPosition) local sBike = 2547 local speed = 20 -- speed que você quer extra local t = { [18473] = {s=9999, condition=bikeCondition}, } local v, r = getCreaturePosition(cid), t[item.itemid] local s = r.s local pos = {x = v.x, y = v.y, z = v.z} if fromPosition.x == CONTAINER_POSITION then if r then if getPlayerStorageValue(cid, 25000) == 5 then return end if getPlayerStorageValue(cid, 23000) == 5 then return end if isRiderOrFlyOrSurf(cid) then doPlayerSendCancel(cid, "Dismount your pokemon to ride.") return true end if getPlayerSlotItem(cid, CONST_SLOT_AMMO).uid == item.uid then doPlayerSendCancel("Não está no slot correto") return true end if getPlayerStorageValue(cid, s) <= 0 then doCreatureSay(cid, r.text, 19) setPlayerStorageValue(cid, s, 1) BikeSpeedOn(cid,speed) player_outfit = getCreatureOutfit(cid) if getPlayerSex(cid) == 1 then doSetCreatureOutfit(cid, {lookType = 2293, lookHead = player_outfit.lookHead, lookAddons = 0, lookLegs = player_outfit.lookLegs, lookBody = player_outfit.lookBody, lookFeet = player_outfit.lookFeet}, -1) ---Female else doSetCreatureOutfit(cid, {lookType = 2292, lookHead = player_outfit.lookHead, lookAddons = 0, lookLegs = player_outfit.lookLegs, lookBody = player_outfit.lookBody, lookFeet = player_outfit.lookFeet}, -1) --- Male end elseif getPlayerStorageValue(cid, s) == 1 then doCreatureSay(cid, r.dtext, 19) setPlayerStorageValue(cid, s, 0) BikeSpeedOff(cid) return doRemoveCondition(cid, CONDITION_OUTFIT) else return doPlayerSendCancel(cid, "You can't do this.") end else return doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, 'Report bugs in Bike system.') end else doPlayerSendCancel(cid, "deixe o item na backpack") --mensagem que vai aparecer quando utilizar o item fora da bp return true end 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.