Ir para conteúdo
  • 0

Script de alavanca onde apareça monstro e gaste dinheiro


markim1986

Pergunta

Nome do Script: Script de alavanca onde apareça monstro e gaste dinheiro

Tipo do Script: Nao sei!

Versão Utilizada: 8.60

Servidor Utilizado: TheLostServer

Nível de Experiência: Complicado.

Informações Extras: --

 

Ola, gostaria de um script aonde o player puxara uma alvanca e ao seu redor (configuravel) aparecera "X" monstros (configuravel) e o mesmo gaste "X" de dinheiro para puchar essa alavanca, ou seja, um respow por alavanca cobrando uma taxa para ser puxada!

 

Agradeço desde ja

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

data/actions/scripts/summonMonster.lua:

local config = {
  money_requires = 1,
  monsters = {"Rat", "Cave Rat"}, -- Pode colocar mais monstros, o respawn vai ser aleatório
}
function onUse(cid, item)
if doPlayerRemoveMoney(cid, config.money_requires) then
  local monster = doCreateMonster(config.monsters[math.randon(#config.monsters)], getClosestFreeTile(cid, getThingPos(cid)))
  doSendMagicEffect(getThingPos(monster), 21)
  doTransformItem(item.uid, item.itemid+1)
  addEvent(doTransformItem, 2000, item.uid, item.itemid-1)
else
   doPlayerSendTextMessage(cid, 27, "Sorry, you need a "..config.money_requires.." for summon monster.")
   return true
end
end

 

tag:

<action itemid="id da alavanca" event="script" value="summonMonster.lua"/>

Link para o comentário
Compartilhar em outros sites

  • 0

data/actions/scripts/summonMonster.lua:

local config = {
  money_requires = 1,
  monsters = {"Rat", "Cave Rat"}, -- Pode colocar mais monstros, o respawn vai ser aleatório
}
function onUse(cid, item)
if doPlayerRemoveMoney(cid, config.money_requires) then
  local monster = doCreateMonster(config.monsters[math.randon(#config.monsters)], getClosestFreeTile(cid, getThingPos(cid)))
  doSendMagicEffect(getThingPos(monster), 21)
  doTransformItem(item.uid, item.itemid+1)
  addEvent(doTransformItem, 2000, item.uid, item.itemid-1)
else
doPlayerSendTextMessage(cid, 27, "Sorry, you need a "..config.money_requires.." for summon monster.")
return true
end
end

 

tag:

<action itemid="id da alavanca" event="script" value="summonMonster.lua"/>

 

Opa rapaz, entao da esse erro:

[16/01/2013 22:05:41] [Error - Action Interface]
[16/01/2013 22:05:41] data/actions/scripts/summonMonster.lua:onUse
[16/01/2013 22:05:41] Description:
[16/01/2013 22:05:41] data/actions/scripts/summonMonster.lua:7: attempt to call field 'randon' (a nil value)
[16/01/2013 22:05:41] stack traceback:
[16/01/2013 22:05:41]  data/actions/scripts/summonMonster.lua:7: in function <data/actions/scripts/summonMonster.lua:5>

 

Teria como fazer por uniqueid?

pq quero criar varios respows e como o script diz que o respow vai ser aleatorio eu quero colocar taxativo, ou seja quando o pião clicar vai vir 5 demons (configuravel) e quando ele matar os demons nao vai mais aparecer, somente se ele clickar dinovo na alavanca e gastar mais x de money

Link para o comentário
Compartilhar em outros sites

  • 0

local config = {
	  money_requires = 1,
	  monsters = {["Rat"] = 3, ["Tiger"] = 2}, -- Nomde do montros e quantidade
	  alavancas = {[1945] = 1946, [1946] = 1945},
}
function onUse(cid, item)
local alavanca = config.alavancas[item.itemid]
if alavanca ~= nil then doTransformItem(item.uid,alavanca[1]) end
if doPlayerRemoveMoney(cid, config.money_requires) then
for k, v in pairs(config.monsters) do
for i=1, v do
  local monster = doSummonCreature(k, getClosestFreeTile(cid, getThingPos(cid)))			
  doSendMagicEffect(getThingPos(monster), 10)
end
end
else
	doPlayerSendTextMessage(cid, 27, "Sorry, you need a "..config.money_requires.." for summon monster.")
	return true
end
end

 

 

tag:

<action actionid="2032" event="script" value="summonMonster.lua"/>

Botei por actionid mesmo. ^^

Editado por SmiX
Link para o comentário
Compartilhar em outros sites

  • 0

local config = {
	  money_requires = 1,
	  monsters = {["Rat"] = 3, ["Tiger"] = 2}, -- Nomde do montros e quantidade
	  alavancas = {[1945] = 1946, [1946] = 1945},
}
function onUse(cid, item)
local alavanca = config.alavancas[item.itemid]
if alavanca ~= nil then doTransformItem(item.uid,alavanca[1]) end
if doPlayerRemoveMoney(cid, config.money_requires) then
for k, v in pairs(config.monsters) do
for i=1, v do
  local monster = doSummonCreature(k, getClosestFreeTile(cid, getThingPos(cid)))			
  doSendMagicEffect(getThingPos(monster), 10)
end
end
else
	doPlayerSendTextMessage(cid, 27, "Sorry, you need a "..config.money_requires.." for summon monster.")
	return true
end
end

 

 

tag:

<action actionid="2032" event="script" value="summonMonster.lua"/>

Botei por actionid mesmo. ^^

 

 

Brother, voces sao muito foda ;)

 

Entao cara o que acontece é o seguinte quando voce aperta as alavancas os bixus aparecem em sua volta, logo so podem aparecer 8 bixos, mais que isso da essse erro:

[16/01/2013 23:34:23] [Error - Action Interface]
[16/01/2013 23:34:23] data/actions/scripts/summonMonster.lua:onUse
[16/01/2013 23:34:23] Description:
[16/01/2013 23:34:23] (luaGetThingPosition) Thing not found

 

mas isso nao é um problema até pq eu nao vou usar mais de 3 bixos nessas alavancas, seria bom se podese concertar, mas se nao der nao tem problema nao.

 

Outra duvida é o seguinte teria como colocar os bixus pra nascerem num lugar expecifico "XYZ" ?

 

Eu coloquei assim no script:

			  monsters = {["spider"] = 1, ["cat"] = 1}, -- Nomde do montros e quantidade
			  alavancas = {[2032] = 2033, [2033] = 2032},

 

Aki nessa linha:

				  alavancas = {[2032] = 2033, [2033] = 2032},

 

Como é pra ser configurado ?

o actionID da alavanca é 2032.

 

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

local config = {
			  money_requires = 1,
			  monsters = {["Rat"] = 3, ["Tiger"] = 2}, -- Nomde do montros e quantidade
			  alavancas = {[1945] = 1946, [1946] = 1945},
			  pos = {{x=990,y=1048,z=7}, {x=995,y=1049,z=7}},
}
function onUse(cid, item)
local alavanca = config.alavancas[item.itemid]
if alavanca ~= nil then doTransformItem(item.uid,alavanca[1]) end
if doPlayerRemoveMoney(cid, config.money_requires) then
for k, v in pairs(config.monsters) do
for i=1, v do
  local monster = doSummonCreature(k, config.pos[1])					  
  doSendMagicEffect(getThingPos(monster), 10)
end
end
else
		    doPlayerSendTextMessage(cid, 27, "Sorry, you need a "..config.money_requires.." for summon monster.")
		    return true
end
end

 

Pronto, agora você só precisa editar as posições. OBS: sempre deixe duas posições na tabela "pos".

Link para o comentário
Compartilhar em outros sites

  • 0

local config = {
			  money_requires = 1,
			  monsters = {["Rat"] = 3, ["Tiger"] = 2}, -- Nomde do montros e quantidade
			  alavancas = {[1945] = 1946, [1946] = 1945},
			  pos = {{x=990,y=1048,z=7}, {x=995,y=1049,z=7}},
}
function onUse(cid, item)
local alavanca = config.alavancas[item.itemid]
if alavanca ~= nil then doTransformItem(item.uid,alavanca[1]) end
if doPlayerRemoveMoney(cid, config.money_requires) then
for k, v in pairs(config.monsters) do
for i=1, v do
  local monster = doSummonCreature(k, config.pos[1])					  
  doSendMagicEffect(getThingPos(monster), 10)
end
end
else
			doPlayerSendTextMessage(cid, 27, "Sorry, you need a "..config.money_requires.." for summon monster.")
			return true
end
end

 

Pronto, agora você só precisa editar as posições. OBS: sempre deixe duas posições na tabela "pos".

 

Cara ainda ta dando erro olha so:

[17/01/2013 00:37:02] [Error - Action Interface]
[17/01/2013 00:37:02] data/actions/scripts/summonMonster.lua:onUse
[17/01/2013 00:37:02] Description:
[17/01/2013 00:37:02] (luaGetThingPosition) Thing not found

 

Eu coloquei assim na action.xml

<action actionid="2032" event="script" value="summonMonster.lua"/>
<action actionid="2033" event="script" value="summonMonster.lua"/>

 

e assim no script:

 

^local config = {
							  money_requires = 1,
							  monsters = {["Rat"] = 1, ["Tiger"] = 1}, -- Nomde do montros e quantidade
							  alavancas = {[2032] = 2033, [2033] = 2032},
							  pos = {{x=1623,y=1075,z=7}, {x=1624,y=1075,z=7}},
}
function onUse(cid, item)
local alavanca = config.alavancas[item.itemid]
if alavanca ~= nil then doTransformItem(item.uid,alavanca[1]) end
if doPlayerRemoveMoney(cid, config.money_requires) then
for k, v in pairs(config.monsters) do
for i=1, v do
  local monster = doSummonCreature(k, config.pos[1])									
  doSendMagicEffect(getThingPos(monster), 10)
end
end
else
					    doPlayerSendTextMessage(cid, 27, "Sorry, you need a "..config.money_requires.." for summon monster.")
					    return true
end
end

 

E a alavanca esta com actionID no map editor como "2032" e UnicID "0"

 

Aonde estou errando ?

Link para o comentário
Compartilhar em outros sites

  • 0

local config = {
							  money_requires = 1,
							  monsters = {["Rat"] = 3, ["Tiger"] = 2}, -- Nomde do montros e quantidade
							  alavancas = {[1945] = 1946, [1946] = 1945}, -- Id das alavancas
							  pos = {{x=990,y=1048,z=7}, {x=995,y=1049,z=7}},
}
function onUse(cid, item)
local alavanca = config.alavancas[item.itemid]
if alavanca ~= nil then doTransformItem(item.uid,alavanca[1]) end
if doPlayerRemoveMoney(cid, config.money_requires) then
for k, v in pairs(config.monsters) do
for i=1, v do
  local monster = doSummonCreature(k, config.pos[1])									
  doSendMagicEffect(getThingPos(monster), 10)
end
end
else
						    doPlayerSendTextMessage(cid, 27, "Sorry, you need a "..config.money_requires.." for summon monster.")
						    return true
end
end

Nãp precisa colocar o "uniqueid" e nem a "actionid" no script, só na tag. Em alavancas são os ids das alavancas a serem puxadas.

Link para o comentário
Compartilhar em outros sites

  • 0

local config = {
							  money_requires = 1,
							  monsters = {["Rat"] = 3, ["Tiger"] = 2}, -- Nomde do montros e quantidade
							  alavancas = {[1945] = 1946, [1946] = 1945}, -- Id das alavancas
							  pos = {{x=990,y=1048,z=7}, {x=995,y=1049,z=7}},
}
function onUse(cid, item)
local alavanca = config.alavancas[item.itemid]
if alavanca ~= nil then doTransformItem(item.uid,alavanca[1]) end
if doPlayerRemoveMoney(cid, config.money_requires) then
for k, v in pairs(config.monsters) do
for i=1, v do
  local monster = doSummonCreature(k, config.pos[1])									
  doSendMagicEffect(getThingPos(monster), 10)
end
end
else
							doPlayerSendTextMessage(cid, 27, "Sorry, you need a "..config.money_requires.." for summon monster.")
							return true
end
end

Nãp precisa colocar o "uniqueid" e nem a "actionid" no script, só na tag. Em alavancas são os ids das alavancas a serem puxadas.

 

Nao mudei o actionid do script como vc disse e deixei somente essa linha no xml

<action actionid="2032" event="script" value="summonMonster.lua"/>

 

Script:

local config = {
															  money_requires = 1,
															  monsters = {["Rat"] = 1, ["Tiger"] = 1}, -- Nomde do montros e quantidade
															  alavancas = {[1945] = 1946, [1946] = 1945}, -- Id das alavancas
															  pos = {{x=1623,y=1075,z=7}, {x=1624,y=1075,z=7}},
}
function onUse(cid, item)
local alavanca = config.alavancas[item.itemid]
if alavanca ~= nil then doTransformItem(item.uid,alavanca[1]) end
if doPlayerRemoveMoney(cid, config.money_requires) then
for k, v in pairs(config.monsters) do
for i=1, v do
  local monster = doSummonCreature(k, config.pos[1])																  
  doSendMagicEffect(getThingPos(monster), 10)
end
end
else
													    doPlayerSendTextMessage(cid, 27, "Sorry, you need a "..config.money_requires.." for summon monster.")
													    return true
end
end

 

Da esse erro:

[17/01/2013 11:23:08] [Error - Action Interface]
[17/01/2013 11:23:08] data/actions/scripts/summonMonster.lua:onUse
[17/01/2013 11:23:08] Description:
[17/01/2013 11:23:08] data/actions/scripts/summonMonster.lua:9: attempt to index local 'alavanca' (a number value)
[17/01/2013 11:23:08] stack traceback:
[17/01/2013 11:23:08]  data/actions/scripts/summonMonster.lua:9: in function <data/actions/scripts/summonMonster.lua:7>

 

Se eu mudar o action id do script para:

alavancas = {[2032] = 2033, [2033] = 2032}, -- Id das alavancas

 

Ate funciona mas da erro quando vc flooda o click na alavanca!

o erro acredito que esta acontecendo com um montro tenta nascer um em cima do outro.

 

Segue o erro quando eu floodo na alavanca com o action ID alterado no script!

[17/01/2013 11:27:02] [Error - Action Interface]
[17/01/2013 11:27:02] data/actions/scripts/summonMonster.lua:onUse
[17/01/2013 11:27:02] Description:
[17/01/2013 11:27:02] (luaGetThingPosition) Thing not found

Link para o comentário
Compartilhar em outros sites

  • 0

Você está usando estes itens como alavanca?

 

alavancas = {[1945] = 1946, [1946] = 1945}

Se não, use eles e me diga o que acontece.

 

Entao eu estou usando o o item 1945, ja o o item 1946 nao sei o que é, so tem uma alavanca.

 

com esse linha:

[code]alavancas = {[1945] = 1946, [1946] = 1945}

[/code]

o script não funciona, somente aparece os monstros se eu colocar no lugar do ID da alavanca colocar essa linha

alavancas = {[2032] = 2033, [2033] = 2032},

Link para o comentário
Compartilhar em outros sites

  • 0

local config = {
money_requires = 1,
monsters = {["Rat"] = 3, ["Tiger"] = 2}, -- Nomde do montros e quantidade
pos = {{x=990,y=1048,z=7}, {x=995,y=1049,z=7}},
}
function onUse(cid, item)
if doPlayerRemoveMoney(cid, config.money_requires) then
for k, v in pairs(config.monsters) do
for i=1, v do
  local monster = doSummonCreature(k, config.pos[1])																  
  doSendMagicEffect(getThingPos(monster), 10)
end
end
else
doPlayerSendTextMessage(cid, 27, "Sorry, you need a "..config.money_requires.." for summon monster.")
return true
end
end

Deixe aquela tag que você colocou, e não precisa mais colocar nenhum id no scirpt, só mudar as posições e os monstros a serem sumonados.

Link para o comentário
Compartilhar em outros sites

  • 0

local config = {
money_requires = 1,
monsters = {["Rat"] = 3, ["Tiger"] = 2}, -- Nomde do montros e quantidade
pos = {{x=990,y=1048,z=7}, {x=995,y=1049,z=7}},
}
function onUse(cid, item)
if doPlayerRemoveMoney(cid, config.money_requires) then
for k, v in pairs(config.monsters) do
for i=1, v do
  local monster = doSummonCreature(k, config.pos[1])																  
  doSendMagicEffect(getThingPos(monster), 10)
end
end
else
doPlayerSendTextMessage(cid, 27, "Sorry, you need a "..config.money_requires.." for summon monster.")
return true
end
end

Deixe aquela tag que você colocou, e não precisa mais colocar nenhum id no scirpt, só mudar as posições e os monstros a serem sumonados.

 

Blz cara agora o lance é o seguinte, se a pessoa fica floodando na alavanca da esse erro:

[08/01/2013 14:43:13] [Error - Action Interface]
[08/01/2013 14:43:13] data/actions/scripts/a.lua:onUse
[08/01/2013 14:43:13] Description:
[08/01/2013 14:43:13] (luaGetThingPosition) Thing not found

 

Acredito que seja pq o monstro nao tem lugar para nascer ai fica nascendo um em cima do outro, por isso da esse erro!

 

Se possivel voce puder colocar um tempo para que o player nao possa fica floodando a alavanca por exemplo:

Quando o player clickar rapido na alavanca vir a mensagem "voce nao pode floodar", aonde somente de 2 em 2 segundos a mesma pode ser puxada!

Link para o comentário
Compartilhar em outros sites

  • 0

local config = {
money_requires = 1,
monsters = {["Rat"] = 3, ["Tiger"] = 2}, -- Nomde do montros e quantidade
pos = {{x=990,y=1048,z=7}, {x=995,y=1049,z=7}},
}
function onUse(cid, item)
if exhaustion.get(cid, 1734) > 0 then
doPlayerSendCancel(cid, "Sorry, you need waint a 5 minuts.")
return true
end
if doPlayerRemoveMoney(cid, config.money_requires) then
for k, v in pairs(config.monsters) do
for i=1, v do
  local monster = doSummonCreature(k, config.pos[1])				 
  doSendMagicEffect(getThingPos(monster), 10)
  exhaustion.set(cid, 1734, 5)
end
end
else
doPlayerSendTextMessage(cid, 27, "Sorry, you need a "..config.money_requires.." for summon monster.")
return true
end
end

 

 

Agora tem que espera 5 segundos pra poder usar denovo..... ta foda esse pedido em ¬¬'

Link para o comentário
Compartilhar em outros sites

  • 0

local config = {
money_requires = 1,
monsters = {["Rat"] = 3, ["Tiger"] = 2}, -- Nomde do montros e quantidade
pos = {{x=990,y=1048,z=7}, {x=995,y=1049,z=7}},
}
function onUse(cid, item)
if exhaustion.get(cid, 1734) > 0 then
doPlayerSendCancel(cid, "Sorry, you need waint a 5 minuts.")
return true
end
if doPlayerRemoveMoney(cid, config.money_requires) then
for k, v in pairs(config.monsters) do
for i=1, v do
  local monster = doSummonCreature(k, config.pos[1])				
  doSendMagicEffect(getThingPos(monster), 10)
  exhaustion.set(cid, 1734, 5)
end
end
else
doPlayerSendTextMessage(cid, 27, "Sorry, you need a "..config.money_requires.." for summon monster.")
return true
end
end

 

 

Agora tem que espera 5 segundos pra poder usar denovo..... ta foda esse pedido em ¬¬'

 

 

KKKKKKKKKKKKKKKKKK

Verdade cara, olha ta dando esse erro agora ;)

 

[08/01/2013 16:30:43] [Error - Action Interface]
[08/01/2013 16:30:43] data/actions/scripts/a.lua:onUse
[08/01/2013 16:30:43] Description:
[08/01/2013 16:30:43] data/actions/scripts/a.lua:7: attempt to compare number with boolean
[08/01/2013 16:30:43] stack traceback:
[08/01/2013 16:30:43]  data/actions/scripts/a.lua:7: in function <data/actions/scripts/a.lua:6>

 

Vlw pelo seu tempo

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...