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

Czy takie cos moze crashowac mi serwer (pętelka)

fracek91

Member
Joined
May 30, 2008
Messages
423
Reaction score
8
Code:
repeat
getgate2 = getThingfromPos(gate2pos)
if getgate2.actionid ~= 6011 then
doRemoveItem(getgate2.uid,1)
else
doTransformItem(getgate2.uid, 6283)
end
until getgate2.actionid == 6011

uptime wyciagalem juz kilkanascie godzin i nagle po prostu skrypt sie zapetlil, wyrzucilo graczy i nie szlo sie zalogowac. Co jest tu nie tak. Ten item z actionid jest nieruchomy na 100%, wydawalo mi sie, ze taka petelka jest w 100% bezpieczna. Przy czym w skrypcie mam jeszcze kilka petli tego samego typu przy czym wydaja mi sie one jeszcze bezpieczniejsze bo wygladaja w ten sposob
Code:
repeat
gg = getThingfromPos(gate)
doRemoveItem(gg.uid,1)
until gg.itemid == 0

macie ewentualnie alternatywe dla tych petelek albo cos podobnego? Z gory dzieki
 
na moje oko nie powinno ci przez to scrashować serwa

czy jesteś pewien na 100% że to ten skrypt?
 
Dodaj tam warunek, że jeśli wykona się więcej niż na przykład 500 razy, to pętla się kończy :).
 
jak dodac taki warunek?

czy jesteś pewien na 100% że to ten skrypt?

tak, w konsoli wyswietla wlasnie w kolo adres tego skryptu + couldn't find item.

@koob
tyle to wiem, bardziej chodzilo mi o to dlaczego
 
Napisz jak ma to dzialac, bo limit ilosci wykonan to takie srednie rozwiazanie.
 
Wyglada to w ten sposob:
Jest jakis tam powiedzmy murek w quescie, ktory mozna czyms tam zniszczyc. Wtedy zamienia sie on w popiol, po ktorym mozna przejsc. Jednak zeby quest byl rowno trudny dla nastepnych oczywiscie chce zeby popiuol przemienial sie w murek wraz z uzyciem kolejnej dzwigni przez osobe, ktora zburzyla wczesniej murek. Przy czym ktos mogl zabic potwora lyb zasmiecic kratke, gdzie jest ten popiol/murek i dlatego nalzy oczyscic te kratke az znajdziemy sie na poziomie tego murku/popiolu i wtedy przemienimy go w murek jesli jest popiolem.

Generalnie zawsze jak gdzies sa dzwignie, ktore kasuja jakis przedmiot (zwykle blokujacy droge) to uzywam petli repeat..until poniewaz czasami wlasnie zdarza sie tak, ze jakis smiec pojawia ie na kratce i pojedyncze doremoveitem nie zalatwia sprawy



Jeszcze mam pytanie 2, nieco inne, ale tez zwiazane z LUA. Mianowicie chce zrobic dzwignie, ktoraby przemieniala podloge na "decaying hole" (taka jaka sie robi po uderzeniu pickiem w ziemie z aid). Problem jednak jest taki, ze dotransformitem nie wiem jak zrobic zeby getitemfrom pos pobieralo id podlogi (jesli sie da lub jest inna funkcja na to), natomiast dajac doadditem to tych dziur powstanie kilka jesli ktos pociagnie dzwignie kilka razy... Takze bede wdzieczny jak ktos pomoze



I pytanie trzecie. Chce wrzucic do spella warunek, ze if target=player then formula jest *2, jakby ktos wiedzial jak to ladnie przetlumaczyc maszynie to juz w ogole go pokocham.
 
Last edited:
Nie lepiej movement? Rozbijasz sciane, ona zmienia sie w popiół, schodzisz z popiołu i puff znowu stoi ściana. Chyba, że takie rozwiązanie nie pasuje do reszty questa.
 
tez mysl, ale z drugiej strony to gorzej troche wyglada + jesli jest team to kazdy z kolei musialby rozwalac co byloby troche utrudniajace zycie. Dzieki za podpowiedz z tym ograniczeniem zapetlenia, ale jak ktos ma lepszy patent to piszcie
 
To zrobic za sciana dziwgnie tworzaca teleport jednokrotnego uzytku.
 
Pomysly macie fajne, ale najlepszy bylby fix mojego skryptu bo w sumie o to pytalem a nie o to jak wykombinowac to inaczej ;)
 
Toz koob Ci dal.

Dal rozwiaznie a nie gotowca podanego na talerzy z chinskiej porcelany zdobionym recznie zlotem platyna i diamentami polozonym zaraz przy irydowo platynowych sztuccach
 
Back
Top Bottom