• logo_cipsoft
    Nowe serwery zostały otwarte 19 Lut 2025:
    Noctalia (Open PvP) Ignitera (Open PvP) us_logo Xybra (Open PvP)

NPC Death Portal - teleportuje na miejsce ?mierci

Status
Zamknięty.

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:
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>
data\npc\script\portal.lua
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())
data\creaturescripts\creaturescripts.xml
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" />
Teraz w tym samym folderze wchodzimy w folder scripts i tworzymy plik 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
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:
/reload creaturescripts
/reload npc
lub zrestartowa? silnik.
TESTOWANE NA TFS 0.4
Pozdrawiam Bzyku ;]
 
Odp: Death Portal - teleportuje na miejsce ?mierci

Robi? tak jak ma by? i mi to nie dzia?a :(( prosz? o pomoc !
 
Odp: Death Portal - teleportuje na miejsce ?mierci

skrypt ciekawy, ale czy dzia?a bo pan UP pisze ?e nie ??
 
Odp: Death Portal - teleportuje na miejsce ?mierci

@lexon747
To mo?e nam powiesz jaki wywala b??d w silniku i jaki w og?le masz silnik ?
@Stasiorex
Najlepiej przetestowa? to si? przekonasz a jak nie dzia?a to napiszesz jaki ci b??d wywala.
 
Odp: Death Portal - teleportuje na miejsce ?mierci

Skrypt bardzo ?adny ale po co za?mieca? ots skryptami? nie mo?na poprostu tp ustawi?? ?atwiejsze i o wiele bardziej skuteczne. :/ ...
Repucik leci : D ++++++
 
Status
Zamknięty.
Do góry