Lipp 0 #1 Postado 5 Fevereiro, 2008 Para aqueles que gostaram do meu otro tutorial então esse aqui seis vão amar caso alguem nao viu o outro tutorial aqui vai >> http://forums.otserv.com.br/showthread.php?p=298328#post298328 Continuando: No outro tutorial agente aprendeu a fazer um npc que pega item, e que dá um "storagevalue" para continuar a outra mensagem. nesse aqui nós vamos aprender a terminar ele e talz.. Paramos no: setPlayerStorageValue(cid,3111,1) que serve para continuar a mensagem ou seja: elseif msgcontains(msg, 'bla2') and talk_state >= 1 then if getPlayerStorageValue(cid,3111) == 1 then o script não está perfeito claro, mas já ajuda muito não? =D tipo, se você não tiver falado a primera vez com o npc ele vai falar: sorry you dont fond it sendo que você não falou com ele né mais vamo lá Então vai que você queira que no final, quando o player tiver entregado todos os itens talz ele vai abrir uma porta igual akelas no global que tem que ter "permisssão" para entrar nela. A porta eu não consigui fazer =xx, diremos que eu tava com sono ^^, mais o dark me ajudou a fazer um piso po Então se vai lá no movements/scripts e bota um ovo OPS, um script: -----------by D@rK all rights reserved------- function teleport(player) dir = getPlayerLookDir(player) pos = getPlayerPosition(player) if dir == 0 then position = {x=pos.x, y=pos.y+1, z=pos.z} elseif dir == 1 then position = {x=pos.x-1, y=pos.y, z=pos.z} elseif dir == 2 then position = {x=pos.x, y=pos.y-1, z=pos.z} elseif dir == 3 then position = {x=pos.x+1, y=pos.y, z=pos.z} end return position end function onStepIn(cid, item, pos) if isPlayer(cid) == TRUE then --==--==--==--== Vocação ==--==--==--==-- [color=red][b] if item.actionid == 0 then[/b][/color] voc_true = {1,2,3,4} voc = getPlayerVocation(cid) for a = 1, table.getn(voc_true) do if voc == voc_true[a] then vocation = 1 break else vocation = 0 end end if vocation == 0 then doTeleportThing(cid,teleport(cid)) doSendMagicEffect(getPlayerPosition(cid),5) doPlayerSendTextMessage(cid, 22,"Você não tem a vocação requerida para passar") doPlayerSendCancel(cid,"Sorry, not possible") end --==--==--==--== Level ==--==--==--==-- [color=red][b]elseif item.actionid == 0 then[/b][/color] level = 250 lvl = getPlayerLevel(cid) if lvl < level then doTeleportThing(cid,teleport(cid)) doSendMagicEffect(getPlayerPosition(cid),5) doPlayerSendTextMessage(cid, 22,'Apenas pessoas com level '.. level ..' ou mais podem passar' ) doPlayerSendCancel(cid,"Sorry, not possible") end --==--==--==--== Quest ==--==--==--==-- [color=blue][b] elseif item.actionid == 4444 then[/b][/color] [b][u]storage = {3111}[/u][/b] for b = 1, table.getn(storage) do value = getPlayerStorageValue(cid,storage[b]) if value > -1 then quest = 1 break else quest = 0 end end if quest == 0 then doTeleportThing(cid,teleport(cid)) doSendMagicEffect(getPlayerPosition(cid),5) doPlayerSendTextMessage(cid, 22,'Desculpe, mas você não pode passar' ) doPlayerSendCancel(cid,"Sorry, not possible") end --==--==--==--== Contem ==--==--==--==-- [color=red][b] elseif item.actionid == 0 then[/b][/color] item_id = {2552, 2553} for c = 1, table.getn(item_id) do item = getPlayerItemCount(cid,item_id[c]) if item > 0 then contem = 1 break else contem = 0 end end if contem == 0 then doTeleportThing(cid,teleport(cid)) doSendMagicEffect(getPlayerPosition(cid),5) doPlayerSendTextMessage(cid, 22,'Desculpe, mas você não tem o item necessario para pode passar' ) doPlayerSendCancel(cid,"Sorry, not possible") end --==--==--==--== Acesso ==--==--==--==-- [color=red][b] elseif item.actionid == 0 then[/b][/color] acesso_true = {2,5} player = getPlayerAccess(cid) for d = 1, table.getn(acesso_true) do if player == acesso_true[d] then acesso = 1 else acesso = 0 end end if acesso == 0 then doTeleportThing(cid,teleport(cid)) doSendMagicEffect(getPlayerPosition(cid),5) doPlayerSendTextMessage(cid, 22,'Desculpe, mas você não tem acesso seficiente para pode passar' ) doPlayerSendCancel(cid,"Sorry, not possible") end end end end e depois no movements.xml e põe <movevent event="StepIn" actionid="o que você quiser" script="pisos1.lua" /> Bom o dark já explico tudo isso mais que que custa eu explica denovo? =x Essi é o script de um piso, que só alguma coisa vai poder passar nele. (vocação, level, acesso, e o nosso que é o de quest). Então não se preocupem com o resto, é soh botar 0 nos outros e no de Quest você põe um actionid que no caso usaremos o 4444. elseif item.actionid == 4444 then : esse é o actionid que você vai por no seu piso lá no seu map editor, favor fazer um corredor com 1 sqm soh =x storage = {3111} : aqui é o storage que o npc te deu lah no final do tutorial passado, claro que se você quiser botar mais mensagens então é só indo pondo mais e mais storages, dai no final de todos você põe setStorageValue(cid,storage que você Quiser,1). Para finalizar o npc se põe: -- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself. return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Azul : ou seja o npc vai falar o bye =D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~ uma coisinha que eu kebrei a cabeça para discubrir foi que, eu queria por os storage value do nada, sendo q eles não existiam, então gente, no map editor, bota uns piso no meio do nada e vai pondo neles a UniqueID q o npc pediu, se não vai dar errado ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~ como eu disse, o script não tá perfeito, claro sou um iniciante mais já pode dar várias ideias pro pessoal não? :style: se vocês acharam q tá muito carnaval o script, po eu fiz o melhor que eu pude pra diferenciar tudo =x VLWW NicK~~~~~ e agora usem idéias próprias, não mais aqueles npcs que só falam "hi, demon shield...." go go go RPG =D fuiz~~~~~~ Créditos? bom eu fiz o tutorial inteiro e os scripts. o script do piso lá eu peguei do dark mesmo, mais o tutorial fala sobre npc então não sei =x Compartilhar este post Link para o post Compartilhar em outros sites
ElfKiller 36 #2 Postado 5 Fevereiro, 2008 Aprovado Compartilhar este post Link para o post Compartilhar em outros sites
Lipp 0 #3 Postado 6 Fevereiro, 2008 @Elf vlww mesmo =D @Povo Vamo comenta aeeee =x Compartilhar este post Link para o post Compartilhar em outros sites
MeLaHeLL 0 #4 Postado 7 Fevereiro, 2008 Uhmmm... Interesante... Pra qem eh iniciante jah ajuda e mto.. E o bastante.. Da pra fazer mta koisa com issu ae. Vlws ae.. Me ajudo com umas duvidas crentes ae. =x uaheuhaeuhahea Vlws. E tuto tah bem explicado! =D Compartilhar este post Link para o post Compartilhar em outros sites
Lipp 0 #5 Postado 7 Fevereiro, 2008 @MeLaHeLL obrigado jah deu umas ideias de umas quest bem loka ae? =D boa sorte ! Compartilhar este post Link para o post Compartilhar em outros sites