Movements Automatyczne szukanie wolnego domku.

Status
Zamknięty.

Oskar

Forum friend
Przyjaciel forum
Zarejestrowany
Dołączył
Styczeń 24, 2009
Posty
2256
Liczba reakcji
331
S? dwie wersje, cho? obie r?wnie u?yteczne.
PHP:
local config = {
                {x=1339,y=623,z=7},
                {x=1356,y=623,z=7},
                {x=1364,y=619,z=7}
                }

function onStepIn(cid, item, pos, frompos, topos)
for i = 1, #config do
    local id = getHouseFromPos(config[i])
	if getHouseOwner(id) == 0 then
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Domek '..getHouseName(id)..' z miasta '..getTownName(getHouseTown(id))..' o powierzchni '..getHouseTilesCount(id)..'sqm jest wolny.')
        return doTeleportThing(cid, getHouseEntry(id))
    else
        if i == #config then
            return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Wszystkie domki s? zaj?te.'), doTeleportThing(cid, frompos)
        end
    end
end
return true
end
Wpisujemy jak?kolwiek pozycj? z wn?trza domku, po czym skrypt sprawdzi czy domek jest wolny, je?li tak przeteleportuje nas przed wej?cie, je?li nie to sprawdza nast?pn? pozycj?.

Oraz druga, bez wpisywania pozycji. Wystarczy wpisa? id miast, kt?re maj? by? sprawdzane.
PHP:
local id_miast = {1}

function onStepIn(cid, item, pos, frompos, topos)
for i = 1, #id_miast do
    local id = getTownHouses(id_miast[i])
	for v = 1, #id do
		if getHouseOwner(id[v]) == 0 then
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Domek '..getHouseName(id[v])..' z miasta '..getTownName(getHouseTown(id[v]))..' o powierzchni '..getHouseTilesCount(id[v])..'sqm jest wolny.')
			return doTeleportThing(cid, getHouseEntry(id[v]))
		else
			if v == #id then
				return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Wszystkie domki s? zaj?te.'), doTeleportThing(cid, frompos)
			end
		end
    end
end
return true
end

Wiadomo?? je?li domek b?dzie pusty:
22:43 Domek Greenpoint #1 z miasta Macindaw o powierzchni 276sqm jest wolny.
 
Odp: Automatyczne szukanie wolnego domku.

fajne ;d,
a mozesz zrobic tak ze jak ktos ma domek to daje go do/kolo domku? :)
 
Odp: Automatyczne szukanie wolnego domku.

@up pokombinuj z komend? domku alana sio :]


@topic no no postara?e? si? wypr?buje ;]
 
Odp: Automatyczne szukanie wolnego domku.

Fajny skrypcik, ladnie dziala. :)
Wkoncu ktos zaczal robic skrypty pomocne i uprzyjemniajace gre graczom na serverze. Nie trzeba teraz biegac i szukac wolnego domku, to samo z trainami :)
Mam nadzieje ze neidlugo zaczna tych skryptow ludzie uzywac na serverach prawie wszystkich bo to fajne jest.
Co prawda mialem maly blad z domkami ale to wina mapy. Skryp dziala dobrze. Ale czy dalo by sie tak zeby przenosil do losowego wolnego domku a nie do kolejnego na liscie? Wtedy mozna trafic na jakis fajnejszy jak jest kilka wolnych a nie ten ktory moze kupic pierwsza osoba ktora wejdzie pod ten domek bo jest na liscie? :)
 
Odp: Automatyczne szukanie wolnego domku.

jak tego uzywac?
 
Odp: Automatyczne szukanie wolnego domku.

Do movements.xml:
<movevent type="StepIn" uniqueid="11122" event="script" value="dom.lua" />
A skrypt do dom.lua w folderze scripts.

Na mapie dodajesz uid dla kratki ktora ma teleportowac 11122, i zapisujesz mape. Mozesz to jakos ladnie ogrodzic i postawic tabliczki z opisem ze tam jest tp do wolnego domku. A na kratke postawic teleport albo jakis przycisk zeby to wygladalo :P
 
Odp: Automatyczne szukanie wolnego domku.

skrypt bardzo s?aby jak na ciebie heh,
1. Nie sprawdza czy masz PZ
2. Nie sprawdza czy posiadasz ju? jaki? dom
3. Teleportuje do najbli?szego wolnego domku ;/

