Ir para conteúdo
  • 0

Preciso De Um Simples Edit No Surf (Pokemon)


energythemagyc

Pergunta

Pessoal, é o seguinte, gostaria que me ajudassem no seguinte script :

Surf.lua

 

function onUse(cid, item, frompos, item2, topos)

local configs = {

[4647] = {x = -2, y = 0}, -- 4647 é o id da borda oeste (lado esquerdo do player) ----- Deixa assim

[4645] = {x = 2, y = 0}, -- 4645 é o id da borda leste (lado direito do player) ----- Deixa assim

[4646] = {x = 0, y = 2}, -- 4646 é o id da borda sul (abaixo do player) ----- Deixa assim

[4644] = {x = 0, y = -2}, -- 4644 é o id da borda norte (acima do player) ----- Deixa assim

}

 

local playerpos = getCreaturePosition(cid)

local pokes = {

["Poliwag"] = {lookType=278, speed = 210},

["Tentacruel"] = {lookType=185, speed = 430},

["Blastoise"] = {lookType=184, speed = 500},

["Dewgong"] = {lookType=183, speed = 401},

["Kabutops"] = {lookType=189, speed = 500},

["Omastar"] = {lookType=188, speed = 550},

["Gyarados"] = {lookType=187, speed = 610},

["Poliwrath"] = {lookType=190, speed = 410},

["Shiny Gyarados"] = {lookType=529, speed = 640},

["Shiny Seadra"] = {lookType=522, speed = 530},

["Shiny Tentacruel"] = {lookType=522, speed = 460},

["Squirtle"] = {lookType=273, speed = 280},

["Shiny Blastoise"] = {lookType=523, speed = 540},

["Wartotle"] = {lookType=275, speed = 350},

['Tentacool'] = {lookType=274, speed = 340},

['Staryu'] = {lookType=266, speed = 260},

['Starmie'] = {lookType=267, speed = 450},

['Golduck'] = {lookType=271, speed = 460},

['Poliwhirl'] = {lookType=137, speed = 340},

['Tentacool'] = {lookType=277, speed = 340},

['Goldeen'] = {lookType=268, speed = 220},

['Seaking'] = {lookType=269, speed = 350},

['Seadra'] = {lookType=270, speed = 270},

['Snorlax'] = {lookType=300, speed = 511},

['Vaporeon'] = {lookType=191, speed = 360},

}

 

if #getCreatureSummons(cid) <= 0 and getPlayerStorageValue(cid, 63215) <= 0 then

return doPlayerSendCancel(cid, "Você precisa de um pokemon para nadar.")

end

 

l = false

for i,x in pairs(pokes) do

if getPlayerStorageValue(cid, 63215) <= 0 and i:lower() == getCreatureName(getCreatureSummons(cid)[1]):lower() then

l = true

end

end

 

if not l and getPlayerStorageValue(cid, 63215) <= 0 then

return doPlayerSendCancel(cid, "Este pokemon nao possui a habilidade de nadar.")

end

 

if getPlayerStorageValue(cid, 63215) <= 0 then

doTeleportThing(cid, {x=playerpos.x+configs[item2.itemid].x, y=playerpos.y+configs[item2.itemid].y, z=playerpos.z})

setPlayerStorageValue(cid, 63215, 1)

doSetCreatureOutfit(cid, pokes[getCreatureName(getCreatureSummons(cid)[1])], -1)

doCreatureSay(cid, "Vamos nadar, "..getCreatureName(getCreatureSummons(cid)[1]), 1)

setPlayerStorageValue(cid, 61209, getCreatureMaxHealth(getCreatureSummons(cid)[1]))

setPlayerStorageValue(cid, 61210, getCreatureHealth(getCreatureSummons(cid)[1]))

doChangeSpeed(cid, pokes[getCreatureName(getCreatureSummons(cid)[1])].speed)

doRemoveCreature(getCreatureSummons(cid)[1])

else

doTeleportThing(cid, {x=playerpos.x-configs[item2.itemid].x, y=playerpos.y-configs[item2.itemid].y, z=playerpos.z})

setPlayerStorageValue(cid, 63215, 0)

doRemoveCondition(cid, CONDITION_OUTFIT)

local item = getPokeOutLive(cid)[1]

doCreatureSay(cid, "Vamos sair, " .. getItemAttribute(item, "poke"):match("This is (.-)'s pokeball."), 1)

pk = doSummonCreature(getItemAttribute(item, "poke"):match("This is (.-)'s pokeball."), getThingPosition(cid))

doConvinceCreature(cid, pk)

registerCreatureEvent(pk, "DiePoke")

registerCreatureEvent(cid, "PlayerPokeDeath")

registerCreatureEvent(cid, "LogoutPoke")

setCreatureMaxHealth(pk, getPlayerStorageValue(cid, 61209))

