Register for your free account! | Forgot your password?

You last visited: Today at 10:32

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Lua-Funktion] pc.warp_to_pc

Discussion on [Lua-Funktion] pc.warp_to_pc within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Reply
 
Old   #1
 
ProfiFighter's Avatar
 
elite*gold: 31
Join Date: May 2009
Posts: 2,011
Received Thanks: 1,389
Exclamation [Lua-Funktion] pc.warp_to_pc

Hi, liebe Community.
Ich hatte mal wieder langweile, deshalb habe ich mir die Funktion "pc.warp_to_pc" erstellt.
Wer's nüztlich findet kann mir ja ein Thanks dalassen .
So, das muss in die "questlib.lua":
Code:
pc.warp_to_pc = function(name)
	if name == pc.get_name() then
		return -1
	end
	local vid = find_pc_by_name(name)
	if vid == 0 then
		return -2
	end
	local pc_is_gm = pc.is_gm()
	local s = pc.select(vid)
	if pc.is_gm() and not is_test_server() and not pc_is_gm then
		pc.select(s)
		return -3
	end
	local pc_x = pc.get_x()
	local pc_y = pc.get_y()
	pc.select(s)
	local target_x = pc_x*100
	local target_y = (pc_y-2)*100
	test_chat(target_x..target_y)
	pc.warp(target_x, target_y)
	return 0
end

pc.transfer = function(name)
	if name == pc.get_name() then
		return -1
	end
	local vid = find_pc_by_name(name)
	if vid == 0 then
		return -2
	end
	local pc_is_gm = pc.is_gm()
	local pc_x = pc.get_x()
	local pc_y = pc.get_y()
	local s = pc.select(vid)
	if pc.is_gm() and not is_test_server() and not pc_is_gm then
		pc.select(s)
		return -3
	end
	local target_x = pc_x*100
	local target_y = (pc_y-2)*100
	test_chat(target_x..target_y)
	pc.warp(target_x, target_y)
	pc.select(s)
	return 0
end

game.transfer_pc_to_pc = function(name1, name2)
	if name1 == name2 then
		return -1
	end
	local vid
	local s
	local pc_name = pc.get_name()
	if name2 != pc_name then
		vid = find_pc_by_name(name2)
		if vid == 0 then
			return -2
		end
		s = pc.select(vid)
	end
	local pc_x = pc.get_x()
	local pc_y = pc.get_y()
	if name1 == pc_name then
		pc.select(s)
	else
		vid = find_pc_by_name(name1)
		if vid == 0 then
			if name2 != pc_name then
				pc.select(s)
			end
			return -3
		end
		if name2 == pc_name then
			s = pc.select(vid)
		else
			pc.select(vid)
		end
	end
	local target_x = pc_x*100
	local target_y = (pc_y-2)*100
	test_chat(target_x..target_y)
	pc.warp(target_x, target_y)
	if name1 != pc_name then
		pc.select(s)
	end
	return 0
end

--Zusatz
function say_item_name(vnum) say_title(item_name(vnum or item.get_vnum())..":") end
function say_npc_name(vnum) say_title(mob_name(vnum or npc.get_race())..":") end
Das in "quest_functions":
Code:
pc.warp_to_pc
pc.transfer
game.transfer_pc_to_pc
say_item_name
say_npc_name
Und um die Funktionen zu benutzen:
Code:
say_item_name()
say("Zu wem wollen Sie sich teleportieren?[ENTER]")
local name = input()
if name != "" then
	say_item_name()
	say("Achtung, ich teleportiere dich jetzt.[ENTER]")
	wait()
	--pc.teleport(name)
	pc.warp_to_pc(name)
end
Code:
say_item_name()
say("Wer soll teleportiert werden?[ENTER]")
local name = input()
if name != "" then
	say_item_name()
	say("Achtung, ich teleportiere jetzt.[ENTER]")
	wait()
	pc.transfer(name)
end
Code:
say_item_name()
say("Wer soll teleportiert werden?[ENTER]")
local name1 = input()
if name1 != "" then
	say_item_name()
	say("Zu wem soll er teleportiert werden?[ENTER]")
	local name2 = input()
	if name2 != "" then
		say_item_name()
		say("Achtung, ich teleportiere jetzt.[ENTER]")
		wait()
		game.transfer_pc_to_pc(name1, name2)
	end
end
Naja, wenn ihr möchtet, dann könnt ihr euch auch so eine "pc.transfer" Funktion oder so machen.
ProfiFighter is offline  
Thanks
26 Users
Old 03/24/2012, 17:39   #2
 
