kuba1418
Banned
- Dołączył
- Kwiecień 12, 2008
- Posty
- 178
- Liczba reakcji
- 17
Z g?ry pisz? ?e pomys? zaczerpn??em z tego tematu http://tibia.net.pl/kosz-biblioteki/75546-creaturescripts-death-portal-teleportuje-na-miejsce-smierci.html.
A wi?c postanowi?em udost?pni? jeden z mich skrypt?w kt?ry tworzy?em pod mojego ots'a ale projekt upad? z powodu braku czasu i ch?ci na dalsze tworzenie. Mam dla was NPC-ka kt?ry teleportuje gracza do jego ostatniego miejsca spoczynku za 100000 GP, mo?na si? przenosi? do ostatniego miejsca ?mierci tylko do 10 minut od ?mierci i nie mo?na si? przenosi? na NO LOGOUT TITLE. NPC raczej na servery FUN poniewa? po ?mierci mo?na przenosi? si? w r??ne miejsca np. questy typu ani chyba ?e damy tam no logout title. A wi?c skrypty:
data\npc\Charon.xml
W folderze NPC tworzymy plik Charon.xml i wklejamy tam to:
data\npc\script\portal.lua
Teraz tworzymy plik portal.lua w folderze script i wklejamy tam to:
data\creaturescripts\creaturescripts.xml
Wchodzimy teraz w folder creaturescripts w plik creaturescripts.xml i wklejamy tam t? linijk?:
Teraz w tym samym folderze wchodzimy w folder scripts i tworzymy plik death portal.lua
Je?li server by? online w trakcj? wklejania skrypt?w to mo?emy logn?? na GOD'a i u?y? komend do wczytania skrypt?w:
TESTOWANE NA TFS 0.4
Pozdrawiam Bzyku ;]
A wi?c postanowi?em udost?pni? jeden z mich skrypt?w kt?ry tworzy?em pod mojego ots'a ale projekt upad? z powodu braku czasu i ch?ci na dalsze tworzenie. Mam dla was NPC-ka kt?ry teleportuje gracza do jego ostatniego miejsca spoczynku za 100000 GP, mo?na si? przenosi? do ostatniego miejsca ?mierci tylko do 10 minut od ?mierci i nie mo?na si? przenosi? na NO LOGOUT TITLE. NPC raczej na servery FUN poniewa? po ?mierci mo?na przenosi? si? w r??ne miejsca np. questy typu ani chyba ?e damy tam no logout title. A wi?c skrypty:
data\npc\Charon.xml
W folderze NPC tworzymy plik Charon.xml i wklejamy tam to:
PHP:
<npc name="Charon" script="data/npc/scripts/portal.lua" walkinterval="2000" floorchange="0" access="5" level="1" maglevel="1">
<health now="150" max="150"/>
<look type="147" head="0" body="114" legs="114" feet="94" addons="1"/>
<parameters>
<parameter key="message_greet" value="Witaj |PLAYERNAME|. Jestem tu by pomoc ci odnales ostatnie miejscie twojej smierci moge cie tam {teleportowac} za drobna oplata." />
</parameters>
</npc>
Teraz tworzymy plik portal.lua w folderze script i wklejamy tam to:
PHP:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
local storage = 1
local x = getPlayerStorageValue(cid, storage)
local y = getPlayerStorageValue(cid, storage+1)
local z = getPlayerStorageValue(cid, storage+2)
if(msgcontains(msg, 'teleport') or msgcontains(msg, 'teleportowac') or msgcontains(msg, 'tp')) then
selfSay('Czy chcesz byc teleportowany do twojego ostatniego miejsca spoczynku za 10000 gold coins?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') or msgcontains(msg, 'tak')) and talkState[talkUser] == 1 then
if(getPlayerStorageValue(cid, storage+3) > os.time()) then
if(not getTileInfo({x=x, y=y, z=z}).nologout) then
if(x > -1 and y > -1) then
if(doPlayerRemoveMoney(cid, 100000) == TRUE) then
doTeleportThing(cid, {x=x, y=y, z=z})
doSendMagicEffect({x=x, y=y, z=z}, CONST_ME_TELEPORT)
else
selfSay('Przykro mi ale potrzebujesz 100000 gold coins aby byc teleportowany.', cid)
end
else
selfSay('Jeszcze nie umarles ani razu.', cid)
end
else
selfSay('Niestety ale nie mozesz byc teleportowany do tego miejsca.', cid)
end
else
selfSay('Mozesz byc teleportowany do twojego ostatniego miejsca smierci tylko po czasie mniejszym niz 10 minut.', cid)
end
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('Ok then.', cid)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Wchodzimy teraz w folder creaturescripts w plik creaturescripts.xml i wklejamy tam t? linijk?:
PHP:
<event type="death" name="Portal" event="script" value="death portal.lua" />
PHP:
function onDeath(cid, corpse, killer)
local storage = 1
local playerPos = getPlayerPosition(cid)
setPlayerStorageValue(cid, storage, playerPos.x)
setPlayerStorageValue(cid, storage+1, playerPos.y)
setPlayerStorageValue(cid, storage+2, playerPos.z)
setPlayerStorageValue(cid, storage+3, os.time() + 600)
return TRUE
end
lub zrestartowa? silnik./reload creaturescripts
/reload npc
TESTOWANE NA TFS 0.4
Pozdrawiam Bzyku ;]