CO

Função Buytype() By Colex

Por colex, 07 de set. de 2006 em Mods, funções e outros

script
18
3.7k
colexC
07 de setembro de 2006 às 00:04

Olá,

venho postar uma função elaborada por mim que serve para vender items de quantidade mais facilmente.

a função é a seguinte:

buytype(uid,txt,id,min,max,price)

uid - variavel do player, normalmente é cid

txt - variavel das falas do player, normalmente é msg

id - id do item que quer vender (função feita para items de quantidade)

min - a quantidade minima que se pode comprar de tal item

max - a quantidade maxima que se pode comprar de tal item

price - preço por cada quantidade

Exemplo: (vendendo hmm por 40gps cada tiro sendo o maximo que se pode comprar 255 e o minimo 5)

buytype(cid,msg,2311,5,255,50)

Exemplo de uma conversa entre o player e o NPC:

player: Hi

NPC: Hi, I sell runes and arrows!

player: 15775 hmm (se o maximo for hmm de 100x, ele só recebe de 100x)

NPC: Here you are.

player: abc50 uh (o player irá comprar uma uh de 50x)

NPC: Here you are.

player: arrow (não colocou nenhum numero, então irá receber o minimo, neste caso poderia ser uma arrow)

NPC: Here you are

Agora vamos ao que interessa,

na pasta data\npc\scripts\lib abra o arquivo npc.lua e adicione o seguinte code no final:

 

-------function buytype by Colex-------function buytype(uid,txt,id,min,max,price)x = string.gsub(txt,"%a","")x = tonumber(x)if x ~= nill and x > min then	if x <= max then  price = x * price  buy(uid,id,x,price)	else  price = max * price  buy(uid,id,max,price)	endelse	buy(uid,id,min,price)endend

 

Agora vou dar um exemplo de um NPC que vende runes, o maximo de cargas que ele vende em cada rune é de 150 e o minimo variado por cada rune:

 

focus = 0talk_start = 0target = 0following = falseattacking = falsefunction onThingMove(creature, thing, oldpos, oldstackpos)endfunction onCreatureAppear(creature)endfunction onCreatureDisappear(cid, pos)   if focus == cid then    selfSay('Good bye then.')    focus = 0    talk_start = 0   endendfunction onCreatureTurn(creature)endfunction msgcontains(txt, str)   return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))endfunction onCreatureSay(cid, type, msg)   msg = string.lower(msg)   -- greeting phrase if string.find(msg, '(%a*)hi(%a*)') and focus == 0 and string.len(msg) == 2 and getDistanceToCreature(cid) < 3 then    selfSay('Hello ' .. creatureGetName(cid) .. '! I sell runes.')    focus = cid  talk_start = os.clock()   	elseif focus == cid then  talk_start = os.clock()  if msgcontains(msg, 'runes') then 	 selfSay('I sell hmm(40gps), uh(90gps), gfb(60gps), explosion(80gps), sd(100gps) and blank runes(5gps).)	  elseif msgcontains(msg, 'hmm') then 	 buytype(cid,msg,2311,5,150,40)    elseif msgcontains(msg, 'uh') then 	 buytype(cid,msg,2273,1,150,90)  elseif msgcontains(msg, 'gfb') then 	 buytype(cid,msg,2304,3,150,60)  elseif msgcontains(msg, 'explosion') then 	 buytype(cid,msg,2313,3,150,80)    elseif msgcontains(msg, 'sd') then 	 buytype(cid,msg,2311,1,150,100)  elseif msgcontains(msg, 'blank') then 	 buy(cid,2260,1,5) ---não usa buytype porque não é item de quantidade      elseif string.find(msg, '(%a*)bye(%a*)') and getDistanceToCreature(cid) < 4 then 	 selfSay('Good bye, ' .. creatureGetName(cid) .. '!') 	 focus = 0 	 talk_start = 0  end	endendfunction onCreatureChangeOutfit(creature)endfunction onThink() end

 

Isto é só um exemplo para mostrar como usar a função!

Alguma dúvida? encontrou algum bug?

deixe aqui sua mensagem!

Atenciosamente,

Colex

Editado Setembro 8 por colex

DeToNaTiOnSD
07 de setembro de 2006 às 12:27

Pô Colex fico show essa função,quando eu acabar de fazer uma action aqui eu vo testa isso com um npc aqui.

Vlw por tudo :D

FireSoulF
07 de setembro de 2006 às 13:20

Nossa cara muito masa isso...

facilita muito faser npc...

vlw msm.

JvchequerJ
07 de setembro de 2006 às 13:39

Putz, muito show esta função.

Vai facilitar muito para os scripters ^^

Parabens.

Atenciosamente, Jv

R@U£R
07 de setembro de 2006 às 19:00

awe manow ficou muito rox

uhaauhhuauha

flwssss

uchihasasukeU
07 de setembro de 2006 às 21:24

@Colez

Fico Show Kra Vlws =D

//Sasuke

07 de setembro de 2006 às 23:43

aew cara

woooooow xDD

ótimo trabalho cara o.O

realmente surpreendente

isso vai ajudar bastante cara :icon1:

vlwzao :icon1:

flws ae

fuiz!!

HaruyaH
08 de setembro de 2006 às 09:57

Carulhos mano,muito legau pode ajudar todos os players facilita a vida de todos adorei ja add no meu ot :bigsmile:o.O:bye: :w4:

godpikkenoG
10 de setembro de 2006 às 10:05

Nenhuma duvida e nenhum bug, NPC CLX esta funcionando a todo vapor no meu ot.. =P (ot para amigos)

TharT
11 de setembro de 2006 às 09:45

Seu sirve para 7.8?

colexC
11 de setembro de 2006 às 10:50

serve em qualquer versão com a função buy()

normalmente os 7.8 tem

3 semanas depois...
God TarzanG
25 de setembro de 2006 às 14:24

Acho elgal..mas creio que o ot fika mto Simples..Qualquer Noob Pode Vim e Comprar itens e aew os leveis Alto Fika meio que Por Fora..sei lá!!

Mas Valeus...rox..testei mas naum vo suar no m eu mas de qualquer forma testei...falows!!

PARABENS

ATT

GOD TARZAN

1 mês depois...
tibiaa4eT
13 de outubro de 2006 às 01:17

da para fazer um função no estilo selltype ?

é só modifica ou tem + coisa

pq seria legal uma selltype

seria posssivel ?

2 semanas depois...
LadyeGataL
20 de outubro de 2006 às 19:47

rox

KenzoK
27 de outubro de 2006 às 19:26

Legal eu sabia mais ta ajudando o pessoal ai ^^

//Kenzo