Nie tylko o Tibii i OTS...
Znalaz³em nowy system wiêzienia w talkactions i chcia³bym aby ujrza³ ¶wiat³o dzienne wiêc przedstawiam ten projekt
Zasada dzia³ania?
np.
Kod:
!kara "nick, za co
Mamy do dyspozycji ³atw± do edycji tabelê kar
Najpierw skrypt a potem wyt³umaczê.
Tworzymy plik jail.lua o tre¶ci:
Kod:
Spoiler:
local system = {
-- Kary
["przeklinanie"] = {minuty = 10, obrazenia = false},
["wyzywanie"] = {minuty = 5, obrazenia = true},
["kradziez"] = {minuty = 25, obrazenia = true},
["atakowanie potwora"] = {minuty = 20, obrazenia = false},
["oszukiwanie"] = {minuty = 20, obrazenia = false}
}
local cele = {
-- Pozycje cel
{x=1076,y=1120,z=7},
{x=1089,y=1113,z=7}
}
-- Pozycja temple
local temple = {x=1080,y=1120,z=6}
-- Mno¿niki dla obra¿eñ lvl * mno¿nik
local mnozniki = {4,4.6}
local function uwolnij(x)
doTeleportThing(x.cid, temple)
doSendMagicEffect(temple, CONST_ME_TELEPORT)
doPlayerSendTextMessage(x.cid,22,'Wychodzisz na wolnosc! Uwazaj na siebie!')
setPlayerStorageValue(x.cid, 7000, 0)
print('Gracz '..getPlayerName(x.cid)..' wychodzi na wolnosc!')
return 1
end
local function kara(x)
if(os.time() < getPlayerStorageValue(x.cid, 7000)) then
local lvl = getPlayerLevel(x.cid)
doTargetCombatHealth(0, x.cid, COMBAT_PHYSICALDAMAGE, -(mnozniki[1]*lvl), -(mnozniki[2]*lvl), CONST_ME_NONE)
doPlayerSendTextMessage(x.cid,22,'Lepiej dbac o siebie, kolejny cios moze byc mocniejszy!')
local x = {cid = x.cid}
return addEvent(kara, 30*1000, x)
else
return 1
end
end
function onSay(cid, words, param)
if (words == '!kara') and (param ~= "") then
local szukaj = string.find(param, ',')
local kogo = string.sub(param, 0, szukaj-1)
local za_co = string.sub(param, szukaj+2, string.len(param))
if (system[za_co] ~= nil) then
if (getPlayerAccess(cid) >= 3) then
local kto = getPlayerByName(kogo)
local gdzie = math.random(1, table.maxn(cele))
local x = {cid = kto}
addEvent(uwolnij, system[za_co].minuty*60*1000, x)
doTeleportThing(kto, cele[gdzie])
doSendMagicEffect(getPlayerPosition(kto), CONST_ME_POFF)
doSendMagicEffect(cele[gdzie], CONST_ME_TELEPORT)
print('Gracz '..getPlayerName(cid)..' wsadzil gracza '..kogo..' do wiezienia na '..system[za_co].minuty..' minut!')
doPlayerSendTextMessage(kto,22,'Zostales posadzony w wiezieniu przez gracza '..getPlayerName(cid)..' za '..za_co..' na '..system[za_co].minuty..' minut!')
if (system[za_co].obrazenia ~= false) then
local x = {cid = kto}
doPlayerRemoveItem(kto, 2173, getPlayerItemCount(kto, 2173))
addEvent(kara, 15*1000, x)
setPlayerStorageValue(kto, 7000, os.time() + system[za_co].minuty * 60)
doPlayerSendTextMessage(kto,22,'Zagramy w pewna gre, reguly sa proste, wygraj albo zgin!')
end
else
doPlayerSendTextMessage(cid,22,'Brak wymaganego poziomu uprawnien!')
end
else
doPlayerSendTextMessage(cid,22,'Niestety niema takiego wykroczenia w tabeli!')
end
end
return 1
end
I do talkactions.xml dodajemy:
Spoiler:
<talkaction words="!kara" script="jail.lua" />
Gdy napiszemy np.
Spoiler:
!kara "name, przeklinanie
Gracz name zostanie wrzucony do wiêzienia (do jednej z wylosowanych cel) i dodatkowo je¿eli przy karze jest obra¿enia = true bêd± zadawane obra¿enia temu graczowi.
Edycja tabeli z karami:
Spoiler:
["przeklinanie"] = {minuty = 10, obrazenia = false},
przeklinanie - nazwa kary (za co siedzi)
minuty - na ile minut siedzi
obra¿enia - czy maj± byæ zadawane obra¿enia (false/true)
Dodawanie cel, jest proste do tablicy cele dodajemy linijki:
Kod:
{x=,y=,z=},
Oczywi¶cie uzupe³niaj±c o wspó³rzêdne
Pozycja gdzie teleportuje gracza po odczekaniu kary:
Kod:
Spoiler:
local temple = {x=,y=,z=}
Nazwa³em j± temple bo u mnie do temple leci gracz
Teraz mno¿niki obra¿eñ:
Spoiler:
local mnozniki = {4,4.6}
Obra¿enia s± liczone tak:
lvl * mno¿nik
np.
Kod:
lvl * 4
lub
Kod:
lvl 4.6
I warto¶æ jest losowana miêdzy jednym a drugim
Uwaga! W celach musi byæ strefa no-logout
Pozdrawiam.
Mam nadzieje ze sie spodoba
Ostatnio edytowany przez mamba223 (2008-10-21 06:20:27)
Offline
Super super tylko na spoilery popraw. I jak dobrze pamiêtam by³ ju¿ temat na forum?Na sto % by³y o wiêzieniach
Offline
Widzialem to chyba bylo na forum ale tak jak @UP daj to do spoilerow jak poprawsz dam +
Offline
nie dzia³a mi to ;/
Offline
Super skrypt z wiêzieniami widzia³em tu wiele tematów ale tego jescze "NIE"
Pozdrawiam
Offline
Skrypt nawet fajny , ;p 8/10
Offline