• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

Jak zliczyc ilosc przedmiotow na stacku?

Status
Not open for further replies.

fracek91

Member
Joined
May 30, 2008
Messages
423
Reaction score
8
mam taki kawalek skryptu
Code:
if getgate.itemid == 9971 and getgate.count >= 20 then
		for i=1,20 do
		doRemoveItem(getgate.uid,1)
		end
	doCreateItem(1497,1,gate2pos)
	if number == 1 then
		executeRaid(raids[math.random(1,#raids)])
        	doPlayerSendTextMessage(cid, 22, "Gratulacje!Wylosowales raid")
	else
		doPlayerSendTextMessage(cid, 14, "Tym razem sie nie udalo. Sprobuj jeszcze raz")
		end
	elseif getgate.itemid ~=9971 then
		doPlayerSendTextMessage(cid, 14, "Poloz sztabki zlota zeby losowac")
		doRemoveItem(getgate2.uid,1)
		doRemoveItem(getgate3.uid,1)
	end


co wpisac w miejsce "getgate.count" zeby liczylo czy itemow jest 20? + czy ta petelka for jest dobrze zrobiona?

@edit zauwazylem, ze petelka akurat tu nie jest potrzebna, do tego troche balagan jest. Ale prosze o pomoc z tym zliczaniem, zalezy mi na czasie
 
Last edited:
Code:
if getgate.itemid == 9971 and getgate.count >= 20 then
	if doRemoveItem(getgate.uid, 20) == true then
		doCreateItem(1497,1,gate2pos)
	else
		doPlayerSendCancel(cid, 'Poloz 20 x zeby losowac!')
	end
	if number == 1 then
		executeRaid(raids[math.random(1,#raids)])
        	doPlayerSendTextMessage(cid, 22, "Gratulacje!Wylosowales raid")
	else
		doPlayerSendTextMessage(cid, 14, "Tym razem sie nie udalo. Sprobuj jeszcze raz")
		end
	elseif getgate.itemid ~=9971 then
		doPlayerSendTextMessage(cid, 14, "Poloz sztabki zlota zeby losowac")
		doRemoveItem(getgate2.uid,1)
		doRemoveItem(getgate3.uid,1)
	end
 
Last edited:
Dzieki za zaangazowanie, ale skrypt da sie oszukac, mozna polozyc 1 item a pod nim na przyklad 20 gp i podziala. Naprawde nie da sie inaczej? Hmm mysle, ze moze petelka by dalo rade, takie cos? Juz dzisiaj nie zdaze przetestowac
Code:
z=0
for i=1,20 do
getgate =getthingfrompos....
if getgate.itemid==9971 then
doremoveitem...
z=z+1
else 
doplayersendmessage...
end
end
if z==20 then...
...
tylko mialoby to taka jedna wade, ze jakby ktos polozyl na przyklad 15 a nie 20 itemow to stracilby je ;c
 
Last edited:
Widzę zadanie specjalne potrzebujące szybkiego rozwiązania, a więc coś dla mnie. Już wyciszam radio i z podwojoną mocą śpieszę z pomocą.

Zanalizowszy treść postawionego zadania stwierdzam iż rozwiązanie uczestnika ów dyskusji użytkownika andy1995 jest poprawne. Nie jest możliwe również aby można było oszukać ten skrypt podając pod niego np. 20 gp gdyż item który próbujesz usunąć jest stackable (potwierdzone osobnymi badaniami na prywatnym serwerze tej gry, który mam nadzieję nie został specjalnie spreparowany aby oszukać wynik testu). Dodatkowo przed usuwaniem sprawdzasz jego id i ilość, a więc nie da się wykonać tutaj żadnego oszustwa, aczkolwiek mogę się mylić.

@edit, down
Dokładnie, tu jest ten błąd który powodował nie poprawne sprawdzanie ilości, bo cała reszta wygląda ok.
 
Last edited:
Nie wiem, moze masz racje, moze nie, ale wystarczylo uzyc getgate.type >= 20 i dziala zajebiscie. Mozna zamknac
 
Status
Not open for further replies.
Back
Top