FL
pedido

[Ajuda] Sistema De Natação [Ajuda]

Por Flaah, 18 de jul. de 2012 em Scripts

ajuda
help
natação
script
system
sistema
tibia
brasil
otserv
23
2.9k
FlaahF
18 de julho de 2012 às 16:55

Boa Tarde amigos do XTIBIA, to com um grande problema no sistema de natação que eu peguei que seria:

 

Quando o player saisse da água, ele voltasse com uma outifit que eu escolhesse, isso seria para cada vocation que tenho no meu server.

 

Eu fiz isso, mais so que player ao nadar ele n fica com a outifit de natação e ele não volta a terra, da um block no char.. :(

 

SCRIPT::

 

local outfit = {lookType = 267, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}

outfits = {
			[1] = {lookType = 168}, -- o numero 9 é o ID da vocação e 69 é o ID do looktype.
			[2] = {lookType = 161},
			[3] = {lookType = 173},
			[4] = {lookType = 176},
			[5] = {lookType = 180},
			[6] = {lookType = 182},
			[7] = {lookType = 184},
			[8] = {lookType = 187},
			[9] = {lookType = 10},
			[10] = {lookType = 189},
			[11] = {lookType = 2},
			[12] = {lookType = 77},
			[13] = {lookType = 0},
			[14] = {lookType = 0},
			[15] = {lookType = 19},
			[16] = {lookType = 19},
			[29] = {lookType = 24},
			[30] = {lookType = 10},
			[31] = {lookType = 44},
			[32] = {lookType = 53},
			[33] = {lookType = 57},
			[34] = {lookType = 61},
			[35] = {lookType = 63},
			[36] = {lookType = 69},
			[37] = {lookType = 73},
			[38] = {lookType = 20},
			[39] = {lookType = 40},
			[40] = {lookType = 80},
			[41] = {lookType = 60},
			[42] = {lookType = 30},
			[43] = {lookType = 30}


}

local BORDERS = {
[7943] = {x = 0, y = -2, back = SOUTH},
[7944] = {x = -2, y = 0, back = EAST},
[7945] = {x = 0, y = 2, back = NORTH},
[7946] = {x = 2, y = 0, back = WEST},
[7947] = {x = 2, y = 1, back = WEST},
[7948] = {x = -2, y = 1, back = NORTH},
[7949] = {x = 2, y = -1, back = WEST},
[7950] = {x = -2, y = -1, back = EAST},
[7951] = {x = 2, y = 2, back = WEST},
[7952] = {x = -2, y = 2, back = NORTH},
[7953] = {x = 2, y = -2, back = WEST},
[7954] = {x = -2, y = -2, back = SOUTH}
}

BORDERS[4828] = BORDERS[7943]
BORDERS[4829] = BORDERS[7946]
BORDERS[4830] = BORDERS[7945]
BORDERS[4831] = BORDERS[7944]

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
if(not isPlayer(cid)) then
	return true
end

local border = BORDERS[item.itemid]
if(not border) then
	return false
end

local pos, newPos = getCreaturePosition(cid), {}
newPos = pos
newPos.x = pos.x + border.x
newPos.y = pos.y + border.y

if(hasCondition(cid, CONDITION_OUTFIT) and getCreatureOutfit(cid).lookType == outfit.lookType) then
	doMoveCreature(cid, border.back)
	doRemoveCondition(cid, CONDITION_OUTFIT)
else
	if(doTileQueryAdd(cid, pos, 4) ~= RETURNVALUE_NOERROR) then
		return false
	end

	local tmp = getCreaturePosition(cid)
	doTeleportThing(cid, newPos)

	if(not isPlayerGhost(cid)) then
		doSendMagicEffect(tmp, CONST_ME_POFF)
		doSendMagicEffect(newPos, CONST_ME_WATERSPLASH)
	end

	doRemoveConditions(cid, true)
			local voc_id = getPlayerVocation(cid)
			if getPlayerVocation(cid) > 0 then
							doSetCreatureOutfit(cid, outfits[voc_id], -1)
end

return true
end
end

 

ALGUEM PODERIA ME AJUDAR? :(

 

VALENDO +REP

Editado Julho 21 por Flaah

AvronexA
18 de julho de 2012 às 17:01

Ele da algum erro no console? Se sim poste para nos!

FlaahF
18 de julho de 2012 às 17:04

Pior que não da ERRO no console, o problema mesmo é q o player não fica com a outifit quando nadar, e não consegue sair da água, :(

 

ALGUEM PODERIA ME AJUDAR?? :(

 

VALENDO +REP

Editado Julho 18 por Flaah

EskyloE
18 de julho de 2012 às 18:36
local outfit = {lookType = 267, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}
outfits = {
					    [1] = {lookType = 168}, -- o numero 9 é o ID da vocação e 69 é o ID do looktype.
					    [2] = {lookType = 161},
					    [3] = {lookType = 173},
					    [4] = {lookType = 176},
					    [5] = {lookType = 180},
					    [6] = {lookType = 182},
					    [7] = {lookType = 184},
					    [8] = {lookType = 187},
					    [9] = {lookType = 10},
					    [10] = {lookType = 189},
					    [11] = {lookType = 2},
					    [12] = {lookType = 77},
					    [13] = {lookType = 0},
					    [14] = {lookType = 0},
					    [15] = {lookType = 19},
					    [16] = {lookType = 19},
					    [29] = {lookType = 24},
					    [30] = {lookType = 10},
					    [31] = {lookType = 44},
					    [32] = {lookType = 53},
					    [33] = {lookType = 57},
					    [34] = {lookType = 61},
					    [35] = {lookType = 63},
					    [36] = {lookType = 69},
					    [37] = {lookType = 73},
					    [38] = {lookType = 20},
					    [39] = {lookType = 40},
					    [40] = {lookType = 80},
					    [41] = {lookType = 60},
					    [42] = {lookType = 30},
					    [43] = {lookType = 30}

}
local BORDERS = {
   [7943] = {x = 0, y = -2, back = SOUTH},
   [7944] = {x = -2, y = 0, back = EAST},
   [7945] = {x = 0, y = 2, back = NORTH},
   [7946] = {x = 2, y = 0, back = WEST},
   [7947] = {x = 2, y = 1, back = WEST},
   [7948] = {x = -2, y = 1, back = NORTH},
   [7949] = {x = 2, y = -1, back = WEST},
   [7950] = {x = -2, y = -1, back = EAST},
   [7951] = {x = 2, y = 2, back = WEST},
   [7952] = {x = -2, y = 2, back = NORTH},
   [7953] = {x = 2, y = -2, back = WEST},
   [7954] = {x = -2, y = -2, back = SOUTH}
}
BORDERS[4828] = BORDERS[7943]
BORDERS[4829] = BORDERS[7946]
BORDERS[4830] = BORDERS[7945]
BORDERS[4831] = BORDERS[7944]
function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
   if(not isPlayer(cid)) then
    return true
   end
   local border = BORDERS[item.itemid]
   if(not border) then
    return false
   end
   local pos, newPos = getCreaturePosition(cid), {}
   newPos = pos
   newPos.x = pos.x + border.x
   newPos.y = pos.y + border.y
   if(hasCondition(cid, CONDITION_OUTFIT) and getCreatureOutfit(cid).lookType == outfit.lookType) then
    doMoveCreature(cid, border.back)
    doRemoveCondition(cid, CONDITION_OUTFIT)
 local voc_id = getPlayerVocation(cid)
 if outfits[voc_id] then
  outfit.lookType = outfits[voc_id].lookType
  doSetCreatureOutfit(cid, outfit, -1)
 end
   else
    if(doTileQueryAdd(cid, pos, 4) ~= RETURNVALUE_NOERROR) then
	    return false
    end
    doTeleportThing(cid, newPos)
    if(not isPlayerGhost(cid)) then
	    doSendMagicEffect(tmp, CONST_ME_POFF)
	    doSendMagicEffect(newPos, CONST_ME_WATERSPLASH)
    end
    doRemoveConditions(cid, true)
 doSetCreatureOutfit(cid, outfit, -1)
end
return true
end

FlaahF
18 de julho de 2012 às 18:45

Cara deu o seguinte erro, quando tento sair do mar:

 

 

[18/07/2012 18:43:53] [Error - MoveEvents Interface]

[18/07/2012 18:43:53] data/movements/scripts/swimming.lua:onStepIn

[18/07/2012 18:43:53] Description:

[18/07/2012 18:43:53] attempt to index a nil value

[18/07/2012 18:43:53] stack traceback:

[18/07/2012 18:43:53] [C]: in function 'doSendMagicEffect'

[18/07/2012 18:43:53] data/movements/scripts/swimming.lua:80: in function <data/movements/scripts/swimming.lua:54>

 

ALGUEM PODERIA ME AJUDAR? :(

 

VALENDO +REP

EskyloE
18 de julho de 2012 às 19:12
local outfit = {lookType = 267, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}
outfits = {
					    [1] = {lookType = 168}, -- o numero 9 é o ID da vocação e 69 é o ID do looktype.
					    [2] = {lookType = 161},
					    [3] = {lookType = 173},
					    [4] = {lookType = 176},
					    [5] = {lookType = 180},
					    [6] = {lookType = 182},
					    [7] = {lookType = 184},
					    [8] = {lookType = 187},
					    [9] = {lookType = 10},
					    [10] = {lookType = 189},
					    [11] = {lookType = 2},
					    [12] = {lookType = 77},
					    [13] = {lookType = 0},
					    [14] = {lookType = 0},
					    [15] = {lookType = 19},
					    [16] = {lookType = 19},
					    [29] = {lookType = 24},
					    [30] = {lookType = 10},
					    [31] = {lookType = 44},
					    [32] = {lookType = 53},
					    [33] = {lookType = 57},
					    [34] = {lookType = 61},
					    [35] = {lookType = 63},
					    [36] = {lookType = 69},
					    [37] = {lookType = 73},
					    [38] = {lookType = 20},
					    [39] = {lookType = 40},
					    [40] = {lookType = 80},
					    [41] = {lookType = 60},
					    [42] = {lookType = 30},
					    [43] = {lookType = 30}

}
local BORDERS = {
   [7943] = {x = 0, y = -2, back = SOUTH},
   [7944] = {x = -2, y = 0, back = EAST},
   [7945] = {x = 0, y = 2, back = NORTH},
   [7946] = {x = 2, y = 0, back = WEST},
   [7947] = {x = 2, y = 1, back = WEST},
   [7948] = {x = -2, y = 1, back = NORTH},
   [7949] = {x = 2, y = -1, back = WEST},
   [7950] = {x = -2, y = -1, back = EAST},
   [7951] = {x = 2, y = 2, back = WEST},
   [7952] = {x = -2, y = 2, back = NORTH},
   [7953] = {x = 2, y = -2, back = WEST},
   [7954] = {x = -2, y = -2, back = SOUTH}
}
BORDERS[4828] = BORDERS[7943]
BORDERS[4829] = BORDERS[7946]
BORDERS[4830] = BORDERS[7945]
BORDERS[4831] = BORDERS[7944]
function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
   if(not isPlayer(cid)) then
    return true
   end
   local border = BORDERS[item.itemid]
   if(not border) then
    return false
   end
   local pos, newPos = getCreaturePosition(cid), {}
   newPos = pos
   newPos.x = pos.x + border.x
   newPos.y = pos.y + border.y
   if(hasCondition(cid, CONDITION_OUTFIT) and getCreatureOutfit(cid).lookType == outfit.lookType) then
    doMoveCreature(cid, border.back)
    doRemoveCondition(cid, CONDITION_OUTFIT)
 local voc_id = getPlayerVocation(cid)
 if outfits[voc_id] then
  outfit.lookType = outfits[voc_id].lookType
  doSetCreatureOutfit(cid, outfit, -1)
 end
   else
    if(doTileQueryAdd(cid, pos, 4) ~= RETURNVALUE_NOERROR) then
	    return false
    end
 tmp = getCreaturePosition(cid)
    doTeleportThing(cid, newPos)
    if(not isPlayerGhost(cid)) then
	    doSendMagicEffect(tmp, CONST_ME_POFF)
	    doSendMagicEffect(newPos, CONST_ME_WATERSPLASH)
    end
    doRemoveConditions(cid, true)
 doSetCreatureOutfit(cid, outfit, -1)
end
return true
end

exorcistE
18 de julho de 2012 às 19:30

não ha nesesidade de um script de nataçao, há um tile no rme que faz isso

FlaahF
18 de julho de 2012 às 21:36

Agora esta com o seguinte ERRO:

 

Ele não nada mais :(

 

PS: Que tile é esse? o.O

 

ALGUEM PODERIA ME AJUDAR? :(

 

VALENDO +REP

Editado Julho 18 por Flaah

pbottrinksP
19 de julho de 2012 às 00:24

O Tile do RME. Nao transforma em outif Nero. preste mais atencao.

local outfit = {lookType = 267, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}
outfits = {
                                                   [1] = {lookType = 168}, -- o numero 9 é o ID da vocação e 69 é o ID do looktype.
                                                   [2] = {lookType = 161},
                                                   [3] = {lookType = 173},
                                                   [4] = {lookType = 176},
                                                   [5] = {lookType = 180},
                                                   [6] = {lookType = 182},
                                                   [7] = {lookType = 184},
                                                   [8] = {lookType = 187},
                                                   [9] = {lookType = 10},
                                                   [10] = {lookType = 189},
                                                   [11] = {lookType = 2},
                                                   [12] = {lookType = 77},
                                                   [13] = {lookType = 0},
                                                   [14] = {lookType = 0},
                                                   [15] = {lookType = 19},
                                                   [16] = {lookType = 19},
                                                   [29] = {lookType = 24},
                                                   [30] = {lookType = 10},
                                                   [31] = {lookType = 44},
                                                   [32] = {lookType = 53},
                                                   [33] = {lookType = 57},
                                                   [34] = {lookType = 61},
                                                   [35] = {lookType = 63},
                                                   [36] = {lookType = 69},
                                                   [37] = {lookType = 73},
                                                   [38] = {lookType = 20},
                                                   [39] = {lookType = 40},
                                                   [40] = {lookType = 80},
                                                   [41] = {lookType = 60},
                                                   [42] = {lookType = 30},
                                                   [43] = {lookType = 30}

}
local BORDERS = {
   [7943] = {x = 0, y = -2, back = SOUTH},
   [7944] = {x = -2, y = 0, back = EAST},
   [7945] = {x = 0, y = 2, back = NORTH},
   [7946] = {x = 2, y = 0, back = WEST},
   [7947] = {x = 2, y = 1, back = WEST},
   [7948] = {x = -2, y = 1, back = NORTH},
   [7949] = {x = 2, y = -1, back = WEST},
   [7950] = {x = -2, y = -1, back = EAST},
   [7951] = {x = 2, y = 2, back = WEST},
   [7952] = {x = -2, y = 2, back = NORTH},
   [7953] = {x = 2, y = -2, back = WEST},
   [7954] = {x = -2, y = -2, back = SOUTH}
}
BORDERS[4828] = BORDERS[7943]
BORDERS[4829] = BORDERS[7946]
BORDERS[4830] = BORDERS[7945]
BORDERS[4831] = BORDERS[7944]
function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
   if(not isPlayer(cid)) then
           return true
   end
   local border = BORDERS[item.itemid]
   if(not border) then
           return false
   end
   local pos, newPos = getCreaturePosition(cid), {}
   newPos = pos
   newPos.x = pos.x + border.x
   newPos.y = pos.y + border.y
   if(hasCondition(cid, CONDITION_OUTFIT) and getCreatureOutfit(cid).lookType == outfit.lookType) then
           doMoveCreature(cid, border.bs ack)
           doRemoveCondition(cid, CONDITION_OUTFIT)
 local voc_id = getPlayerVocation(cid)
 if outfits[voc_id] then
  outfit.lookType = outfits[voc_id].lookType
  doSetCreatureOutfit(cid, outfit, -1)
 end
   else
           if(doTileQueryAdd(cid, pos, 4) ~= RETURNVALUE_NOERROR) then
                   return false
           end
           doTeleportThing(cid, newPos)
           if(not isPlayerGhost(cid)) then
                   doSendMagicEffect(newPos, CONST_ME_WATERSPLASH)
           end
           doRemoveConditions(cid, true)
 doSetCreatureOutfit(cid, outfit, -1)
end
return true
end

TENTA ASSIM, E ME FALA.

FlaahF
19 de julho de 2012 às 13:45

Cara ta dando esse ERRO:

 

 

[19/07/2012 13:44:59] [Error - LuaScriptInterface::loadFile] data/movements/scripts/swimming.lua:67: ')' expected near 'ack'

[19/07/2012 13:44:59] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/swimming.lua)

[19/07/2012 13:44:59] data/movements/scripts/swimming.lua:67: ')' expected near 'ack'

[19/07/2012 13:44:59] [Error - LuaScriptInterface::loadFile] data/movements/scripts/swimming.lua:67: ')' expected near 'ack'

[19/07/2012 13:44:59] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/swimming.lua)

[19/07/2012 13:44:59] data/movements/scripts/swimming.lua:67: ')' expected near 'ack'

 

@EDIT

 

Cara coloquei a virgula, que estava dando esse erro acima, mais so que agora quando o player vai nadar pela segunda vez, ele da esse ERRO, e o player anda sobre a água, não nada :(

 

[19/07/2012 13:56:02] [Error - MoveEvents Interface]

[19/07/2012 13:56:02] data/movements/scripts/swimming.lua:onStepIn

[19/07/2012 13:56:02] Description:

[19/07/2012 13:56:02] (luaDoMoveCreature) Creature not found

 

ALGUEM PODERIA ME AJUDAR? :(

 

VALENDO +REP

Editado Julho 19 por Flaah

LeoxtibiaL
19 de julho de 2012 às 14:06

Tenta assim cara:

 

local outfit = {lookType = 267, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}

 local outfits = {
	   	 [1] = {lookType = 168}, -- o numero 9 é o ID da vocação e 69 é o ID do looktype.
	   	 [2] = {lookType = 161},
	   	 [3] = {lookType = 173},
	   	 [4] = {lookType = 176},
	   	 [5] = {lookType = 180},
	   	 [6] = {lookType = 182},
	   	 [7] = {lookType = 184},
	   	 [8] = {lookType = 187},
	   	 [9] = {lookType = 10},
	   	 [10] = {lookType = 189},
	   	 [11] = {lookType = 2},
	   	 [12] = {lookType = 77},
	   	 [13] = {lookType = 0},
	   	 [14] = {lookType = 0},
	   	 [15] = {lookType = 19},
	   	 [16] = {lookType = 19},
	   	 [29] = {lookType = 24},
	   	 [30] = {lookType = 10},
	   	 [31] = {lookType = 44},
	   	 [32] = {lookType = 53},
	   	 [33] = {lookType = 57},
	   	 [34] = {lookType = 61},
	   	 [35] = {lookType = 63},
	   	 [36] = {lookType = 69},
	   	 [37] = {lookType = 73},
	   	 [38] = {lookType = 20},
	   	 [39] = {lookType = 40},
	   	 [40] = {lookType = 80},
	   	 [41] = {lookType = 60},
	   	 [42] = {lookType = 30},
	   	 [43] = {lookType = 30}


}

local BORDERS = {
	[7943] = {x = 0, y = -2, back = SOUTH},
	[7944] = {x = -2, y = 0, back = EAST},
	[7945] = {x = 0, y = 2, back = NORTH},
	[7946] = {x = 2, y = 0, back = WEST},
	[7947] = {x = 2, y = 1, back = WEST},
	[7948] = {x = -2, y = 1, back = NORTH},
	[7949] = {x = 2, y = -1, back = WEST},
	[7950] = {x = -2, y = -1, back = WEST},
	[7951] = {x = 2, y = 2, back = WEST},
	[7952] = {x = -2, y = 2, back = NORTH},
	[7953] = {x = 2, y = -2, back = WEST},
	[7954] = {x = -2, y = -2, back = SOUTH}
}

BORDERS[4828] = BORDERS[7943]
BORDERS[4829] = BORDERS[7946]
BORDERS[4830] = BORDERS[7945]
BORDERS[4831] = BORDERS[7944]

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
	if(not isPlayer(cid)) then
			return true
	end

	local border = BORDERS[item.itemid]
	if(not border) then
			return false
	end
	if hasCondition(cid, CONDITION_INFIGHT) then
			return doPlayerSendCancel(cid, "You are in a fight.") and doTeleportThing(cid, fromPosition)
	end

	local pos, newPos = getCreaturePosition(cid), {}
	newPos = pos
	newPos.x = pos.x + border.x
	newPos.y = pos.y + border.y

	if(hasCondition(cid, CONDITION_OUTFIT) and getCreatureOutfit(cid).lookType == outfit.lookType) then
			doMoveCreature(cid, border.back)
			doRemoveCondition(cid, CONDITION_OUTFIT)
	else
			if(doTileQueryAdd(cid, pos, 4) ~= RETURNVALUE_NOERROR) then
					return false
			end

			doRemoveConditions(cid, true)

			doSendMagicEffect(pos, CONST_ME_POFF)
			doTeleportThing(cid, newPos)
			doSendMagicEffect(pos, CONST_ME_WATERSPLASH)
			voc = getPlayerVocation(cid)
			doCreatureChangeOutfit(cid, outfits[voc])
	end

	return true
end

Editado Julho 19 por Leoxtibia

FlaahF
19 de julho de 2012 às 14:12

Cara quando ele vai nadar, ele não fica com a oufiti de natação e da esse ERRO quando vai volta pra terra, e ele não consegue sobir pra terra:

 

[19/07/2012 14:09:41] [Error - MoveEvents Interface]

[19/07/2012 14:09:41] data/movements/scripts/swimming.lua:onStepIn

[19/07/2012 14:09:41] Description:

[19/07/2012 14:09:41] attempt to index a number value

[19/07/2012 14:09:41] stack traceback:

[19/07/2012 14:09:41] [C]: in function 'doCreatureChangeOutfit'

[19/07/2012 14:09:41] data/movements/scripts/swimming.lua:91: in function <data/movements/scripts/swimming.lua:59>

 

ALGUEM PODERIA ME AJUDAR? :(

 

VALENDO +REP

Editado Julho 19 por Flaah

LeoxtibiaL
19 de julho de 2012 às 14:21

Editei, vê se funciona agora.

FlaahF
19 de julho de 2012 às 14:29

Cara o erro do console vc arrumou, mais continua com os ERROS:

 

Ele não fica com a oufiti de natação quando esta na água, e ele não consegue voltar a terra.

 

ALGUEM PODERIA ME AJUDAR? :(

 

VALENDO +REP

LeoxtibiaL
19 de julho de 2012 às 14:33

removido

Editado Julho 19 por Leoxtibia