WhiteCollar's Avatar
 
elite*gold: 31
Join Date: Mar 2010
Posts: 1,440
Received Thanks: 752
sieht gut aus ;D
danke ^^
WhiteCollar is offline  
Old 03/24/2012, 18:04   #3
 
ProfiFighter's Avatar
 
elite*gold: 31
Join Date: May 2009
Posts: 2,011
Received Thanks: 1,389
Soll ja auch gut aussehen .
PS: Hab' ein paar Sachen verbessert xD
ProfiFighter is offline  
Old 03/24/2012, 18:06   #4

 
IgorGlock's Avatar
 
elite*gold: 1862
Join Date: Jan 2009
Posts: 3,725
Received Thanks: 7,671
Danke an YMIR für die "find_pc_by_name(name)" Funktion
IgorGlock is offline  
Old 03/24/2012, 18:38   #5
 
ProfiFighter's Avatar
 
elite*gold: 31
Join Date: May 2009
Posts: 2,011
Received Thanks: 1,389
Quote:
Originally Posted by IgorGlock View Post
Danke an YMIR für die "find_pc_by_name(name)" Funktion
Ja .
So, eine neue Funktion hinzugefügt - Ich aber werde es der Sicherheit halber komplizierter machen .
ProfiFighter is offline  
Old 03/24/2012, 19:57   #6
 
