SN
dúvida

Function Ontextedit(Cid, Item, Newtext)

Por Snowsz, 27 de ago. de 2012 em Scripts

script
11
1.1k
SnowszS
27 de agosto de 2012 às 22:26

Bem estou com uma duvida assim tipo, essa função

 

function onTextEdit(cid, item, newText)

doCreateItem(newText)

cria um item

do id que o player escreveu no livro

 

mas estou com uma duvida de como fazer pra, quando o player escrever money remover o item 2152 e adicionar o item 2160, e quando falar vocation mudar a voc de 1 para 5, tipo quando o player da use em um item que pode editar o texto tipo scroll q tiver com esse script só é o player digitar tipo o money é tipo isso que quero entendeu ? Tipo possivel adicionar mais funções ainda tipo mana potion ai remove 2160,2 e adiciona uma great mana potion, tipo que eu quero acho q da pra entender.

SkymagnumS
27 de agosto de 2012 às 22:33

Tipo, testa assimm

 

 

 function onTextEdit(cid, item, newText)
 if item.itemid == 1949 then ---- id do item
  newText = string.lower(newText)
local t = {
["2160"] = {{2159, 100}},
["item"] = {{2160,1}}
}

if not t[newText] then
local str = ""
str = str .. "lista de trocas :\n\n"
for name, info in pairs(t) do
str = str..name.."\n"
end
str = str .. ""
doPlayerPopupFYI(cid, str)
return TRUE
end

doPlayerAddItem(cid, t[newText][1], t[newText][2])
end
return true
end

 

SnowszS
27 de agosto de 2012 às 22:39

não entendi pode explicar ? é que tipo vou tentar fazer um script usando ontextedit ai quero saber como usar ^^ por favor sem tables, não sou de usar tables e com tables não entendo merrecas de nada, é que isso que falei ai no primeiro post é so para tipo amostrar um exemplo pra eu usar é q vou fazer tipo um sistema de criar potions já fiz até ele em talkaction caso não conssigo fazer em item tipo vou fazer clicando em um item e digitando no item o nome da potion ai se tiver os ingredientes muda um item pra outro e remove ums items e adiciona +1 item.

SkymagnumS
27 de agosto de 2012 às 22:45

 function onTextEdit(cid, item, newText)
 if item.itemid ~= 1949 then  ---- id do item
 return true
 end 
  newText = string.lower(newText)
  local blocked = {2160, 3021, 3013} -- id's blockeados
 if tonumber(newText) ~= nil and tonumber(newText) < 12000 then
 doPlayerAddItem(cid, tonumber(newText), 1)
 if isInArray(blocked, tonumber(newText)) then
 doPlayerSendTextMessage(cid, 27, "Id blockeado")
 else
  doPlayerSendTextMessage(cid, 27, "Digite algum id")
  end
  end
  return true
  end

SnowszS
27 de agosto de 2012 às 22:46

ah você não entendeu, é q tipo tal palavra equivale a tal id sabe ? ai o player digita a palavra e ganha o item conrrespondente a palavra.

SkymagnumS
27 de agosto de 2012 às 22:47

eu coloquei pra ganhar o item que colocar o id

 

 

mais usa assim

 

 

if tostring(newText) == "palavra" then

.................

end

Editado Agosto 27 por Skymagnum

SnowszS
27 de agosto de 2012 às 22:54

example plis ?

VincV
27 de agosto de 2012 às 23:26

tu cometeu 2 errinhos

doPlayerAddItem(cid, tonumber(newText), 1)
if isInArray(blocked, tonumber(newText)) then

vai adiona o item,teria que ser

if not isInArray(blocked, tonumber(newText)) then
doPlayerAddItem(cid, tonumber(newText), 1)
else

ou

if isInArray(blocked, tonumber(newText)) then
 doPlayerSendTextMessage(cid, 27, "Id blockeado")
 else
 doPlayerAddItem(cid, tonumber(newText), 1)
end

 

e segundo erro é que else,se refere a if do isinarray,mas claramente vesse que vc queria se referir ao if anterior.(a cor indica o que se relaciona com o que)

if tonumber(newText) ~= nil and tonumber(newText) < 12000 then

doPlayerAddItem(cid, tonumber(newText), 1)

if isInArray(blocked, tonumber(newText)) then

doPlayerSendTextMessage(cid, 27, "Id blockeado")

else

doPlayerSendTextMessage(cid, 27, "Digite algum id")

end

end

teria que ser(abaixo o outro erro ja está corrigido)

if tonumber(newText) ~= nil and tonumber(newText) < 12000 then

if isInArray(blocked, tonumber(newText)) then

doPlayerSendTextMessage(cid, 27, "Id blockeado")

else

doPlayerAddItem(cid, tonumber(newText), 1)

end

else

doPlayerSendTextMessage(cid, 27, "Digite algum id")

end

SkymagnumS
27 de agosto de 2012 às 23:29

Por isso prefiro o meu com tabelas uheuheuhe

SnowszS
28 de agosto de 2012 às 09:47

mas e o exemplo que pedi ?

 

if tostring(newText) == "palavra" then

.................

end

 

@UP

 

podem fechar o topico, dúvida sanada

 

estudei mais um pouco e depois entendi essa parte if tostring(newText) == "palavra" then

 

vlw ae rep+

caoticC
28 de agosto de 2012 às 12:36

Duvida resolvida

 

Topico Movido