• 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!

Pokój tylko dla 1 osoby.

zabka229

New Member
Joined
Dec 30, 2009
Messages
147
Reaction score
0
Witam, zrobiłem sobie skrypt na questa, problem jest taki że chce zrobić tak:
-kiedy jedna osoba jest w danym pomieszczeniu to kolejne nie mogą do niego wejść. Mogą wejść dopiero gdy już tam gracza nie ma.
-w skrypcie dałem że kiedy gracz wchodzi do pokoju summonuja sie potworki, i chcę zrobić tak że jeśli gracz by padł, to te potworki mają zniknąć.
Pomoże ktoś?
 
zrób tak, że jak ktoś wchodzi do tego roomu to wtedy się pokój czyści i od nowa summonuje, jak ktoś wejdzie
 
Użyj po prostu global storage - czyli przełącznika globalnego.
 
Okey, a co jeśli postać padnie w pokoju?
Chciałem żeby summony zniknęły, więc zrobiłem tak:
skrypt ondeath:
local summons = getCreatureSummons(cid)

if isInRange(p, a.l, a.r) then
setGlobalStorageValue(cid, 133843, -1)
for _, pid in ipairs(summons) do
doRemoveCreature(pid)
end
return FALSE
end
storage zmienia, summonow nie usuwa i nie ma żadnego błędu ;/
 
Najlepiej zrób jakiś skrypt globalny, który wykonuje się co 5s gdy jest ustawiony jakiś global storage, który z kolei ma zapisane cid gracza w arenie. I jeżeli ten gracz jest poza areną, no to wiadomo.
 
No tak, ale to na pewno będzie mniej zasobożerne niż sprawdzanie pokoju co 5s, poza tym jest mi to potrzebne do jednego questa.
 
Żebyś się nie zesrał przy wykonywaniu paru instrukcji co 5 sekund.. W tym czasie serwer wyśle 9384 pakietów, odbierze 4983, wykona 134 operacji na bazie danych i 9348593 w pamięci programu. Litości człowieku.. ty masz tylko pobrać wartość z pamięci i sprawdzić czy jest równa 1 lub 0, jak jest 1 to pobierasz drugą wartość i wiesz jakie ma cid gracz. Albo prościej, dajesz jedną zmienną która wynosi 0 (nie ma gracza) lub jego id, jeżeli jest.

Prawdopodobnie gdybyś wiedział co nieco o komputerach i programowaniu to byś takich głupot nie gadał, tylko słuchał się bardziej doświadczonych.
 
Przy próbie wejścia sprawdź, czy w pokoju jest gracz. Jeśli nie to czyść i przenieś nowego. Fakt, że ta metoda jest dość wolna, ale działa.
 
Witam, zrobiłem sobie skrypt na questa, problem jest taki że chce zrobić tak:
-kiedy jedna osoba jest w danym pomieszczeniu to kolejne nie mogą do niego wejść. Mogą wejść dopiero gdy już tam gracza nie ma.
-w skrypcie dałem że kiedy gracz wchodzi do pokoju summonuja sie potworki, i chcę zrobić tak że jeśli gracz by padł, to te potworki mają zniknąć.
Pomoże ktoś?
to mają być drzwi, teleport czy co, bo jak chcesz ci to nmapisze na szybko, tylko te wchodzenie do pomieszczenia jak ma być.
 
Code:
--Trap room
local monsters = {
	["Demon"] = Position:new(2000,2000,7),
	["Demon"] = Position:new(2000,2000,7),
}
local storageId = 3000
local MonsterPacket = MultiStorage:new(storageId) 
MonsterPacket:addToRead("int32",table.maxv(monsters))
MonsterPacket:addToRead("int32")
funtion onUse(cid, item, fromPosition, itemEx, toPosition)
	-- block doors with some action id
	local serialize = {}
	for k, v in pairs(monsters) do
		local pos = v()
		local mid = doCreateMonster(k, pos)
		table.insert(serialize,mid)
	end
	table.insert(serialize, item.uid)
       MonsterPacket:serialize(cid,unpack(serialize))
end

Potem jeszcze onDeath 

function onDeath(cid)
	local storage = getPlayerStorageValue(cid,storageId)
	if storage > 0 then
		local ids = MonsterPacket:deserialize(cid)
		local size = table.maxv(ids) 
		for i = 1, size - 1 do
			if isCreature(v) then
				doRemoveThing(v)
			end
			local doorUid = ids[size]
			--unlock doors with action id maybe XD
		end
              doCreatureSetStorage(cid,storageId,-1)
	end
end

- - - Updated - - -

http://otland.net/f163/lib-serializing-deserializing-many-values-into-single-storage-value-177284/
http://otland.net/f163/position-class-simpler-way-handling-positions-scripts-167474/

Nie sprawdziłem czy dziala, mam nadzieje ze dasz rade, powodzenia.
 
Last edited:
@up
to samo chciałem dzisiaj napisać ale bardzo się boję jednego z moderatorów PB... mam straszną traumę od ostatniego bana - chyba zapiszę się do psychologa.

ale temat rzeczywiście, mimo, że zaglądałem w niego już xx razy i wiem o co autorowi chodzi to za każdym razem myślę, że chodzi mu o jednoosobowy pokój w hotelu jakimś....
 
Back
Top