doCreatureAddHealth(pk, getPlayerStorageValue(cid, 61209))

doCreatureAddHealth(pk, getPlayerStorageValue(cid, 61210)-getPlayerStorageValue(cid, 61209))

doChangeSpeed(cid, getCreatureBaseSpeed(cid)-getCreatureSpeed(cid))

end

return TRUE

end

 

Teria como vocês colocar algo do tipo, quando o player estiver no surf não poder pescar ? Pois acontece que o player esta na agua e pesca o poke e o poke pescado fica em cima da agua :S

Se possivel também façam o mesmo no caso do fly

Fly.lua

 

function getPokemonMaxLife(name)

local file = io.open('data/monster/monsters.xml','r')

local arquivo = file:read(-1):lower():match('<monster name="'..name:lower()..'" file="(.-)"/>')

file:close()

local data = io.open('data/monster/'..(arquivo or ''),'r')

if not data then

return 100

end

local maximo = data:read(-1):match('max%s*=%s*"(%d+)"')

data:close()

return maximo

end

 

function onUse(cid, item, frompos, item2, topos)

 

local pokes = {

['Moltres'] = {229, 800},

['Articuno'] = {230, 800},

['Zapdos'] = {224, 800},

['Mew'] = {232, 800},

['Mewtwo'] = {233, 800},

['Dragonite'] = {221, 300},

['Pidgeot'] = {222, 350},

['Fearow'] = {226, 400},

['Aerodactyl'] = {227, 490},

['Charizard'] = {216, 590},

['Elder Charizard'] = {295, 800},

}

local idballs = {

[2531] = {"Pokeball"},

[2557] = {"Superball"},

[2524] = {"Greatball"},

[2525] = {"Ultraball"},

[2523] = {"Masterball"},

}

 

local storage = 9393 -- Não mexa aqui!

local exhaust = 0 -- Tempo para player poder usar o item novamente! (tempo em segundos)

local time = 0 -- Tempo para ficar na montaria! (tempo em segundos)

local old_speed = getCreatureBaseSpeed(cid)

local summons = getCreatureSummons(cid)

if (getPlayerStorageValue(cid, storage) <= os.time()) then

if getPlayerStorageValue(cid, 24000) == 5 then

return doPlayerSendCancel(cid, "Você está montado.")

end

if getPlayerStorageValue(cid, 17000) == 10 then

local nome = getItemName(getPlayerSlotItem(cid, CONST_SLOT_FEET).uid)

local balls = idballs[getPlayerSlotItem(cid,8).itemid]

local poke_name = nome:match('(.-) '..balls[1])

local action_id = getItemAttribute(getPlayerSlotItem(cid, CONST_SLOT_FEET).uid, "aid")

if getSqmId(getCreaturePosition(cid)).itemid == CONST_FLYVOID then

return doPlayerSendCancel(cid,"Desça antes de sair do fly")

end

setPlayerStorageValue(cid, storage, os.time()+exhaust)

doChangeSpeed(cid, -(getCreatureSpeed(cid) - getCreatureBaseSpeed(cid)))

doRemoveCondition(cid, CONDITION_OUTFIT)

setPlayerStorageValue(cid, 17000, 7)

setPlayerStorageValue(cid, 23000, 6)

local monster = doCreateMonster(poke_name, getCreaturePosition(cid))

doConvinceCreature(cid, monster)

doCreatureAddHealth(monster, -(tonumber(getPokemonMaxLife(poke_name) - action_id)))

doPlayerSay(cid, poke_name .. ", Vamos parar!", TALKTYPE_SAY)

setPlayerStorageValue(cid, 9999,-1)

setPlayerStorageValue(cid, 8888,-1)

return true

end

if #getCreatureSummons(cid) < 1 then

return doPlayerSendCancel(cid, "Para voar você precisa de um pokemon")

end

 

if isPremium(cid) == FALSE then

return doPlayerSendCancel(cid, "Você não é premium account.")

end

local name = getCreatureName(getCreatureSummons(cid)[1])

local pokemon = pokes[getCreatureName(getCreatureSummons(cid)[1])]

 

if not pokes[name] then

return doPlayerSendCancel(cid, "Este pokemon não pode voar.")

end

setPlayerStorageValue(cid, storage, os.time()+exhaust)

doChangeSpeed(cid, pokemon[2])

setPlayerStorageValue(cid, 17000, 10)

setPlayerStorageValue(cid, 23000, 5)

