Ir para conteúdo

Tutorial...colocando Npc De Acc...


Rayzfox

Posts Recomendados

Atenção:

 

O NPC deve ser possicionado em um lugar que outros players com acc ja criada não possam subir/descer/olhar.

 

Por que?

Se um player com acc ja criada ver o otro criando poderá roubar sua senha e account para no futoro hackiar.

Então CUIDADO!

 

 

Primeiro Passo: Criando o NPC,

 

Vá na pasta do seu OT, depois na pasta data e depois NPC,

Copie qualquer um e renomeie para: Acc Manager

 

Depois de ter Renomiado o arquivo da pasta seuot/data/npc aperte botão direito e depois EDITAR ( 2º Opção)

Irá Aparecer uma tela bloco de notas apague tudu oque está dentro e ponha isto:

<?xml version="1.0"?>

 

<npc name="Acc Manager" script="data/npc/scripts/manager.lua" access="3">

 

************<look type="1448" head="57" body="59" legs="40" feet="76"/>

 

</npc>

 

Depois salve e feche o bloco de notas que foi renomeiado para Acc Manager.

 

Agora vá na pasta data/npc/scripts copie qualquer um, botão direito editar..

Abrirá um bloco de notas apague tudu e ponha isto:

---little config-----------------------------------------

templex = 160

templey = 48

templez = 7

maxnamelen = 20

maxpasslen = 20

startlvl = 8

startexp = 4200

vocations = 1

healthstart = 185

manastart = 35

depoitemid = 2591

promoted = 0

---------skills-------------------------

--knight-------

kmlvl = 0

kfist = 10

kclub = 10

ksword = 10

kaxe = 10

kdist = 10

kshield = 10

kfish = 10

kcap = 400

--pall------------

pmlvl = 0

pfist = 10

pclub = 10

psword = 10

paxe = 10

pdist = 10

pshield = 10

pfish = 10

pcap = 400

---drut i sorc----

mmlvl = 0

mfist = 10

mclub = 10

msword = 10

maxe = 10

mdist = 10

mshield = 10

mfish = 10

mcap = 400

---end skills -------------------------------

--~Tr0p5 (20% and players.xml)

---end little config-----------------------------------------

focus = 0

talk_start = 0

target = 0

following = false

attacking = false

accstatus = 0

seksik = 3

myname = ''

mypass = ''

allow_pattern = '^[a-zA-Z -]+$'

allow_pattern2 = '^[a-zA-Z0-9 -]+$'

origmsg = ''

mypasscheck = ''

mynamecheck = ''

vocation = 0

 

 

function onThingMove(creature, thing, oldpos, oldstackpos)

 

end

 

 

function onCreatureAppear(creature)

 

end

 

 

function onCreatureDisappear(cid, pos)

if focus == cid then

selfSay('Good bye then.')

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)

origmsg = msg

msg = string.lower(msg)

 

 

 

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

selfSay('Olá. Se quiser ser homem diga -man- , se quiser ser mulher diga -woman-.')

accstatus = 1

myname = ''

mypass = ''

myaccnumber = 0

focus = cid

talk_start = os.clock()

 

 

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

selfSay('Wait..')

 

 

elseif focus == cid then

talk_start = os.clock()

 

if accstatus == 1 then

if msgcontains(msg, 'man') then selfSay('What name do you want?')

seksik = 1

accstatus = 2

elseif msgcontains(msg, 'woman') then

selfSay('Que nick voce quer?')

seksik = 0

accstatus = 2

end

 

 

 

 

elseif accstatus == 66 then

if msgcontains(msg, 'paladin') then

vocation = 3

selfSay('O lutador sagrada da distancia?')

 

elseif msgcontains(msg, 'sorcerer') then

vocation = 1

selfSay('O poderoso bruxo sorcerer?')

 

elseif msgcontains(msg, 'druid') then

vocation = 2

selfSay('O guerreiro magico da natureza?')

 

elseif msgcontains(msg, 'knight') then

vocation = 4

selfSay('O guerreiro de armas pesadas?')

else

selfSay('Diga denovo.')

end

 

accstatus = 67

 

 

elseif accstatus == 2 then

myname = origmsg

mynamecheck = msg

if string.len(mynamecheck) <= maxnamelen then

if string.find(mynamecheck, allow_pattern) then

if io.open("data/players/"..myname..".xml" , "r") == nil then

selfSay('Ok. '..myname..' eh seu nome?')

accstatus = 3

else

selfSay('Este nome jah está sendo usado, por favor diga outro.')

end

else

selfSay('Caracteres ilegais em seu nick, por favor diga outro.')

end

else

selfSay('Nome muito longo, por favor diga outro.')

end

elseif msgcontains(msg, 'yes') then

if accstatus == 3 then

