GO
pedido

Alavanca De Sumonar Monstro Com Custo

Por godpank, 24 de set. de 2012 em Scripts

servidor 7.6
script
34
16.7k
brun123B
25 de setembro de 2012 às 13:24

e o que acontece quando você dá use?

godpankG
25 de setembro de 2012 às 13:54

Dá a mensagem: "you can not use this object".

brun123B
25 de setembro de 2012 às 13:56

e nenhum erro no console? nem na hora de carregar o server?

godpankG
25 de setembro de 2012 às 14:11

No console dá a mensagem: "Missing Script Tag".

brun123B
25 de setembro de 2012 às 14:27

Usa a script que você fez então, mas usando isso aqui:

 

function onUse(cid, item, frompos, item2, topos)
if item.uid == 3334 then
   doPlayerSendTextMessage(cid,22,"teste.")	   
   local creature = doSummonCreature("demon",topos)
   if not isCreature(creature) then return true end
   if not doPlayerRemoveMoney(cid, 500) then
    doRemoveCreature(creature)
    return true
   end
   doSendMagicEffect(getThingPos(creature),13)
else
   doPlayerSendCancel(cid,"Você está sem gps.")
end
return 1
end

 

desculpe amigo, mas não faz sentido algum aparecer you cannot use this object se a script foi carregada normal... esse missing script tag deve ser de outra coisa no seu server

se deu you cannot use this object é porque não está executando o script, seja por ele não ter sido carregado ou você não ter colocado o action id certo

eu peguei o seu script de "teste" e só coloquei pra não remover dinheiro caso o player nã oconsiga sumonar o monstro, e esse usa unique id, e não action id, que é onde acho que você está errando

 

desculpe-me se estiver errado

godpankG
26 de setembro de 2012 às 08:32

Brun123, testei novamente o seu primeiro script, refiz tudo cuidadosamente e deram os mesmos erros mencionados anteriormente.

 

Com este script "teste" que você alterou para não remover dinheiro quando não sumonar, está sumonando a cada clicada na alavanca, mesmo sem dinheiro, ou seja, não está cobrando nada para sumonar. Fiz um teste sem BP para ter certeza, sumonou os monstros sem gps.

 

Brun123 e Skyligh, obrigado pelo empenho. Estou precisando ainda desta action, se mais alguém souber como resolver fico muito agradecido. Pensei que era algo mais simples, mas acho que não. Obrigado.

Editado Setembro 26 por GodPank

brun123B
26 de setembro de 2012 às 10:56

Olha cara, então vamos fazer uma coisinha aqui só pra tentar descobrir onde é o erro...

 

Use a script assim:

 

function onUse(cid, item, frompos, item2, topos)
if item.uid == 3334 then     
   local creature = doSummonCreature("demon", topos)
   print("O UID do monstro sumonado é "..creature..".")
   if not isCreature(creature) then print("O monstro não pode ser sumonado - 'not isCreature' retornou true.") return true end
   if not doPlayerRemoveMoney(cid, 500) then
           print("Not doPlayerRemoveMoney retornou true.")
           doRemoveCreature(creature)
           return true
   end
   doSendMagicEffect(getThingPos(creature), 13)
else
   doPlayerSendCancel(cid,"Você está sem gps.")
end
return 1
end

 

Isso vai mostrar algumas mensagens no console do seu server, quero que você dê use 1 única vez na alavanca e mostre todas as mensagens que apareceram no console

godpankG
26 de setembro de 2012 às 11:30

Olá Brun123! Que bom que você retornou.

 

Fiz tudo como você falou, na hora de rodar o servidor passa as actions sem mensagem de erro, está sumonando o demon, mas não desconta nada do player. Quando cliquei uma vez somente na alavanca, a mensagem do console foi esta: O UID do monstro sumonado Ú 2. Bem assim mesmo. Não sei se é permitido postar screens, se puder favor avisar que te mostro.

Obg.

brun123B
26 de setembro de 2012 às 11:34

pode postar sim, e posta aí se puder

godpankG
26 de setembro de 2012 às 11:37

A imagem:

 

image1ws.jpg

brun123B
26 de setembro de 2012 às 11:48

servidor 7.6 é complicado, em servers mais recents as funções que criam monstros retornam o uid dele, bom amigo, como eu não sei se as funções são muito ou pouco diferenets dos servers mais atuais, eu vou precisar dar uma olhada no código fonte do seu server pra pensar em um jeito de fazer isso, mais especificamente o arquivo luascript.cpp...

 

se você não tem o código fonte do seu server, pelo menos me diz em que distro ele é baseado, se é the forgotten server ou outro, enquanto isso, faz uma coisa pra mim:

 

enche de stone (uma que não dê pra criar monstro em cima) e cerca a alavanca todinha, fazendo com que seja impossível criar o monstro e dê use na alavanca novamente pra ver o resultado, poste aqui depois o que apareceu no console

godpankG
26 de setembro de 2012 às 12:04

Infelizmente não tenho o código, mas o server é o yurots 0.94d. Ao invés de pedras, coloquei um piso que não é possível andar nele. Fica como se fosse a pedra.

 

Imagem:

 

image2ha.jpg

 

Brun123, se não for possível desta forma, seria possível assim: Quando puxar a alavanca, sumona o monstro e retira uma scarab coin do player ? Sem scarab, sem monstro.

SkyLighS
26 de setembro de 2012 às 17:36

Tente Com este

 

function onUse(cid, item, frompos, item2, topos)
local name = "Rat" -- Nick Do Monster
local money = 1000 -- Quantos Gp's Ira Remover

if item.itemid == 4852 then -- id da lavaca
elseif doPlayerRemoveMoney(cid,money) then
doPlayerSendCancel(cid,"Sorry you do not have enough money.")
return true
elseif doSummonCreature(name, getThingPos) then
doPlayerSendTextMessage(cid, 22, "Monster summoned Successfully")
return true
end
end

brun123B
26 de setembro de 2012 às 18:27

Bom amigo, essa é a minha última tentativa...

 

eu procurei saber um pouco mais de servidores 7.6 e não tinha true ou false, era só 0 ou 1, e qualquer nº em lua retorna true, talvez assim funcione:

 

function onUse(cid, item, frompos, item2, topos)
if item.uid == 3334 then	    
   local creature = doSummonCreature("demon", topos)
   if creature == 0 then
    doPlayerSendCancel(cid, "Não há espaço para sumonar o monstro.")
   return 1 end
   if doPlayerRemoveMoney(cid, 500) ~= 1 then
    doPlayerSendCancel(cid, "Você está sem gps.")
    doRemoveCreature(creature)
   return 1
   end
   doSendMagicEffect(getThingPos(creature), 13)
end
return 1
end

 

não sei se existe a função doRemoveCreature no seu server...

talvez funcione, agora olha só, sempre que não der pra sumonar o monstro, vai aparecer essa mensagem no console avisando que o monstro não pôde ser criado

Editado Setembro 26 por brun123

godpankG
26 de setembro de 2012 às 18:41

Tente Com este

 

function onUse(cid, item, frompos, item2, topos)
local name = "Rat" -- Nick Do Monster
local money = 1000 -- Quantos Gp's Ira Remover

if item.itemid == 4852 then -- id da lavaca
elseif doPlayerRemoveMoney(cid,money) then
doPlayerSendCancel(cid,"Sorry you do not have enough money.")
return true
elseif doSummonCreature(name, getThingPos) then
doPlayerSendTextMessage(cid, 22, "Monster summoned Successfully")
return true
end
end

 

Skyligh, o script passa sem mensagem de erro no console, mas no jogo não sumona e fica descontando gps do player =/