elite*gold: 5
Join Date: Oct 2010
Posts: 1,692
Received Thanks: 1,772
PHP Code:
local name input()
pc.teleport(name
Sowas würde auch gehen.
DasKuchen is offline  
Old 03/24/2012, 20:18   #7
 
ProfiFighter's Avatar
 
elite*gold: 31
Join Date: May 2009
Posts: 2,011
Received Thanks: 1,389
Ja, aber mit dem Grundgerüst meiner Funktion kann man auch gleich eine "transfer"-Funktion und was weiß ich nicht erstellen, außerdem habe ich die andere noch nicht getestet.
Quote:
Originally Posted by DasKuchen View Post
PHP Code:
local name input()
pc.teleport(name
Sowas würde auch gehen.
Ich habe sie gerade ausprobiert. Das Resultat ist, dass ich direkt in die Spieler hineingeportet werde... Naja, da finde ich meine anpassbare Funktion besser .
ProfiFighter is offline  
Thanks
2 Users
Old 03/24/2012, 22:19   #8
 
elite*gold: 0
Join Date: Jan 2012
Posts: 35
Received Thanks: 1
Danke
TorKS is offline  
Old 03/24/2012, 22:42   #9
 
ProfiFighter's Avatar
 
elite*gold: 31
Join Date: May 2009
Posts: 2,011
Received Thanks: 1,389
Kein Problem ^^
So, wieder ein neues Update draußen :P.
ProfiFighter is offline  
Thanks
2 Users
Old 03/25/2012, 10:21   #10
 
elite*gold: 0
Join Date: Jan 2012
Posts: 35
Received Thanks: 1
The pc.transfer(name) function looklike the pc.warp_to_pc(name)
TorKS is offline  
Old 03/25/2012, 11:54   #11
 
elite*gold: 0
Join Date: Oct 2010
Posts: 73
Received Thanks: 2
Gibt's bereits von Mijago in der Questlib und ist auch kein einzelner Thread wert..
Tofus is offline  
Old 03/25/2012, 16:25   #12
 
elite*gold: 0
Join Date: Jan 2011
Posts: 1,297
Received Thanks: 1,295
Ich habe sie mal einsatz bereit gemacht

PHP Code:
quest tele begin
    state start begin
        when login begin
            set_state
(information)
        
end
    end
    state information begin 
        when letter begin 
            send_letter
("Teleportation zu Spielern"
        
end
        when button 
or info begin
            say_item_name
()
            
say("Zu wem wollen Sie sich teleportieren?[ENTER]")
            
local name input()
            if 
name != "" then
            say_item_name
()
            
say("Achtung, ich teleportiere dich jetzt.[ENTER]")
            
wait()
            --
pc.teleport(name)
            
pc.warp_to_pc(name)
            
end
        end
    end
end 
He3o Sippel is offline  
Old 03/25/2012, 21:10   #13
 
ProfiFighter's Avatar
 
elite*gold: 31
Join Date: May 2009
Posts: 2,011
Received Thanks: 1,389
Quote:
Originally Posted by .Sippel View Post
Ich habe sie mal einsatz bereit gemacht

PHP Code:
quest tele begin
    state start begin
        when login begin
            set_state
(information)
        
end
    end
    state information begin 
        when letter begin 
            send_letter
("Teleportation zu Spielern"
        
end
        when button 
or info begin
            say_item_name
()
            
say("Zu wem wollen Sie sich teleportieren?[ENTER]")
            
local name input()
            if 
name != "" then
            say_item_name
()
            
say("Achtung, ich teleportiere dich jetzt.[ENTER]")
            
wait()
            --
pc.teleport(name)
            
pc.warp_to_pc(name)
            
end
        end
    end
end 
Nice, aber wenn du kein Item, sondern einen Brief benutzt, kannste dir das "say_item_name()" eigt. sparen .

Quote:
Originally Posted by Tofus View Post
Gibt's bereits von Mijago in der Questlib und ist auch kein einzelner Thread wert..
Also, wie ich meine Funktionen pub. gemacht hatte habe ich die Funktionen "pc.warp_to(vid)" und "pc.trans(vid)" noch nicht gesehen, außerdem beziehe ich mich auf musics und nicht Mijagos Kenntnisse (ja "control.quest" ist geil xD). Naja, habe auch noch ein paar extra Funktionen drinne, die Mijago nicht hat, aber wenn ihr meine Funktionen nicht wollt, dann kann ich meinen Thread ja löschen .
ProfiFighter is offline  
Old 03/25/2012, 21:14   #14
 
iYoshix3's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 1,264
Received Thanks: 2,019
Du könntest noch die Errors in die Quest miteinbinden.
Z.b. wenn er -1,-2 oder sonstiges returned.

Ansonnsten ist es gut aufgebaut.

Mfg
iYoshix3 is offline  
Thanks
1 User
Old 03/25/2012, 21:17   #15
 
ProfiFighter's Avatar
 
elite*gold: 31
Join Date: May 2009
Posts: 2,011
Received Thanks: 1,389
Quote:
Originally Posted by Yoshix3 View Post
Du könntest noch die Errors in die Quest miteinbinden.
Z.b. wenn er -1,-2 oder sonstiges returned.

Ansonnsten ist es gut aufgebaut.

Mfg
Wollte ich ja eigt. tuen, da ich auf IO- oder Chat-Funktionen in Metin2 verzichten wollte, aber dann kam mir das mit den Return-Werten etwas falsch vor... Naja, wer will kann es mit Return-Werten machen .
ProfiFighter is offline  
Reply


Similar Threads Similar Threads
Hilfe bei Send Funktion mit Stop Funktion
04/02/2011 - AutoIt - 11 Replies
Hallo Elitepvpers ich habe ein Problem und Mein Problem ist das mein Text einfach weiter schreibt wenn ich mit HotKey verwende... gib es keine Funktion das der Text einmal kommt und nicht wenn man einmal die HotKey das er 10 min das selbe schreibt :confused:
Udo bot gg-funktion
02/13/2011 - elite*gold Trading - 4 Replies
Hallo Leute darkorbitfreaks und fans^^! Hab ne frage und zwar wollte ich wissen ob es irgendwann im UDO bot ne gg funktion geben wird...??? Danke im Vorraus GG bot: :handsdown::handsdown::handsdown:
D3D Funktion
12/28/2010 - WarRock Hacks, Bots, Cheats & Exploits - 5 Replies
No Fog: if (nofog) { m_pD3Ddev->SetRenderState(D3DRS_FOGENABLE, false); } WireFrame: if (m_Stride == 44) m_pD3Ddev->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME); }
[C++]Funktion einer Klasse in einer anderen Funktion der Klasse verwenden, aber wie?
07/25/2010 - C/C++ - 3 Replies
Mein Problem ist eigentlich recht simpel und die Lösung wahrscheinlich auch. Da ich bisher fast 0 mit Klassen am Hut hatte, wollte ich mich doch mit dem Thema anfreunden und hatte gleich angefangen: int test::Funktion2() { int temp; cin>>temp; return temp; }
Mob Log Funktion!
11/03/2008 - Metin2 - 7 Replies
Hi Leute, habe eine wichtige Frage. Wieso werde ich immer nach 1mal aura oder 1mal sk gekickt? Ihc werde sowohl bei hoher serverauslastung als auch bei niedriger gekickt ennt einer einen Tipp wie ich kicks umgehen kann???:confused:



All times are GMT +1. The time now is 10:32.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.