if vocations == 0 then

selfSay('Ok, diga-me sua senha')

vocation = 0

accstatus = 4

else

selfSay('Que vocação voce deseja ser?')

accstatus = 66

end

elseif accstatus == 5 then

if seksik == 0 then

selfSay('Otimo! Voce eh mulher chamada: '..myname..' sua senha eh: '..mypass..'. Certo ?')

else

selfSay('Otimo! Voce eh homem chamado: '..myname..' sua senha eh: '..mypass..'. Certo ?')

 

end

accstatus = 6

elseif accstatus == 6 then

selfSay('Ok, riga -rand- para eu escolher sua account.')

accstatus = 7

elseif accstatus == 67 then

selfSay('Diga-me sua senha.')

accstatus = 4

end

elseif msgcontains(msg, 'not') then

if accstatus == 3 then

selfSay('Escolha outro.')

accstatus = 2

elseif accstatus == 5 then

selfSay('Escolha outro.')

accstatus = 4

elseif accstatus == 6 then

selfSay('Vamos de novo, se quiser ser homem diga -man- , se quiser ser mulher diga -woman-.')

accstatus = 1

elseif accstatus == 67 then

selfSay('Diga-me sua vocacao de novo')

accstatus = 66

end

elseif accstatus == 4 then

mypass = origmsg

mypasscheck = msg

if string.len(mypasscheck) <= maxpasslen then

if string.find(mypasscheck, allow_pattern2) then

selfSay('sua senha eh: '..mypass..' Certo ?')

accstatus = 5

else

selfSay('Caracteres ilegais.')

end

else

selfSay('Muito longo.')

end

 

elseif msgcontains(msg, 'rand') and accstatus == 7 then

if manastart == 0 then

manastartc = 1

else

manastartc = manastart

end

if healthstart == 0 then

healthstartc = 1

else

healthstartc = healthstart

end

if vocations == 0 then

mlvl = 1

fist = 10

club = 10

sword = 10

axe = 10

dist = 10

shield = 10

fish = 10

cap = 100

else

if vocation == 1 or vocation == 2 then

mlvl = mmlvl

fist = mfist

club = mclub

sword = msword

axe = maxe

dist = mdist

shield = mshield

fish = mfish

cap = mcap

 

elseif vocation == 3 then

mlvl = pmlvl

fist = pfist

club = pclub

sword = psword

axe = paxe

dist = pdist

shield = pshield

fish = pfish

cap = pcap

elseif vocation == 4 then

mlvl = kmlvl

fist = kfist

club = kclub

sword = ksword

axe = kaxe

dist = kdist

shield = kshield

fish = kfish

cap = kcap

 

end

end

 

myaccnumber = math.random(100000,999999)

if io.open("data/accounts/"..myaccnumber..".xml" , "r") == nil then

selfSay('Sua acc eh: '..myaccnumber..' Diga -next- para temrinar, e lembre-se, jogue sua backpack fora quando começar')

accstatus = 8

f = assert(io.open("./data/accounts/"..myaccnumber..".xml", "w"))

f = io.open("./data/accounts/"..myaccnumber..".xml", "w")

f:write("<?xml version="1.0"?><account pass=""..mypass.."" type="1" premDays="0"><characters><character name=""..myname..""/></characters></account>")

f:close()

f = assert(io.open("./data/players/"..myname..".xml", "w"))

f = io.open("./data/players/"..myname..".xml", "w")

f:write("<?xml version="1.0"?><player name=""..myname.."" id="" ..myaccnumber.."" account=""..myaccnumber.."" sex=""..seksik.."" lookdir="2" exp=""..startexp.."" voc=""..vocation.."" level=""..startlvl.."" access="0" cap=""..cap.."" maglevel=""..mlvl.."" maxdepotitems="1000" lastlogin="0" lastlogout="0" premmium="0" promoted=""..promoted.."" soul="100" warning="0" red="0" banTicks="0" reason="" rook="0" sleeping="0" knowaddon="0" lookaddon="0"><spawn x=""..templex.."" y=""..templey.."" z=""..templez..""/><temple x=""..templex.."" y=""..templey.."" z=""..templez..""/><health now=""..healthstart.."" max=""..healthstartc.."" food="0"/><mana now=""..manastartc.."" max=""..manastartc.."" spent="0"/><look type="128" head="77" body="79" legs="78" feet="77"/><guild name="" rank="" nick="" id=""/><skills><skill skillid="0" level=""..fist.."" tries="0"/><skill skillid="1" level=""..club.."" tries="0"/><skill skillid="2" level=""..sword.."" tries="0"/><skill skillid="3" level=""..axe.."" tries="0"/><skill skillid="4" level=""..dist.."" tries="0"/><skill skillid="5" level=""..shield.."" tries="0"/><skill skillid="6" level=""..fish.."" tries="0"/></skills><ban comment="" action=""/><skull redskulltime="0" redskull="0"/><deaths/><spells/><inventory><slot slotid="3"><item id="1988"><inside><item id="2120"/><item id="2509"/><item id="2459"/><item id="5710"/></inside></item></slot><slot slotid="4"><item id=""/></slot><slot slotid="6"><item id="2398"/></slot><slot slotid="7"><item id="2649"/></slot><slot slotid="8"><item id="2643"/></slot></inventory><depots><depot depotid="1"><item id=""..depoitemid..""><inside><item id="2594"/></inside></item></depot></depots><storage/><viplist/></player>")

