muito bom slicer, rep+
- Fórum
- OTServ
- Recursos
- Scripting
- NPCs, monsters e raids
- Npc travel por rota
info
Grupo: Barão
Registrado: 05/10/12
Posts: 245
Reputação: +36

é de tibia?
info
Grupo: Marquês
Registrado: 25/09/10
Posts: 1.3k
Reputação: +446
Gênero: Masculino

info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

funciona em tibia sim.. soh q como soh tenhu serv de pokemon aki, eu fiz nele..
info
Grupo: Herói
Registrado: 22/04/11
Posts: 2.5k
Reputação: +293
Gênero: Masculino
Char no Tibia: Thyn Zare

Se você melhorar a formatação (por em codes), eu coloco no portal, bem interessante!
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

eu n coloquei em code pq iria fica bemmm grande o post mas... posso tentar por.. ;x
info
Grupo: Herói
Registrado: 22/04/11
Posts: 2.5k
Reputação: +293
Gênero: Masculino
Char no Tibia: Thyn Zare

eu n coloquei em code pq iria fica bemmm grande o post mas... posso tentar por.. ;x
Dentro dos spoilers é possível, não?
Nossa esse script vai ajudar muita gente, parabéns cara nao teste ainda no meu serve mais certeza que vou utilizar ele mais pra frente.
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

pronto anyur ^^
vlw huntre essa eh ms a ideia ^^
info
Grupo: Artesão
Registrado: 22/07/12
Posts: 121
Reputação: +1

