• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Arena co jakiś czas się psuje

lenidas

New Member
Joined
Mar 18, 2010
Messages
149
Reaction score
0
Witam, mam dziwny problem z svar areną, co jakiś czas sama(?) sie psuje.. nie wiem dokładnie o co chodzi bo jak testowałem ją to wszystkie 3 poziomy elegancko działały..

a tak co jakiś czas coś się psuje i nie działa żaden z trzech TP które teleportują do pierwszego roomu

Code:
[Error - MoveEvents Interface] 
data/movements/scripts/arenaroom.lua:onStepIn
Description: 
data/movements/scripts/arenaroom.lua:16: attempt to compare number with string
stack traceback:
data/movements/scripts/arenaroom.lua:16: in function <data/movements/scripts/arenaroom.lua:1>

arenaroom.lua
Code:
function onStepIn(cid, item, position, fromPosition)
	if InitArenaScript == 0 then
		InitArenaScript = 1
		-- make arena rooms free
		for i = 0,9 do
			setGlobalStorageValue(42300+i, 0)
			setGlobalStorageValue(42400+i, 0)
		end
		checkArenaRooms({})
	end
	local arena_room = item.actionid
	local player_arena = getPlayerStorageValue(cid, 42355)
	if getPlayerStorageValue(cid, arena_room+getPlayerStorageValue(cid, 42355)*10-1) == 1 or arena_room+getPlayerStorageValue(cid, 42355)*10-1 == 42299 then
		if getGlobalStorageValue(cid, arena_room) == 0 then
			local monster_uid = getGlobalStorageValue(arena_room+100)
			[COLOR="Red"]if monster_uid > 0 then[/COLOR]
				if isCreature(monster_uid) == TRUE then
					doRemoveCreature(monster_uid)
				end
			end
			local spawn_pos = getThingPos(arena_room)
			local monster = doCreateMonster(arena_monsters[arena_room+getPlayerStorageValue(cid, 42355)*10], {x=spawn_pos.x-1,y=spawn_pos.y-1,z=spawn_pos.z})
			setGlobalStorageValue(arena_room+100, monster)
			doTeleportThing(cid, spawn_pos, TRUE)
			setGlobalStorageValue(arena_room, cid)
			setGlobalStorageValue(arena_room-1, 0)
			setPlayerStorageValue(cid, 42350, os.time()+arena_room_max_time)
		else
			doTeleportThing(cid, fromPosition, TRUE)
			doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE,getCreatureName(getGlobalStorageValue(cid, arena_room))..' is now in next room. Wait a moment and try again.')
		end
	else
		doTeleportThing(cid, fromPosition, TRUE)
		doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE,'First kill monster!')
	end
	if arena_room == 42300 then
		setPlayerStorageValue(cid, 42351, 0)
		setPlayerStorageValue(cid, 42352, 1)
	end
	return TRUE
end

function checkArenaRooms(param)
	addEvent(checkArenaRooms, 1000, {})
	for i = 42300, 42309 do
		local player = getGlobalStorageValue(i)
		if isPlayer(player) == TRUE then
			local player_storage = getPlayerStorageValue(player, 42350)
			if player_storage <= os.time() then
				doTeleportThing(player, arenaKickPosition, TRUE)
				setPlayerStorageValue(player, 42350, 0)
				setGlobalStorageValue(i, 0)
				doPlayerSendTextMessage(player,MESSAGE_STATUS_CONSOLE_ORANGE,'You have been kicked from arena! You have only ' .. arena_room_max_time .. ' seconds for one room.')
			elseif player_storage - 10 <= os.time() then
				doPlayerSendTextMessage(player,MESSAGE_EVENT_DEFAULT,'You have ' .. player_storage - os.time() .. ' seconds to go to the next room!')
			end
		else
			setGlobalStorageValue(i, 0)
		end
	end
end

Wyróżniłem 16. linijkę. O co to w ogóle chodzi? o czym ten błąd informuje? na arenie nie ma żadnego zrespionego potwora.. nie rozumiem o co tu chodzi:<
 
Ja też nie, a mam to samo :D wystarczy, że co jakiś czas będziesz robił /reload movements i będzie działać :p
 
Skrypt zapewne by gesior, a on ma w zwyczaju robic skrypty ktore dzialaja bo dzialaja, nie wazne ze zawieraja bledy i moga bardzo obciazac serwer.
 
Co prawda to prawda, jak znajdę któregoś dnia czas (niech zajrzę w kalendarzyk... jakiś dzień za dwa miesiące się znajdzie :p) to sprawdzę skrypt, a na razie po prostu reloaduję :p
 
zrob sobie arena w mods, a nie bedziesz szukal problemow z actions, gdzies na forum jest wpisz w search mods perfeckt arena
 
Co prawda to prawda, jak znajdę któregoś dnia czas (niech zajrzę w kalendarzyk... jakiś dzień za dwa miesiące się znajdzie :p) to sprawdzę skrypt, a na razie po prostu reloaduję :p

robię tak samo xD
 
też robię to samo xd

jest arena w mods ona się chyba nie psuje.

błąd polega na tym ze jak ktoś zrobi all areny pójdzie gadać z npc jeszcze raz npc mu nie pozwoli zapytasz się drugi raz i pozwala potem już się cała arena się rozwala dopóki nie zrobisz /reload movements....
 
Last edited:
zbieram się do przetestowania tej w mods ale komu się chce ;p
 
też robię to samo xd

jest arena w mods ona się chyba nie psuje.

błąd polega na tym ze jak ktoś zrobi all areny pójdzie gadać z npc jeszcze raz npc mu nie pozwoli zapytasz się drugi raz i pozwala potem już się cała arena się rozwala do puki nie zrobisz /reload movements....

ostro :p czyli to się psuje chyba wtedy gdy ktoś kto zrobił 3 areny próbuje wbić do TP.. to może wystarczy dodać jakiegoś ifa że jak ktoś ma storage z 3roomu z rewardami to nie może przejść przez drzwi?
 
Czyli problem zaczyna się wtedy gdy ktoś kto zrobił wszystkie areny znów wejdzie w teleport

zatem wystarczy dodać movementa

Code:
local storage = 42355
local pos = {x=32251,y=31098,z=6}
function onStepIn(cid, item, position, fromPosition)
 if getPlayerStorageValue(cid,storage) ==3 then
    doTeleportThing(cid,pos)
    doSendMagicEffect(getPlayerPosition(cid),CONST_ME_TELEPORT)
    doCreatureSay(cid, "You have already done this quest!", TALKTYPE_ORANGE_1)
 end
 return true
end

:p
 
W npc wystarczy przebudować ostatni if i jest gitara. Musi się tam zawierać storage po wykonaniu 3 aren i żeby go wypierdalało, a nie nadawało mu ponownie storage do wykonywania.. : ) Pozdrawiam.
 
Back
Top