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

[LUA] pomoc w zmiennych i coś a'la czekaj()

Dubler

PHP, LUA, C++
Joined
Aug 3, 2009
Messages
268
Reaction score
11
Location
Poland
Siema, potrzebuje pomocy w 2 sprawach:
#1.
Jak połączyć zmienną liczbową ze stringiem?
chodzi mi o to zeby zrobic cos takiego:
Code:
liczba = 1
ciąg = liczba .. " to"
doPlayersendCancel(cid, ciąg .. " liczba")
tylko ze wywala blad:
"attempt to perform arithmetic on a boolean value"

#2.
jak zrobić żeby kontynuacja wykonywania skryptu byla np po seknudzie?
coś a'la czekaj(1000) tylko troche mniej lamerskie :D
 
to samo
moze wkleje caly fragment skryptu:
Code:
function ktorepietro()
local ktorepietr = kp.z - getCreaturePosition(cid).z + floors -- wychodzi z tego minimum 1 albo 2 w tym przypadku i to jest 171 linijka
if ktorepietr == 1 then
local msg = "1st"
elseif ktorepietr == 2 then
local msg = "2nd"
else
local th = "th"
local msg = toNumber(ktorepietr) .. th
end
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg .. " floor")
end
blad:
[14:3:40.942] data/actions/scripts/winda.lua:onUse
[14:3:40.942] Description:
[14:3:40.942] data/actions/scripts/winda.lua:171: attempt to index a boolean value
[14:3:40.942] stack traceback:
[14:3:40.942] data/actions/scripts/winda.lua:171: in function 'ktorepietro'

---
a co do tego sleepa to bedzie to right?:
Code:
local clock = os.clock
function sleep(n)  -- seconds
  local t0 = clock()
  while clock() - t0 <= n do end
end
sleep(1) = jedna sekunda?
 
Last edited:
local ktorepietr = kp.z - getCreaturePosition(cid).z + floors -- wychodzi z tego minimum 1 albo 2 w tym przypadku i to jest 171 linijka
 
PHP:
function ktorepietro(kp, cid, floors)
	local k = kp.z - getCreaturePosition(cid).z + floors
	return (tonumber(k) >= 3) and tonumber(k).."th" or (tonumber(k) == 1) and "1st" or "2nd"
end

musisz przekazać funkcji zmienne:
  • kp (tablica, index [z] - int)
  • cid
  • floors(int)

bo funkcja nie mogła znaleźć tych danych i były one przekazane jako wartość logiczna - false.
 
Last edited:
@up
nie dziala:
Code:
[14:38:56.049] [Error - LuaInterface::loadFile] data/actions/scripts/winda.lua:172: 'end' expected (to close 'function' at line 170) near ')'
[14:38:56.049] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/winda.lua)
[14:38:56.049] data/actions/scripts/winda.lua:172: 'end' expected (to close 'function' at line 170) near ')'
btw. nie rozumiem za grosz jak to ustala ktora konkretnie wiadomosc ma wyslac?
 
przekopiowalem twoja funkcje lacznie z endem i nie mam pojecia gdzie go moze brakowac... i wyslalem tez priv
 
to są zmienne zawarte poza funkcją więc działają we wszystkich funkcjach w skrypcie

w tym momencie:
Code:
function ktorepietro(cid, kp, floors)
local ktorepietr = kp.z - getCreaturePosition(cid).z + floors
if ktorepietr == 1 then
local msg = "1st"
elseif ktorepietr == 2 then
local msg = "2nd"
else
local th = "th"
local msg = ktorepietr .. th
end
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg .. " floor")
end
data/actions/scripts/winda.lua:180: attempt to concatenate global 'msg' (a nil value)
 
Last edited by a moderator:
zrobilem tak:
Code:
function ktorepietro(cid, kp, floors)
local ktorepietr = kp.z - getCreaturePosition(cid).z + floors - 1
if ktorepietr == 1 then
local msg = "1st"
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg .. " floor")
elseif ktorepietr == 2 then
local msg = "2nd"
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg .. " floor")
else
msg = ktorepietr
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg .. " floor")
end
end
i sie z tym nie pierdole ;d
 
Back
Top