Slicer..
to testando aqui e é o seguinte:
fiz aqui e so funcionou um lado da hunt
exemplo:
local posis = {
--[pos do npc] = {pos inicial, pos final},
[{x = 997, y = 1123, z = 7}] = {posIni = {x = 975, y = 1124, z = 7}, posFinal = {x = 1016, y = 1123, z = 7}},
[{x = 1015, y = 1121, z = 7}] = {posIni = {x = 1016, y = 1122, z = 7}, posFinal = {x = 975, y = 1125, z = 7}},
so ta funfando essa parte de baixo >> [{x = 1015, y = 1121, z = 7}] = {posIni = {x = 1016, y = 1122, z = 7}, posFinal = {x = 975, y = 1125, z = 7}},
o lado que tem uma Bola vermelha e o lado que ta funcionando e no lado azul
quando vc fala com o npc e depois travel,yes ai vc se teleporta para o lado vermelho que começa ir para o lado azul
e outra coisa quando vc ja ta de barco ou outra coisa e ja ta indo para o outro lado etc.. ai vc consegui deslogar, e quando
vc desloga vc pode andar na agua rsrs
flw ai ^^
info
Grupo: Conde
Registrado: 30/10/11
Posts: 625
Reputação: +101
Gênero: Masculino

cara precisa melhora a identação do script,ta muito feio.e tbm precisa melhora o codigo em si
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

/\ eu uso OTScript Live! dai ja viu neh... ;/
info
Grupo: Artesão
Registrado: 22/07/12
Posts: 121
Reputação: +1

ta Slicer /\
¬¬ mais ate agora nao respondeu oq eu falei em cima ¬¬








info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino
Ola galera, cabei de fazer um npc de travel que move o player por uma rota determinada no mapa editor! Peguei como base a ideia dos novos npcs de travel da pxg... Vamos la então...
1* Vão na pasta lib/ e criem um arquivo la com o nome Travel.lua, e coloquem isso dentro...
function isPosEqual(pos1, pos2) if pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z then return true end return false end function isPosInArray(array, pos) if not next(array) then return false end for i = 1, #array do if isPosEqual(pos, array[i]) then return true end end return false end function moveTravel(cid, posFinal, oldPos) if not isPlayer(cid) then return true end local pos = getThingPos(cid) local oldPos = oldPos or {} if isPosEqual(pos, posFinal) then moveTravel(cid, {x=0, y=0, z=0}, oldPos) doRemoveCondition(cid, CONDITION_OUTFIT) doSendMagicEffect(getThingPos(cid), 21) mayNotMove(cid, false) setPlayerStorageValue(cid, 75846, -1) return true end for i = 0, 7 do local newPos = getPosByDir(pos, i) if not isPosInArray(oldPos, newPos) and getTileInfo(newPos).nologout then doTeleportThing(cid, newPos, true) table.insert(oldPos, pos) if isPosEqual({x=0, y=0, z=0}, posFinal) then return true end addEvent(moveTravel, 150, cid, posFinal, oldPos) return true end end return false end2* Vão na pasta npc/ e criem o arquivo .xml do npc... Vou deixar um exemplo aki...
<?xml version="1.0" encoding="UTF-8"?> <npc name="Nurse Joy" script="Water Travel.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2"> <health now="150" max="150"/> <look type="1041" head="10" body="15" legs="20" feet="25"/> <parameters> <parameter key="message_greet" value="Hi, you would like to {travel}?."/> </parameters> </npc>3* Vão na pasta npc/scripts/ e criem um arquivo la com o nome Water Travel.lua e colem isso dentro...
local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) posInicial = nil posFinal = nil npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid ---------------------- CONFIGS -------------------------------------- local posis = { --[pos do npc] = {pos inicial, pos final}, [{x = 988, y = 1067, z = 7}] = {posIni = {x = 987, y = 1069, z = 7}, posFinal = {x = 947, y = 1110, z = 7}}, [{x = 945, y = 1112, z = 7}] = {posIni = {x = 947, y = 1111, z = 7}, posFinal = {x = 986, y = 1069, z = 7}}, [{x = 107, y = 77, z = 7}] = {posIni = {x = 110, y = 78, z = 7}, posFinal = {x = 81, y = 79, z = 7}}, [{x = 84, y = 77, z = 7}] = {posIni = {x = 81, y = 78, z = 7}, posFinal = {x = 110, y = 79, z = 7}}, [{x = 116, y = 60, z = 7}] = {posIni = {x = 119, y = 58, z = 7}, posFinal = {x = 72, y = 59, z = 7}}, [{x = 69, y = 62, z = 7}] = {posIni = {x = 72, y = 60, z = 7}, posFinal = {x = 119, y = 57, z = 7}}, } for npcPos, pos in pairs(posis) do if isPosEqual(getThingPos(getNpcCid()), npcPos) then posInicial = pos.posIni posFinal = pos.posFinal break end end if not posInicial then selfSay("A error has occored!", cid) print("A error has occored, npc travel aren't in the correct place!") return false end local outfit = getPlayerSex(cid) == 0 and {lookType = 1440} or {lookType = 1439} --outfit q o player vai ganhar, a 1* eh female e a 2* eh male local msg = msg:lower() ------------------------------------------------------------------------------ if msgcontains(msg, 'travel') then ------------------------- Se nao usarem um serv pokemon podem tirar essa parte! ------------------------------------------- local storages = {17000, 63215, 17001, 13008, 5700} for s = 1, #storages do if getPlayerStorageValue(cid, storages[s]) >= 1 then return selfSay("You can't do that while is Flying, Riding, Surfing, Diving or mount a bike!", cid) and true end end if #getCreatureSummons(cid) >= 1 then return selfSay("Return your pokemon!", cid) and true end -------------------------------------------------------------------------------------------------------------------------- selfSay("Are you sure do you want to travel?", cid) talkState[talkUser] = 1 return true elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'Yes')) and talkState[talkUser] == 1 then selfSay("Ok then, good travel!", cid) doTeleportThing(cid, posInicial, false) doSendMagicEffect(getThingPos(cid), 21) mayNotMove(cid, true) setPlayerStorageValue(cid, 75846, 1) doSetCreatureOutfit(cid, outfit, -1) moveTravel(cid, posFinal) talkState[talkUser] = 0 return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())Pronto, agora vamos as configurações...
Configuraçoes:
1* Aki vocês configuram as posições dos npcs e as posições iniciais e finais da rota q o player vai seguir:
local posis = { --[pos do npc] = {pos inicial, pos final}, [{x = 988, y = 1067, z = 7}] = {posIni = {x = 987, y = 1069, z = 7}, posFinal = {x = 947, y = 1110, z = 7}}, [{x = 945, y = 1112, z = 7}] = {posIni = {x = 947, y = 1111, z = 7}, posFinal = {x = 986, y = 1069, z = 7}}, [{x = 107, y = 77, z = 7}] = {posIni = {x = 110, y = 78, z = 7}, posFinal = {x = 81, y = 79, z = 7}}, [{x = 84, y = 77, z = 7}] = {posIni = {x = 81, y = 78, z = 7}, posFinal = {x = 110, y = 79, z = 7}}, [{x = 116, y = 60, z = 7}] = {posIni = {x = 119, y = 58, z = 7}, posFinal = {x = 72, y = 59, z = 7}}, [{x = 69, y = 62, z = 7}] = {posIni = {x = 72, y = 60, z = 7}, posFinal = {x = 119, y = 57, z = 7}}, }2* Aki vocês configuram a outfit q o player vai ganhar quando começar o travel, podendo ser outfit de moto, carro, kaike e afins:
local outfit = getPlayerSex(cid) == 0 and {lookType = 1440} or {lookType = 1439} --outfit q o player vai ganhar, a 1* eh female e a 2* eh male3* Caso não usem um servidor de pokemon, podem tirar essa parte...
------------------------- Se nao usarem um serv pokemon podem tirar essa parte! ------------------------------------------- local storages = {17000, 63215, 17001, 13008, 5700} for s = 1, #storages do if getPlayerStorageValue(cid, storages[s]) >= 1 then return selfSay("You can't do that while is Flying, Riding, Surfing, Diving or mount a bike!", cid) and true end end if #getCreatureSummons(cid) >= 1 then return selfSay("Return your pokemon!", cid) and true end --------------------------------------------------------------------------------------------------------------------------4* Essa é a imagem de como vocês tem q configurar as rotas:
Para fazer as rotas usem a ferramenta 'No-Logout' do mapa editor... lembrando que as posições finais tambem tem que ter o piso no-logout!
Podem fazer a rota como quiserem, mas por favor, nao tentem 'forçar' o script.
Importante: O npc tem q tar imóvel, ele n pode se mover da posição que foi colocada na tabela no script Water Travel.lua!
Importante: Esse script foi inicialmente feito para travels na agua, mas eu testei aki e da pra fazer rotas na terra normalmente!
Importante: Quem for usar num servidor pokemon olhem o spoiler abaixo:
1* Vão no arquivo actions/scripts/goback.lua e achem essa parte...
e deixem assim...
2* Vão no arquivo movements/scripts/surf.lua e logo abaixo dessa linha:
coloquem isso..
3* Caso usem a barra de pokemons do kpdo:
vão em lib/some functions.lua e achem isso...
e façam a mesma coisa do '1*' ali emcima.
Espero que gostem, qualquer duvida ou bug podem postar aki, Vlw!
Editado Março 29 por Slicer