doSetCreatureOutfit(cid, {lookType = pokemon[1], lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, -1)

setPlayerStorageValue(cid,9999,pokemon[1])

setPlayerStorageValue(cid,8888,pokemon[2])

doItemSetAttribute(getPlayerSlotItem(cid, CONST_SLOT_FEET).uid, "aid", getCreatureHealth(getCreatureSummons(cid)[1]))

function getPokemonId(summons)

for _, pid in ipairs(summons) do

return pid

end

end

doRemoveCreature(getPokemonId(summons))

doPlayerSay(cid, name .. ", Vamos voar!", TALKTYPE_SAY)

doPlayerSendTextMessage(cid,27,'Fale \'up\' para subir e \'down\' para descer!.' )

if fly.using(cid) then

local p = getCreaturePosition(cid)

p.stackpos = 0

local f = getTileThingByPos(p)

if fly.del(cid) then

if f.itemid ~= 0 and f.itemid ~= 1 and f.itemid ~= CONST_FLYVOID then

return true

else

setPlayerStorageValue(cid,10941,1)

local p = getCreaturePosition(cid)

setPlayerStorageValue(cid, 102011,p.x)

setPlayerStorageValue(cid, 102012,p.y)

setPlayerStorageValue(cid, 102013,p.z)

return true

end

else

doPlayerSendTextMessage(cid,27,'Você não pode voar neste local.')

end

end

end

return true

end

 

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Vai em actions/scripts/tools/fishing.lua

 

Aperta ctrl + f e procure por :

 

function onUse

 

depois dessa linha (embaixo) coloque:

 

waters = {4614, 4615, 4616, 4617, 4618, 4619, 4608, 4609, 4610, 4611, 4612, 4613, 7236, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4665, 4666, 4820, 4821, 4822, 4823, 4824, 4825},}

if isInArray(water, getTileInfo(getThingPos(cid)).itemid) then

doPlayerSendCancel(cid, "You can\'t fish while surfing neither flying above water.")

return true

end

 

Deve resolver seu problema.

Link para o comentário
Compartilhar em outros sites

  • 0

Nao funcionou, ocorreu o seguinte erro :

 

[19/12/2010 16:41:01] [Warning - Actions::registerEvent] Duplicate registered item id: 2550 [19/12/2010 16:41:01] [Error - LuaScriptInterface::loadFile] data/actions/scripts/tools/fishing.lua:2: unexpected symbol near '}' [19/12/2010 16:41:01] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/tools/fishing.lua) [19/12/2010 16:41:01] data/actions/scripts/tools/fishing.lua:2: unexpected symbol near '}' [19/12/2010 16:41:01] [Error - LuaScriptInterface::loadFile] data/actions/scripts/tools/fishing.lua:2: unexpected symbol near '}' [19/12/2010 16:41:01] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/tools/fishing.lua) [19/12/2010 16:41:01] data/actions/scripts/tools/fishing.lua:2: unexpected symbol near '}'

 

Link para o comentário
Compartilhar em outros sites

  • 0

Ops, erro meu, é porque no meu fishing.lua tem 2 arrays, o "waters" e o "water".

Arrumei já, desculpe por qualquer coisa:

 

 

local water = {'4820', '4821', '4822', '4823', '4824', '4825'}

if isInArray(water, getTileInfo(getThingPos(cid)).itemid) then

doPlayerSendCancel(cid, "You can\'t fish while surfing neither flying above water.")

return true

end

 

 

Esse erro do 2550 não tem nenhuma ligação com o fishing.lua.

 

Você colocou ele duas vezes no actions.xml, só isso.

 

No array, eu coloquei só o id das águas "andáveis", porque o seu surf/fly deve funcionar desse jeito.

 

Espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

  • 0

Tente colocando assim:

 

local water = {4820, 4821, 4822, 4823, 4824, 4825}

if isInArray(water, getThingfromPos(getCreaturePosition(cid)).itemid) then
doPlayerSendCancel(cid, "You can\'t fish while surfing neither flying above water.")
return true
end

 

 

flw

Link para o comentário
Compartilhar em outros sites

  • 0

Vai em actions/scripts/tools/fishing.lua

 

adc isso :

 

 if getPlayerStorageValue(cid, 63215) >= 1 or getPlayerStorageValue(cid, 9393) >= 1 then
      doPlayerSendCancel(cid, "Você não pode pescar no surf ou fly.")
      return true 
      end  

Editado por xotservx
Link para o comentário
Compartilhar em outros sites

  • 0

Eu tentei todos estes de vocês e todos com o mesmo erro.. se eu ponho isso não posso mais pescar!

Como o amigo ai disse que funciona vou postar meu Fishing para se precisarem..

Favor, adicionar um mini tutorial pois faz tempo que não mexo com isso.

REP++ para quem ajudar-me.. e meu Obrigado :smile_positivo:

 

 

function onUse(cid, item, fromPos, itemEx, toPos)

 

d0 =

{

[0] = {pokemon = 'Magikarp'},

}

 

d20 =

