Como poner Bomberman system 100% explicado. by: [Brakmars]
PokemonHispano 3.0 :: :: Ayuda
Página 1 de 1.
Como poner Bomberman system 100% explicado. by: [Brakmars]
Me di cuenta que todos los bomberman que salen posteados no se explican
asi que decidi ayudarlos a ponerlo en su ot.
En este post dejo un
link con los archivos.lua listos, tambien puse un mapa e instrucciones.
Todo
esta completamente explicado al 100% incluso con imagenes.
Para
ponerlo en su ot deben borrar todo lo que salga asi ( ---aqui es la
explicacion )
espero agradescan con (no creo que se pueda dar +rep xDD) por el el esfuerzo que
ise al explicar hasta con imagenes
Link de descarga de mapa +
instrucciones y archivos
esta en megaupload
Archivos
scan
scan
Imagenes de
explicacion
ZONA DE JUEGO
https://2img.net/r/ihimg/photo/my-images/195/zonajuego.jpg/
TEMPLE
https://2img.net/r/ihimg/photo/my-images/19/templez.jpg/
Bueno empesamos
van a data/talkactions/scripts copian un archivo y
le ponen bomb.lua
Luego van a data/actions/scripts copian un archivo y le ponen lever.lua
Despues van a data/movements/scripts y copian un archivo y le ponen
bombstep.lua
data/movements/scripts y copian un archivo y le ponen bombtiles.lua
data/movements/scripts y copian un archivo y le ponen powerups.lua
Despues que terminan con eso van a data/items/items.xml y modifican esto
att: by:Brakmars
asi que decidi ayudarlos a ponerlo en su ot.
En este post dejo un
link con los archivos.lua listos, tambien puse un mapa e instrucciones.
Todo
esta completamente explicado al 100% incluso con imagenes.
Para
ponerlo en su ot deben borrar todo lo que salga asi ( ---aqui es la
explicacion )
espero agradescan con (no creo que se pueda dar +rep xDD) por el el esfuerzo que
ise al explicar hasta con imagenes
Link de descarga de mapa +
instrucciones y archivos
esta en megaupload
Archivos
scan
scan
Imagenes de
explicacion
ZONA DE JUEGO
https://2img.net/r/ihimg/photo/my-images/195/zonajuego.jpg/
TEMPLE
https://2img.net/r/ihimg/photo/my-images/19/templez.jpg/
Bueno empesamos
van a data/talkactions/scripts copian un archivo y
le ponen bomb.lua
- Spoiler:
- function getPlayersInRange(position, radiusx, radiusy)
local
creaturesList = {}
for x = -radiusx, radiusx do
for y =
-radiusy, radiusy do
if not (x == 0 and y == 0) then
local
creature = getTopCreature({x = position.x+x, y = position.y+y, z =
position.z})
if creature.type == 1 then
table.insert(creaturesList, creature.uid)
end
end
end
end
local creature = getTopCreature(position)
if
creature.type == 1 then
if not(table.find(creaturesList,
creature.uid)) then
table.insert(creaturesList, creature.uid)
end
end
return creaturesList
end
function
isPositionInArray(haystack, needle)
for i = 1, #haystack do
if
haystack[i].x == needle.x and haystack[i].y == needle.y and
haystack[i].z == needle.z then
return true
end
end
return false
end
local t = {
from = {x=490, y=495, z=9},
--- izquierda arriba de la zona de juego
to = {x=504, y=505, z=9},
---- derecha abajo de la zona de juego
storage = {
placed =
10001,
max = 10002,
radius = 10003
},
delay = 3000,
bombID = 10570,
effect = CONST_ME_FIREAREA,
blockID = 9468,
text = "BOOM!",
temple = {x=498, y=541, z=9}, --- aqui aparecen
cuando pierden
exceptions = {
{x=490, y=495, z=9}, ---
izquierda arriba de la zona de juego
{x=491, y=495, z=9}, --- zona
vacia 1 >
{x=490, y=496, z=9}, --- zona vacia 2 v
{x=503, y=495, z=9}, --- derecha arriba de la zona de juego
{x=504, y=495, z=9}, --- zona vacia 3 *
{x=504, y=496, z=9}, ---
zona vacia 4 v
{x=490, y=505, z=9}, --- izquierda abajo de la
zona de juego
{x=491, y=505, z=9}, --- zona vacia 5 >
{x=490, y=504, z=9}, --- zona vacia 6 ^
{x=503, y=505, z=9},
--- derecha abajo de la zona de juego
{x=504, y=505, z=9}, ---
zona vacia 7 *
{x=504, y=504, z=9} --- zona vacia 8 ^
}
}
function
reset()
local dummy = doCreateItem(10570, 1, {x=486,y=498,z=9}) ---
esta zona de aqui
for x = t.from.x, t.to.x do
for y =
t.from.y, t.to.y do
local pos = {x=x,y=y,z=t.from.z}
local
i1, i2, i3 = getTileItemById(pos, 8304).uid, getTileItemById(pos,
8306).uid, getTileItemById(pos, 8310).uid
if i1 > 0 then
doRemoveItem(i1)
end
if i2 > 0 then
doRemoveItem(i2)
end
if i3 > 0 then
doRemoveItem(i3)
end
if queryTileAddThing(dummy, pos, 4) ==
RETURNVALUE_NOERROR and not isPositionInArray(t.exceptions, pos) then
doCreateItem(t.blockID, 1, pos)
end
end
end
doRemoveItem(dummy)
end
local function boom(pos, cid)
local v = getTileItemById(pos, t.bombID).uid
if isPlayer(cid) and
isInRange(getThingPos(cid), t.from, t.to) then
setPlayerStorageValue(cid, t.storage.placed, getPlayerStorageValue(cid,
t.storage.placed) - 1)
doCreatureSay(cid, t.text,
TALKTYPE_ORANGE_2, false, nil, pos)
doSendMagicEffect(pos,
t.effect)
local c = getTopCreature(pos).uid
if isPlayer(c) and
isInRange(getThingPos(c), t.from, t.to) then
doSendMagicEffect(pos, CONST_ME_GIFT_WRAPS)
doTeleportThing(c,
t.temple)
doSendMagicEffect(t.temple, CONST_ME_MORTAREA)
local n1, n2 = getPlayerName(c), getPlayerName(cid)
doBroadcastMessage(n1==n2 and n1 .. " killed " .. (getPlayerSex(c) == 0
and "her" or "him") .. "self![Bomberman]" or n1 .. " was killed by " ..
n2 .. "![Bomberman]", MESSAGE_STATUS_WARNING)
local a =
getPlayersInRange({x=497, y=500, z=9}, 7, 5) --- CENTRO ZONA DE JUEGO
if #a < 2 then
doBroadcastMessage(getPlayerName(a[1]) .. "
has won the match![Bomberman]", MESSAGE_STATUS_WARNING)
doTeleportThing(a[1], t.temple)
doSendMagicEffect(t.temple,
CONST_ME_FIREWORK_RED)
reset()
reset()
end
else
local b = getTileItemById(pos, t.blockID).uid
if b > 0 then
doSendMagicEffect(pos, CONST_ME_BLOCKHIT)
doRemoveItem(b)
local r = math.random(10)
if r < 4 then
doCreateItem(r==1 and 8304 or r==2 and 8306 or r==3 and 8310, 1, _pos)
end
end
end
local N, E, W, S, l = 1, 1, 1, 1,
getPlayerStorageValue(cid, t.storage.radius)
function loopDir(dir)
local _pos = {x=pos.x+(dir=="E" and E or dir=="W" and -W or 0),
y=pos.y+(dir=="N" and -N or dir=="S" and S or 0), z=pos.z}
if
queryTileAddThing(v, _pos, 4) == RETURNVALUE_NOERROR or
getTileItemById(_pos, t.blockID).uid > 0 then
doSendMagicEffect(_pos, t.effect)
local c =
getTopCreature(_pos).uid
if isPlayer(c) and
isInRange(getThingPos(c), t.from, t.to) then
doSendMagicEffect(_pos, CONST_ME_GIFT_WRAPS)
doTeleportThing(c,
t.temple)
doSendMagicEffect(t.temple, CONST_ME_MORTAREA)
local n1, n2 = getPlayerName(c), getPlayerName(cid)
doBroadcastMessage(n1==n2 and n1 .. " killed " .. (getPlayerSex(c) == 0
and "her" or "him") .. "self![Bomberman]" or n1 .. " was killed by " ..
n2 .. "![Bomberman]", MESSAGE_STATUS_WARNING)
local a =
getPlayersInRange({x=497, y=500, z=9}, 7, 5) --- CENTRO ZONA DE JUEGO
if #a < 2 then
doBroadcastMessage(getPlayerName(a[1])
.. " has won the match![Bomberman]", MESSAGE_STATUS_WARNING)
doTeleportThing(a[1], t.temple)
doSendMagicEffect(t.temple,
CONST_ME_FIREWORK_RED)
reset()
reset()
return
"endgame"
end
else
local b =
getTileItemById(_pos, t.blockID).uid
if b > 0 then
doSendMagicEffect(_pos, CONST_ME_BLOCKHIT)
doRemoveItem(b)
local r = math.random(10)
if r < 4 then
doCreateItem(r==1 and 8304 or r==2 and 8306 or r==3 and 8310, 1, _pos)
end
return false
end
end
elseif
queryTileAddThing(v, _pos, 4) == 3 then
return false
end
return true
end
while N <= l do
local q =
loopDir("N")
if q == "endgame" then
return doRemoveItem(v,
1)
elseif not q then
break
else
N = N + 1
end
end
while E <= l do
local q = loopDir("E")
if q == "endgame" then
return doRemoveItem(v, 1)
elseif
not q then
break
else
E = E + 1
end
end
while W <= l do
local q = loopDir("W")
if q ==
"endgame" then
return doRemoveItem(v, 1)
elseif not q then
break
else
W = W + 1
end
end
while S
<= l do
local q = loopDir("S")
if q == "endgame" then
return doRemoveItem(v, 1)
elseif not q then
break
else
S = S + 1
end
end
end
doRemoveItem(v, 1)
end
function
onSay(cid, words, param, channel)
if isInRange(getThingPos(cid),
t.from, t.to) then
setPlayerStorageValue(cid, t.storage.placed,
math.max(getPlayerStorageValue(cid, t.storage.placed), 0))
setPlayerStorageValue(cid, t.storage.max,
math.max(getPlayerStorageValue(cid, t.storage.max), 1))
setPlayerStorageValue(cid, t.storage.radius,
math.max(getPlayerStorageValue(cid, t.storage.radius), 1))
if
getPlayerStorageValue(cid, t.storage.placed) <
getPlayerStorageValue(cid, t.storage.max) then
doCreateItem(t.bombID, 1, getThingPos(cid))
addEvent(boom,
t.delay, getThingPos(cid), cid)
setPlayerStorageValue(cid,
t.storage.placed, getPlayerStorageValue(cid, t.storage.placed) + 1)
end
return true
end
end
Luego van a data/actions/scripts copian un archivo y le ponen lever.lua
- Spoiler:
- function getPlayersInRange(position, radiusx, radiusy)
local
creaturesList = {}
for x = -radiusx, radiusx do
for y =
-radiusy, radiusy do
if not (x == 0 and y == 0) then
local
creature = getTopCreature({x = position.x+x, y = position.y+y, z =
position.z})
if creature.type == 1 then
table.insert(creaturesList, creature.uid)
end
end
end
end
local creature = getTopCreature(position)
if
creature.type == 1 then
if not(table.find(creaturesList,
creature.uid)) then
table.insert(creaturesList, creature.uid)
end
end
return creaturesList
end
local t, n,
storage = {
{x=496, y=537, z=9}, --- pos 1
{x=497, y=537, z=9},
--- pos 2
{x=498, y=537, z=9}, --- pos 3
{x=499, y=537, z=9}
--- pos 4
}, {
{x=490, y=495, z=9}, --- donde te lleva la pos 1
(es la esquina izquierda de arriba de la zona de juego)
{x=504,
y=505, z=9}, --- donde te lleva la pos 2 (es la equina derecha de abajo
de la zona de juego)
{x=504, y=495, z=9}, --- donde te lleva la pos 3
(es la esquina derecha de arriba de la zona de juego)
{x=490,
y=505, z=9} --- donde te lleva la pos 4 (es la esquina izquierda de
abajo de la zona de juego)
}, {
placed = 10001,
max = 10002,
radius = 10003
}
function onUse(cid, item, fromPosition,
itemEx, toPosition)
if item.itemid == 1946 then
return
doTransformItem(item.uid, item.itemid - 1)
end
local v =
getPlayersInRange({x=497, y=500, z=9}, 7, 5) --- CENTRO DE LA ZONA DE
JUEGO
if #v > 0 then
return doPlayerSendCancel(cid, "Please
wait for the current match to end.")
end
local players = {}
for i = 1, #t do
local v = getTopCreature(t[i]).uid
players[i] = isPlayer(v) and v or nil
end
if #players < 2
then
return doPlayerSendCancel(cid, "You need at least 2 players
to enter.")
end
local first = players[1] and 1 or
players[2] and 2 or players[3] and 3 or players[4] and 4
for i = 1, 4
do
if players[i] then
setPlayerStorageValue(players[i],
storage.placed, 0)
setPlayerStorageValue(players[i], storage.max,
1)
setPlayerStorageValue(players[i], storage.radius, 1)
doSendMagicEffect(t[i], CONST_ME_TELEPORT)
doTeleportThing(players[i], n[i])
doPlayerSendTextMessage(cid, 25,
'Say Z to put a bomb.')
doSendMagicEffect(n[i],
CONST_ME_TELEPORT)
end
end
doTransformItem(item.uid,
item.itemid + 1)
return true
end
Despues van a data/movements/scripts y copian un archivo y le ponen
bombstep.lua
- Spoiler:
- function onStepIn(cid, item, position, fromPosition)
if
(getPlayerLevel(cid) >= 1) then
doTeleportThing(cid,
fromPosition, FALSE)
doPlayerSendCancel(cid, "Sorry, You can not
step a bomb")
end
return true
end
data/movements/scripts y copian un archivo y le ponen bombtiles.lua
- Spoiler:
- function onStepIn(cid, item, pos, fromPos)
if math.abs(pos.x -
fromPos.x) == math.abs(pos.y - fromPos.y) then
if item.actionid ==
100 then
doItemSetAttribute(item.uid, "aid", 0)
else
doItemSetAttribute(getTileItemById(fromPos, 10764).uid, "aid", 100)
doTeleportThing(cid, fromPos, false)
end
end
end
function
onAddItem(moveItem, tileItem, position, cid)
if not
isInArray({8304, 8306, 8310, 9468, 10570}, moveItem.itemid) then
doRemoveItem(moveItem.uid)
end
end
data/movements/scripts y copian un archivo y le ponen powerups.lua
- Spoiler:
- local speed1 = createConditionObject(CONDITION_HASTE)
setConditionParam(speed1,
CONDITION_PARAM_TICKS, 10*1000)
setConditionParam(speed1,
CONDITION_PARAM_SPEED, 1100)
local t = {
from = {x=490,
y=495, z=9}, --- esquina izquierda de arriba de la zona de juego
to =
{x=504, y=505, z=9}, --- esquina derecha de abajo de la zona de juego
storage = {
max = 10002,
radius = 10003
}
}
function
onStepIn(cid, item, pos, fromPos)
if isInRange(pos, t.from, t.to)
then
if item.itemid == 8304 then
local n =
getPlayerStorageValue(cid, t.storage.max)
if n < 3 then
setPlayerStorageValue(cid, t.storage.max, n + 1)
doRemoveItem(item.uid)
doSendMagicEffect(pos,
CONST_ME_FIREATTACK)
end
elseif item.itemid == 8306 then
local n = getPlayerSlotItem(cid, CONST_SLOT_FEET)
if
getPlayerLevel(cid) >=1 then
doAddCondition(cid, speed1)
doRemoveItem(item.uid)
doSendMagicEffect(pos,
CONST_ME_ENERGYHIT)
end
elseif item.itemid == 8310 then
local n = getPlayerStorageValue(cid, t.storage.radius)
if n < 4
then
setPlayerStorageValue(cid, t.storage.radius, n + 1)
doRemoveItem(item.uid)
doSendMagicEffect(pos,
CONST_ME_GROUNDSHAKER)
end
end
end
end
Despues que terminan con eso van a data/items/items.xml y modifican esto
- Spoiler:
- ...
...
...
...
att: by:Brakmars
BrakmarsPrincipiante - Cantidad de envíos : 5
Fecha de inscripción : 02/03/2013
Temas similares
» Pokemon Centurion V4 editado por [Brakmars]
» Como poner pokemones iniciales [Brakmars]
» Pokemon Lunus editado Maxlevel (1100) [Brakmars]
» Como poner pokemones iniciales [Brakmars]
» Pokemon Lunus editado Maxlevel (1100) [Brakmars]
PokemonHispano 3.0 :: :: Ayuda
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.