Saffari System (New)

victormoaz
em NPCs, monsters e raids

victormoaz

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 12/02/08Posts: 95Gênero: Masculino

Olá,

Eu fiz esse script para um servidor ao qual eu era membro da equipe. Mas como o servidor "já era".

Vou postar aqui.

 

Nada mais é do que um saffari system.

 

Antes de tudo, é necessários que você tenha adicionado a saffari ball (catch, go back, nurse etc).

Pois eu não vou mostrar como adicionar ela agora. =)

 

 

O que o npc faz?

 

 

O Npc irá checar se o player possui outro tipo de ball para catch (pokeball, great, super, ultra).

Caso sim, ele não deixa entrar. Caso não, ele deixa você entrar.

-----recomendo colocar um depot na casa do safari para facilitar aos players-----

Ao entrar no saffari ele te dar 30 saffari ball para catch.

Como ele está adaptado ao sistema do PxG, não é contado tempo. Você é expulso do safari quando as saffari balls acabam.

Scripts



NPC

 

 

focus = 0

talk_start = 0

target = 0

following = false

attacking = false

 

 

local saffari = {x=1145, y=1411, z=7}

 

function onThingMove(creature, thing, oldpos, oldstackpos)

 

end

 

 

function onCreatureAppear(creature)

 

end

 

 

function onCreatureDisappear(cid, pos)

if focus == cid then

selfSay('See ya.')

focus = 0

talk_start = 0

end

end

 

 

function onCreatureTurn(creature)

 

end

 

function msgcontains(txt, str)

return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))

end

 

function onCreatureSay(cid, type, msg)

msg = string.lower(msg)

 

if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 3 then

selfSay('Olá Eu posso deixa-lo entrar na Saffari Zone por um preço de 3000 Dollars, Aceita?')

focus = cid

talk_start = os.clock()

 

elseif (msgcontains(msg, 'yes') ) then

if getPlayerItemCount(cid,2391) >=1 or getPlayerItemCount(cid,2394) >=1 or getPlayerItemCount(cid,2392) >=1 or getPlayerItemCount(cid,2393) >=1 then

selfSay('Você não pode entrar na saffari portando Pokeballs para catch. Até logo.')

focus = 0

talk_start = 0

elseif getPlayerItemCount(cid,2152) < 30 and getPlayerItemCount(cid,2160) < 1 then

selfSay('Você não possui dinheiro suficiente. Até logo.')

focus = 0

talk_start = 0

elseif getPlayerStorageValue(cid, 98796) >= 1 or getPlayerStorageValue(cid, 98797) >=1 then

selfSay('Você Já está na saffari.')

focus = 0

talk_start = 0

else

setPlayerStorageValue(cid, 98796, 1)

setPlayerStorageValue(cid, 98797, 1)

doPlayerAddItem(cid, 2144, 30)

doPlayerRemoveMoney(cid, 300000)

doTeleportThing(cid, saffari)

talk_start = os.clock()

end

 

 

elseif (msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 3) then

selfSay('Sorry, Im busy at this moment.')

 

 

 

elseif (msgcontains(msg, 'bye') and focus == cid and getDistanceToCreature(cid) < 3) then

selfSay('Good bye then.')

focus = 0

talk_start = 0

end

end

 

 

 

 

function onCreatureChangeOutfit(creature)

 

end

 

 

function onThink()

if (os.clock() - talk_start) > 30 then

if focus > 0 then

selfSay('See ya.')

end

focus = 0

end

end

 

Não está muito dificil de configurar:



De vermelho é o id e a quantidade de pokeballs;

De verde a quantidade de dinheiro que precisa

 

Agora vá em data/creaturescript/login.lua abra o arquivo Login.lua como bloco de notas

Adicione a seguinte tag dentro do arquivo.

 

 

 

if getPlayerStorageValue(cid, 98797) >= 1 then ---Saffari

remm = getPlayerItemCount(cid, 2144)

doPlayerRemoveItem(cid, 2144, remm)

doTeleportThing(cid, safarioff)

setPlayerStorageValue(cid, 98797, 0)

setPlayerStorageValue(cid, 98796, 0)

end

Agora vá em data/actions/scripts e abra o arquivo Catch.lua.



Antes de
function onUse(cid, item, frompos, item3, topos)

adicione a seguinte tag:

 

 

local storage = 987960
local storage2 = 987970
local safarioff = {x=1152, y=1411, z=7}

Logo depois de "function onUse..." adicione:

 

 

if getPlayerStorageValue(cid, 98797) >= 1 then

 

