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

Creaturescripts New Teleport System!

Status
Zamknięty.

Kahras

Senior User
Dołączył
Sierpień 26, 2011
Posty
2714
Liczba reakcji
167
Wiek
26
Witam!

Wi?c tak pewna osoba da?a mi pewien pomys? na skrypt!
m.in:
iktf.jpg


Og?lnie go napisa?em i wam go udost?pniam.
Skrypt polega na tym i? jak wejdziemy w liste kana??w i wybierzemy dany kana? to nas przenosi na dan? pozycje przy czym mo?na ustawi? ile gp to kosztuje oraz oczywi?cie skrypt sprawdza czy gracz jest w PZ!
Autorem skryptu jestem ja wi?c zabraniam wam usuwania stopki.

W creaturescripts w login.lua dodajemy:
PHP:
registerCreatureEvent(cid, "Teleport")

teraz tworzymy plik o nazwie teleport.lua:
PHP:
-- Kahras // tibia.net.pl --
function onChannelJoin(cid, channelId, users)
local tabeleczka =	{
	[10] = {pos = {x = 1015, y = 1015, z = 7}, koszt = 0},
	[11] = {pos = {x = 1004, y = 1015, z = 7}, koszt = 1000}
	}
	for k, v in pairs(tabeleczka) do
	if (channelId == k) then
	if getTilePzInfo(getPlayerPosition(cid)) == false then
			doPlayerSendCancel(cid, "Musisz byc w PZcie!")
			doSendMagicEffect(getPlayerPosition(cid), 2)
			return false
			end
	if getPlayerMoney(cid) >= v.koszt then
		doPlayerRemoveMoney(cid, v.koszt)
		doTeleportThing(cid, v.pos)
		doSendMagicEffect(getPlayerPosition(cid), 10)
		else
		doPlayerSendCancel(cid, "Koszt wynosi "..v.koszt.."gp a ty posiadasz "..getPlayerMoney(cid).."gp - za taka cene cie nie przeniose!")
		doSendMagicEffect(getPlayerPosition(cid), 2)
	end
	end
	end
				return true
	end


A to dodajemy do creaturescripts.xml:
PHP:
	<event type="channeljoin" name="Teleport" event="script" value="teleport.lua"/>


Teraz w XML/channels.xml tworzymy 2 kana?y - mo?na wi?cej ale ?eby dzia?a?o tak jak kto? chce to musi w confingu ustawi?.

PHP:
	<channel id="10" name="Akt I"/>
	<channel id="11" name="Akt II"/>


My?l? ?e komu? si? to przyda.
Skrypt napisa?em w 100% sam bez ?adnych pomocy - chcia?bym podzi?kowa? Dantezowi i Mattowi za pomoc jak? mi wcze?niej udzielili dzi?ki nim umiem wi?cej.


Je?li macie jakie? propozycje co doda?/zmieni? pisa? w tym temacie ja postaram si? to wykona?!
KOMENTOWA?!

Pozdrawiam

Kahras
 
Odp: New Teleport System!

Czyli wychodzi na to, ?e mo?emy z ka?dej pozycji si? teleportowa??
Dodatkowo przy tych napisach s? tak?e inne kana?y?
W og?le nie tak jak powinno by?. :D

Na zdj?ciu kt?re ci da?em jest kratka, kt?ra wywo?uje okienko i pokazuje tylko "kana?y" s?u??ce do teleportowania.
By si? teleportowa? do danego miejsca musimy najpierw aktywowa? teleporter.
 
Odp: New Teleport System!

Z ka?dej <PZ> ale co to ci?zkiego zmieni?.
S? te? ine kana?y bo za chuja nie znam funkcji kt?ra by tworzy?a nowe okienko z niekt?rymi kana?ami a c++ odpada.
Co do teleportera to jest b.?atwe do robty wystarczy storage ;)
 
Ostatnia edycja:
Odp: New Teleport System!

SS jest z 7.6.
B?d? si? wy?wietla? inne kana?y i nie ma mo?liwo?ci, by wywo?a? to okno...