f:close()

r22 = math.random(10,99999)

h = io.open("./data/players/players.xml", "r")

h:read()

doop = h:read("*a")

h:close()

g = io.open("./data/players/players.xml", "w")

g:write("<players>n<player guid=""..r22..""******name=""..myname..""/>n"..doop.."n")

g:close()

 

else

selfSay('Error say --rand-- again')

end

 

 

 

elseif msgcontains(msg, 'next') and accstatus == 8 then

selfSay('Number: '..myaccnumber..' password: '..mypass..'. by ~Tr0p5')

accstatus = 0

 

 

 

 

elseif string.find(msg, '(%a*)bye(%a*)') and getDistanceToCreature(cid) < 4 then

selfSay('Até mais, ' .. creatureGetName(cid) .. '!')

focus = 0

accstatus = 0

myname = ''

mypass = ''

myaccnumber = 0

seksik = ''

talk_start = 0

end

end

end

 

 

function onCreatureChangeOutfit(creature)

 

end

 

 

function onThink()

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

if focus > 0 then

selfSay('Next please!')

end

focus = 0

end

if focus ~= 0 then

if getDistanceToCreature(focus) > 5 then

selfSay('Good bye!')

focus = 0

end

end

end

 

Feito isto salve tudo e pronto está pronto o seu NPC acc manager mais...

Para que quando os players criarem acc e eles aparecerem no templo certinho procure no MAP EDITOR o lugar que você quer o templo e depois no scripit acima procure isso:

 

templex = 160

templey = 48

templez = 7

 

No meu o map editor tava assim o meu templo la no canto:

parte1ia2.png

 

No meu tava assim eu não sei o de vocês pode ficar 900 456 7 depende é só ir no :

 

templex = 160

templey = 48

templez = 7

 

E mudar!

 

Segundo Passo: Colocando o NPC e o char que vai criar acc.

 

Para colocar o seu NPC em algum lugar do mapa para os chars forem criados eu recomendo ir no map editor e criar tipo um prediu com 5 andares e por 1 Acc Manager em cada andar:

parte2db0.png

 

A imagem acima explica como por os NPC e os char.

 

Os char são facil, faça uma conta (1/1) e faça 5 chars (Um em cada andar),

Após isso você vai prescizar colocar o NPC no map para isso vá na pasta data/word e procure por npc.xml (Botão direito EDITAR) aparecera um bloco de notas abra umas 5 tag e faça isso:

<npc name="Acc Manager" x="570" y="714" z="0" dir="2"/>

<npc name="Acc Manager" x="570" y="714" z="1" dir="2"/>

<npc name="Acc Manager" x="570" y="714" z="2" dir="2"/>

<npc name="Acc Manager" x="570" y="714" z="3" dir="2"/>

<npc name="Acc Manager" x="570" y="714" z="4" dir="2"/>

 

Na parte :

 

x="570" y="714" z="4" dir="2"/>

 

Será a posição em que o NPC vai aparecer quando você abrir o OT:

 

(As cordenadas do prédio de 5 andares pode ser vista no MAP EDITOR)

 

PRONTO!

Agora você não vai prescizar criar SITES para criar accs é só fazer isso ai que ja deu!

 

Creditos: 95% Big Smoke

5% Eu

Link para o comentário
Compartilhar em outros sites

  • 2 months later...
  • 1 month later...
  • 4 months later...
  • 2 weeks later...

cara no meu não ta fufando eu fiz aquela torre tbm os player funfa certinho, mais não ta carregando os npc eu coloquei aquilo tudo certinho da posição x y z o temple tbm o scrip e talz mais não carrega os npc.

 

olha ai o que esta acontecendo

 

http://br.msnusers.com/a396r2hk9idoahfs383...uras%2Ferro.jpg

 

observe só a parte que tem data/npc/scrip.lua ta ligado no qual eu tou falando certo são cinco falhas quando vai se conectar que é os cinco npc

 

add msn ou responder o tópico

edvaldofdsf@hotmail.com

 

posted by God Loko

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
×
×
  • Criar Novo...