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