S? te? ine kana?y bo za chuja nie znam funkcji kt?ra by tworzy?a nowe okienko z niekt?rymi kana?ami a c++ odpada.
Bo takowej nie ma, trzeba sobie napisa?. Do tego od wersji oko?o 8.54 b?dzie si? zawsze wy?wietla? channel NPC's.
 
Odp: New Teleport System!

@UP no z 7.60 jest bo Rabbcio mi pokaza? a mi si? nie chcia?o robi? nowego ;p
 
Odp: New Teleport System!

Bardzo ciekawy skrypt na pewno nie jednemu sie przyda.
Ps. By ingerowa? w okienka trzeba bawic sie w c++ i otclient?
 
Ostatnia edycja:
Odp: New Teleport System!

W TFSie 0.2 mo?liwe ?e ci p?jdzie - og?lnie na tych Ariesach nigdy nie siedzia?em wi?c nie wiem czy maj? wszystkie funkcje - najlepszym rozwi?zaniem b?dzie jak to sprawdzisz a gdy nie b?dzie dzia?a? to napisz jakie errory wyskakuj? .
 
Odp: New Teleport System!

Zwr?cenie "false" na ko?cu skryptu powinno blokowa? mo?liwo?? otworzenia kana?u, a sam skrypt powinien zadzia?a?.
 
Odp: New Teleport System!

Zwr?cenie "false" na ko?cu skryptu powinno blokowa? mo?liwo?? otworzenia kana?u, a sam skrypt powinien zadzia?a?.
Hmm - nie wiem nie sprawdza?em jak b?d? mia? czas to sprawdz? przetestuje i dodam opcje ?eby sprawdza? czy gracz ma dane storage przyk?ad:
[lua][10] = {pos = {x = 1015, y = 1015, z = 7}, koszt = 0, storage = 1964}[/lua]

Gdy gracz nie b?dzie posiada? storage to go nie tepnie :)

KOMENTOWA? !
 
Odp: New Teleport System!

customowe okienka i cuda niewidy w otc pisze si? w lua (tylko troszk? si? r??ni od tego tfsowego) tak w gwoli ?cis?o?ci
 
Ostatnia edycja:
Odp: New Teleport System!

Do edycji OTclienta wystarcz? tylko umiej?tno?ci pisania w lua. W lua tam mo?esz wszystko zrobi?.

Szczerze m?wi?c nigdy nie mia?em OTclienta na PC i nie wiem czemu ale nie chce go mie?.
Pewnie jest tak jak m?wisz ale ja sobie to podaruje - nie ka?dy przecie? b?dzie z niego korzysta?.
 
Odp: New Teleport System!

Wszystko fajnie, tylko troch? mnie zdenerwowa?a przejrzysto?? kodu. Mo?e jestem troch? pedantyczny, ale lubi? mie? porz?dek w skrypcie;d.

[lua]
-- Kahras // tibia.net.pl --
local tabeleczka = {
[10] = {pos = {x = 1015, y = 1015, z = 7}, koszt = 0},
[11] = {pos = {x = 1004, y = 1015, z = 7}, koszt = 1000}
}

function onChannelJoin(cid, channelId, users)
local getTable = tabeleczka[channelId]
if(not getTable) then -- to tylko na wala zeby jbc nie sypalo bledami.
return true
end

if(not getTilePzInfo(getPlayerPosition(cid)) then
doPlayerSendCancel(cid, "Musisz byc w PZcie!")
doSendMagicEffect(getPlayerPosition(cid), 2)
return false
end

if(getPlayerMoney(cid) < getTable.koszt) then
doPlayerSendCancel(cid, "Koszt wynosi ".. getTable.koszt .."gp a ty posiadasz "..getPlayerMoney(cid).."gp - za taka cene cie nie przeniose!")
doSendMagicEffect(getPlayerPosition(cid), 2)
return false
end

doPlayerRemoveMoney(cid, getTable.koszt)
doTeleportThing(cid, getTable.pos)
doSendMagicEffect(getPlayerPosition(cid), 10)
return true
end
[/lua]
 
Ostatnia edycja:
Odp: New Teleport System!

A mia?em to poprawi? na dniach xD! No nic ale dzi?ki :)
 
Status
Zamknięty.
Do góry