{

[0] = {pokemon = 'Magikarp'},

[1] = {pokemon = 'Horsea'},

[2] = {pokemon = 'Poliwag'},

[3] = {pokemon = 'Goldeen'},

[4] = {pokemon = 'Krabby'},

}

 

d40 =

{

[0] = {pokemon = 'Magikarp'},

[1] = {pokemon = 'Horsea'},

[2] = {pokemon = 'Poliwag'},

[3] = {pokemon = 'Goldeen'},

[4] = {pokemon = 'Krabby'},

[5] = {pokemon = 'Tentacool'},

}

 

d60 =

{

[0] = {pokemon = 'Magikarp'},

[1] = {pokemon = 'Horsea'},

[2] = {pokemon = 'Poliwag'},

[3] = {pokemon = 'Goldeen'},

[4] = {pokemon = 'Krabby'},

[5] = {pokemon = 'Tentacool'},

[6] = {pokemon = 'Seaking'},

}

 

d80 =

{

[0] = {pokemon = 'Magikarp'},

[1] = {pokemon = 'Horsea'},

[2] = {pokemon = 'Poliwag'},

[3] = {pokemon = 'Goldeen'},

[4] = {pokemon = 'Krabby'},

[5] = {pokemon = 'Tentacool'},

[6] = {pokemon = 'Seaking'},

[7] = {pokemon = 'Starmie'},

[8] = {pokemon = 'Kingler'},

[9] = {pokemon = 'Seadra'},

}

 

d100 =

{

[0] = {pokemon = 'Magikarp'},

[1] = {pokemon = 'Horsea'},

[2] = {pokemon = 'Poliwag'},

[3] = {pokemon = 'Goldeen'},

[4] = {pokemon = 'Krabby'},

[5] = {pokemon = 'Tentacool'},

[6] = {pokemon = 'Seaking'},

[7] = {pokemon = 'Starmie'},

[8] = {pokemon = 'Kingler'},

[9] = {pokemon = 'Seadra'},

[10] = {pokemon = 'Staryu'},

[11] = {pokemon = 'Gyarados'},

 

}

local config = {

waters = {4614, 4615, 4616, 4617, 4618, 4619, 4608, 4609, 4610, 4611, 4612, 4613, 7236, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4665, 4666, 4820, 4821, 4822, 4823, 4824, 4825},

}

 

local skill = getPlayerSkillLevel(cid, 6)

local playerpos = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y+1, z=getCreaturePosition(cid).z}

 

if(isInArray(config.waters, itemEx.itemid)) then

doSendMagicEffect(toPos, CONST_ME_LOSEENERGY)

doPlayerAddSkillTry(cid, 6, 1)

 

if skill >= 100 then

local random = math.random(0, 38)

if random <= 11 then

doSummonCreature(d100[random].pokemon, playerpos)

return true

end

else

if skill >= 80 then

local random = math.random(0, 35)

if random <= 9 then

doSummonCreature(d80[random].pokemon, playerpos)

return true

end

else

if skill >= 60 then

local random = math.random(0, 28)

if random <= 6 then

doSummonCreature(d60[random].pokemon, playerpos)

return true

end

else

if skill >= 40 then

local random = math.random(0, 26)

if random <= 5 then

doSummonCreature(d40[random].pokemon, playerpos)

return true

end

else

if skill >= 20 then

local random = math.random(0, 24)

if random <= 4 then

doSummonCreature(d20[random].pokemon, playerpos)

return true

end

else

if skill >= 0 and skill < 20 then

local random = math.random(0, 10)

if random <= 0 then

doSummonCreature(d0[random].pokemon, playerpos)

return true

end

return true

end

return true

end

return true

end

end

end

end

end

end

 

 

Espero que me ajudem, GRATO! des de já!

PS: me envia via PM

Editado por Vampiresco
Link para o comentário
Compartilhar em outros sites

  • 0

OI GALERA VCS PODEM ME AJUDAR EU TOU COM UM PROBLEMA NO MEU SERVER DE POKEMON NA HORA DO SURF TIPO QUANDO EU COLOCO PRA SURFAR ELE ENTRA NA AGUA MONTADO NO POKEMON SO QUE FICA TRAVADO ALI NAQUELE LOCAL OU AS VEZES ACABA INDO PRA UM LUGAR BEM LONGE DE ONDE EU BOTEI E AINDA SIM NO SE MEXE ALGUEM PODERIA ME AJUDAR COM ESSE ERRO E TBM QUERO CORRIGIR UM ERRO DE QUE QUANDO EU VOU CURAR OS POKEMONS NA ENFERMEIRA JOY LAH NO PC POKEMON CENTER ELA SO CURA UM DE CADA VEZ DAI TEM QUE SAIR DANDO HI HI HI HI ATE CURAR TODOS QUERO SABER SE TEM ALGUMA MANEIRA DE CURAR TODOS NUM 'HI' SOH.

0

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...