A tak w?a?ciwie to jest to ju? chyba 2 skrypt bazuj?cy na 1 podstawie tylko ze 3 linijki zmienione yy pisa?e?, ?e odchodzisz z tnp.. teraz powracasz w do?? s?abym stylu? ;( hehe we? si? za co? lepszego skoro w og?le co? wstawiasz..
 
Ostatnia edycja:
Odp: Automatyczne szukanie wolnego domku.

#up
Nie b?d? wstawia? swoich najlepszych skrypt?w, wstawiam tylko te, kt?re uwa?am za zb?dne na swoim dysku.
1. A co za r??nica czy pz? Kto chce by sprawdza?, niech sobie doda do skryptu, jeden warunek ka?dy chyba potrafi wrzuci?.
2. Jak wy?ej.
3. A co ma robi?? Do losowego?

Skoro to takie proste skrypty, dlaczego wi?c nikt takowych jeszcze nie napisa??
 
Ostatnia edycja:
Odp: Automatyczne szukanie wolnego domku.

Niestety akurat ten plik jak dla mnie jest niezb?dny, gdy? mo?na si? dowiedzie? jakie house jest wolne w danym czasie. Zastosuj? ten system do Nivira, tylko musz? translate.

@edit.
Ma?y edit i will be great.
 
Ostatnia edycja:
Odp: Automatyczne szukanie wolnego domku.

Chcieli?cie losowo?ci? Macie:
PHP:
local id_miast = {1}

function onStepIn(cid, item, pos, frompos, topos)
for i = 1, #id_miast do
    local id = check(getTownHouses(id_miast[i]))
	if getHouseOwner(id) == 0 then
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Domek '..getHouseName(id)..' z miasta '..getTownName(getHouseTown(id))..' o powierzchni '..getHouseTilesCount(id)..'sqm jest wolny.')
		return doTeleportThing(cid, getHouseEntry(id))
	else
		return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Wszystkie domki s? zaj?te.'), doTeleportThing(cid, frompos)
	end
end
return true
end

function check(city_houses)
local id = city_houses[math.random(#city_houses)]
	if getHouseOwner(id) ~= 0 then
		return check(city_houses)
	else
		return id
	end
end

#2x down
Kiedy w ko?cu zrozumiesz, ?e pope?niam b??dy specjalnie by tacy jak Ty mogli je sobie poprawi?? >.<

#edit
My?lisz, ?e obra?aj?c mnie i wywy?szaj?c si? ponad wszystkich innych zyskasz sobie przychylno?? innych? Nie wiem kim jeste?, ale wiem wystarczaj?co du?o, by stwierdzi? i? nie nale?ysz do tej 'inteligentnej' cz??ci forum.
Je?li kto? nie potrafi przerobi? 'szkieletu' skryptu na swoje potrzeby to nie m?j problem, a ?w osoby.
I nie obchodzi mnie czego si? uczy?e?, jak tego dokonywa?e? i innych bzdur, kt?re pewnie tu wyg?osisz. Ja ucz? si? LUA niespe?na 9 miesi?cy i nie uwa?am si? za super skryptera, za kt?rego Ty si? uwa?asz.
 
Ostatnia edycja:
Odp: Automatyczne szukanie wolnego domku.

Jak ju? Ci pisa?em, to lepiej zrobi? co? takiego, ?e automatycznie by wykrywa?o jaki dany domek jest wolny lub te? mo?na takie co? zrobi? za pomoc? komendy.
 
Odp: Automatyczne szukanie wolnego domku.

Oskar nie korzystaj z rekurencji jak nie umiesz -.-.Wrzucasz w rekurencj? funkcj? kt?ra mo?e si? nigdy nie zako?czy?, bo po pierwsze mo?e nie by? wolnych domk?w po drugie generator mo?e powtarza? wylosowane liczby. Przemy?l najpierw co piszesz, potem wrzucaj.

@Oskar
Cz?owieku, Ty wiesz kim ja jestem? Ja rozumiem, ?e nie wrzucasz idealnych skrypt?w, ale nie wrzucaj g?wna przez kt?re OTS b?dzie si? wiesza?. To takie trudne dla Ciebie, a? tak ma?o inteligentny jeste??
"Tacy jak ja mogli je poprawi?", takie g?wna jak Ty wrzucasz to ja pisa?em jak si? uczy?em lua w kt?rym nieskromnie stwierdzam nie masz po?owy mojej wiedzy.

@Edit2
Ja Tobie pomaga?em w Twoich pocz?tkach na tym forum jak by?em moderatorem, bo liczy?em, ?e jeste? jednym z normalniejszych ludzi tutaj. Niestety si? przeliczy?em, bo wrzucasz tutaj rzeczy "do przer?bki" co jest skrajnym udowadnianiem "Ja jestem zajebisty, a Ty sobie przerabiaj.". Tak, uwa?am si? za dobrego skryptera, ale mam do tego podstawy. To co Ty tutaj nazywasz szkieletem to ja bym brzydko m?wi?c g?wnem nie nazwa?, bo ca?o?? tutaj jest do przepisania je?li mam m?wi? o porz?dnym i stabilnym skrypcie.
 
Ostatnia edycja:
Odp: Automatyczne szukanie wolnego domku.

Napisa?em po swojemu. Mo?e i tamto faktycznie mog?o przeci??y? serwer to jednak wol? by ludzie zacz?li uczy? si? tego j?zyka poprawiaj?c b??dy.
PHP:
local id_miast = {1}

function onStepIn(cid, item, pos, frompos, topos)
for i = 1, #id_miast do
local id = {}
	for k, v in pairs(getTownHouses(id_miast[i])) do
		if getHouseOwner(v) == 0 then
			table.insert(id, v)
		end
	end
    if #id ~= 0 then
		local house = id[math.random(#id)]
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Domek '..getHouseName(house)..' z miasta '..getTownName(getHouseTown(house))..' o powierzchni '..getHouseTilesCount(house)..'sqm jest wolny.')
        return doTeleportThing(cid, getHouseEntry(house))
    else
        return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Wszystkie domki s? zaj?te.'), doTeleportThing(cid, frompos)
    end
end
return true
end
 
Odp: Automatyczne szukanie wolnego domku.

Niestety popieram Ghalla, przyznaj si? do b??du, a nie pieprz, ?e specjalnie pope?niasz b??dy. Je?eli tak, to id? si? uczy?, a nie wstawiasz zbugowane skrypty na forum.
 
Status
Zamknięty.
Back
Do góry