if getPlayerStorageValue(cid, 98796) >= 30 then

setPlayerStorageValue(cid, 98796, 0)

setPlayerStorageValue(cid, 98797, 0)

remm = getPlayerItemCount(cid, 2144)

doPlayerRemoveItem(cid, 2144, remm)

doTeleportThing(cid, safarioff)

 

elseif getPlayerStorageValue(cid, 98796) <30 then

setPlayerStorageValue(cid, 98796, (getPlayerStorageValue(cid, 98796))+1)

end

end

obs.: Os Ids de vermelho são os da saffari ball de catch.

 

 

 

Créditos:



BobStriker - 100%

 

 

Merece um Rep+ ?

Trabalhos

 

 

 

PSDO - 24h - Exp Stages

 

 

*********No level pokemon******** *

*Aleatory Shiny

*Golden Arena (Meowth Coin)

*Saffari with saffari balls

*Duel System (Order)

*Npc Duel (Gym and others)

*Clan system with task and shinys clan

*Client with Pokebar and CooldownBar

*Rocket and Police System

*Map with constant change (Several Quests)

 

 

2cful5h.png

dalvorsn

õ/
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 21/12/11Posts: 750Gênero: Masculino

Pelo que vi ele teleporta imediatamente ao usar a ultima saffari ball correto? Não acho que seja a melhor maneira, um onThink num intervalo de uns 5s ja estaria excelente, poderia fazer até mesmo checando alguma variável que indica que o player está no saffari e verificando a quantidade de saffari balls.

Se não me engano no pxg é ou era assim, e tem uma outra questão também, no saffari não se morre, quando o pokemon acaba com a sua vida, ele te teleporta para fora do saffari apenas.

anyway, good system

"A covardia coloca a questão: É seguro? O comodismo coloca a questão: É popular? A etiqueta coloca a questão: é elegante? Mas a consciência coloca a questão, É correto? E chega uma altura em que temos de tomar uma posição que não é segura, não é elegante, não é popular, mas o temos de fazer porque a nossa consciência nos diz que é essa a atitude correta."

(Martin Luther King)

MrCatra

avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 25/09/12Posts: 208

Nunca vi um NPC desses.Ele tem uma função muito boa.

 

Parabéns,Obrigado por compartilhar.

 

Obrigado,MrCatra

 

Esse merece meu REP++

S5aHt.png

 

XTibia

Desde 20/11/2010

 

--Meus Trabalhos--

 

WebDesigner :

ModernACC

Template Poketibia v1 By MrCatra

Template WoDBO v1 By MrCatra

 

 

 

 

 

 

WebDesigner - 17/08/2012

Designer - 16/05/2012

Mapper iniciante - 10/03/2009

victormoaz

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 12/02/08Posts: 95Gênero: Masculino

@dalvorsn

Uma honra vc comentando meu post... rsrs

Então to começando agora, não sou tão bom na área.

vou dar um estudada nas suas criticas e tentar melhorar o npc..

obrigado.

Trabalhos

 

 

 

PSDO - 24h - Exp Stages

 

 

*********No level pokemon******** *

*Aleatory Shiny

*Golden Arena (Meowth Coin)

*Saffari with saffari balls

*Duel System (Order)

*Npc Duel (Gym and others)

*Clan system with task and shinys clan

*Client with Pokebar and CooldownBar

*Rocket and Police System

*Map with constant change (Several Quests)

 

 

2cful5h.png

Heinekennn

Kepper Games
avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 18/11/12Posts: 197Gênero: MasculinoChar no Tibia: HouseKkeper

Boa so nao sei ele [e para pda sem lvl ?

n5ZiPu1.png

l2eZh5Q.png

GodSony

Magic Bean
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/09/11Posts: 25

ta dando erro,no meu ot n tem saffariball,então coloquei a great no lugar,se o player desloga com as great ball do saffari ele não consegue mais logar '-'

TheCaos

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/09/12Posts: 79Char no Tibia: Lucas Eragon

não tem um comando pra sair de la? estou precisando......

KaboFlow

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 04/07/17Posts: 434

tenhe pra DXP?

o systema saffari?

eu presiso pra base DXP

algem ajude

isabelle

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/07/18Posts: 66
Em 11/10/2012 em 02:24, victormoaz disse:

@dalvorsn

Uma honra vc comentando meu post... rsrs

Então to começando agora, não sou tão bom na área.

vou dar um estudada nas suas criticas e tentar melhorar o npc..

obrigado.

tem como vc me ajudar, em um sistema de pokemon egg???