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

NPC Dający storage po upływie czasu (szukam kilka kodów)

Nerkoerko

Banned User
Joined
Feb 28, 2009
Messages
402
Reaction score
5
Location
Polska
Witam chodzi mi o to że np oddaje item barbarian outfit np i Ajax daje mi axe ale jak zrobić żeby trzeba było odczekać xx czasu np 15 min inaczej pisze że Sorry ale odwiedź mnie za 15 min.

if msgcontains(msg, "lizard leather") and getPlayerStorageValue(cid, 302) == 34 then
if getPlayerItemCount(cid,5876) >= 50 then
npcHandler:say("You bring 50 lizard leather?", cid)
setPlayerStorageValue(cid, 302, 35)
else
npcHandler:say("Sorry, but You don\'t have lizard leathers !", cid)
setPlayerStorageValue(cid, 302, 34)
end
end
talkState[talkUser] = 18

if msgcontains(msg, "yes") and getPlayerStorageValue(cid, 302) == 35 and talkState[talkUser] == 18 then
if doPlayerRemoveItem(cid,5876,50) then
npcHandler:say("Ah! All stuff there. I will start making axes now. Come later and ask me for axe.", cid)
setPlayerStorageValue(cid, 302, 36)
end
end
talkState[talkUser] = 19

Tutaj przydała by się jakaś blokada na pisanie właśnie tego axe nie wiem jak to zrobić może dodać
pod yes osobnego storage który dostanie się po 15 minutach? Tylko pytanie jak


if msgcontains(msg, "axe") and getPlayerStorageValue(cid, 302) == 36 and talkState[talkUser] == 19 then
npcHandler:say("Axe is done! For you. Take. Wear like me.", cid)
doSendMagicEffect(getCreaturePosition(cid), 13)
setPlayerStorageValue(cid, 302, 37)
doPlayerAddOutfit(cid, 143, 1)
doPlayerAddOutfit(cid, 147, 1)
talkState[talkUser] = 20
 
Użyj strorage. jeżeli storage = 1 to npcsay 'Poczekaj' else npcsay 'Here you go.'
:)
 
Nie rozumiem npc pisze że potrzebuje czasu znaczy że mam przyjśc później na zrobienie axe tylko że nie mam blokady czasowej ter 15 min tylko odrazu po wpisaniu yes daje mi setPlayerStorageValue(cid, 302, 36) (pozwala mi napisac do npc axe) a jak napisze axe to mi ją da odrazu bez czekania a mi własnie chodzi żeby trzeba bylo czekać :((

Fajnie by było gdyby ktoś mi podał kodzik że np np odpowiada tylko w soboty w dany dzień Hm jeśli się tak wg da

Znalazłem jakieś funkcje if(strg < os.time) ale nie wiem jak to powinno wyglądać ;p
 
Last edited:
Daj coś jak exhausted...

Przerób to sobie:


Code:
local exhaustionInSeconds = 4
       local storage = 34235
	if(exhaustion.check(cid, storage) == true) then
	doPlayerSendCancel(cid, "Exhaustion!")
    return 0
	end
	exhaustion.set(cid, storage, exhaustionInSeconds)


Np. robiąc to tak:

exhaustion.set(cid, storage, exhaustionInSeconds)

i potem

Code:
if(exhaustion.check(cid, storage) == true) then
	selfSay(cid, "Przepraszam, ale jeszcze nie skonczylem robic dla Ciebie stroju, zglos sie pozniej")
	else
	.. daje addon itp.
end


//edit


Co do soboty to da się, zrób to np. używając tego:
Code:
function getDayName()
							local days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}
							return days[os.date("*t")["wday"]]
						end


Wgl ciekawy projekt widzę robisz, robię podobny od jakoś tak 1.5 roku, odpisz na prv. ;p
 
Mam jeszcze kilka pytań możecie dać na moim kodzie ten przykład z dniem albo exhaustem bo troche tego nie ogarniam.
A druga rzecz to mape 8.6 nie otworze map edytorem 1.1.0 tylko 2.1+ jakoś tak nie pamiętam dokładnie wersji edytora, da się jakoś zmienić z 8,6 na 8.54 żebym map edytorem 1.1.0 czy tam 1.1.10 moze tak o, ją otworzyć? Potrzebuje kilka kawałków map np skrót po. Tylko że jak zmienię z 8.6 na 8.54 w 2.1 edytorze a potem otwieram w starszej wersji to wyskakuje 3 wyrazowy błąd nie pamiętam dokładnie jaki coś client 8 jakos tak coś z cyfrą 8 na końcu. A gdy w nowszej wersji edytora swoją mapę otwieram to całe zao mi się rozpiernicza.

-----
Heh łatwiej było by bez stiringów :D
 
Nie otwieraj nowej mapy w starym edytorze tylko importuj nową mapę do starego edytora, automatycznie wszystkie nieistniejące itemy poprostu nie zaimportuje i wywali błędy, a resztę ładnie zaimportuje :)
 
A możesz mi jeszcze powiedzieć o co chodzi z importem x i y? to są współrzędne gdzie wklei mape czy tego od jakiego miejsca wklei mape z tej nowszej wersji bo troche nie rozumiem
 
masz mapę np. 1000 kratek na 1000 no nie?
zaczyna się ona w punkcie 0,0

potem masz np. mapę docelową co ma 32k kratek na 33k kratek

i chcesz wkleić te wyspę na poyzcji 18k, 16k

to dajesz w imporcie x i y = 18k, 16k


jeśli jednak masz 2 real mapy i jedną chcesz uzupełnić drugą to x i y daj = 0
 
Back
Top