|
You last visited: Today at 05:45
Advertisement
Spieler in gewissem Bereich wegporten?
Discussion on Spieler in gewissem Bereich wegporten? within the Metin2 Private Server forum part of the Metin2 category.
05/01/2014, 23:59
|
#1
|
elite*gold: 500
Join Date: Nov 2011
Posts: 173
Received Thanks: 4
|
Spieler in gewissem Bereich wegporten?
Hallo,
ich wollt mal fragen, ob es möglich ist, Spieler per Quest von einer bestimmten Position auf der Karte wegzuporten.
Beispiel: Ein Spieler tötet einen Boss mitten auf der Karte. Wenn dieser stirbt soll man nach 10Sekunden wieder zum Kartenanfang geportet werden, aber nur alle die beim Boss stehen (so ca. 100m Radius).
Geht das?
|
|
|
05/02/2014, 08:09
|
#2
|
elite*gold: 2
Join Date: Jun 2013
Posts: 1,063
Received Thanks: 1,725
|
Ja das geht.
|
|
|
05/02/2014, 10:57
|
#3
|
elite*gold: 39
Join Date: Jun 2009
Posts: 500
Received Thanks: 212
|
Ich glaube nicht, dass das komplett per Quest geht (kenne keinen Command dafür). Wenn doch lerne ich gerne dazu (: Allerdings @ProfessorEnter: wenn es geht, dann würde er sicherlich gerne auch wissen wie ;P
Ich glaube, du musst dafür etwas an der Source rumschrauben, nicht sehr aufwendig - wenn du sie verwendest kann ich es dir auch gerne machen aber ich nehme an du benutzt eine pre-compiled Rev. Damit wird es - schätze ich - nicht gehen (außer mit Lib / Dif).
Kind Regards
|
|
|
05/02/2014, 14:08
|
#4
|
elite*gold: 2
Join Date: Jun 2013
Posts: 1,063
Received Thanks: 1,725
|
Quote:
Originally Posted by .HC'Destrox
Ich glaube nicht, dass das komplett per Quest geht (kenne keinen Command dafür). Wenn doch lerne ich gerne dazu (: Allerdings @ProfessorEnter: wenn es geht, dann würde er sicherlich gerne auch wissen wie ;P
Ich glaube, du musst dafür etwas an der Source rumschrauben, nicht sehr aufwendig - wenn du sie verwendest kann ich es dir auch gerne machen aber ich nehme an du benutzt eine pre-compiled Rev. Damit wird es - schätze ich - nicht gehen (außer mit Lib / Dif).
Kind Regards
|
Naja die Frage ('Geht das?') hat mich iwie herausgefordert ne kurze Antwort zu geben. xD
Ich dachte es mir jetzt so.
Wenn der Mob gekillt wird, dann werden die Koordinaten des jeweiligen Spielers der es getoetet hat in einer globalen Tabelle oder gameflags gespeichert und nach c.a. 3 Sekunden wieder mit nem Servertimer gesaeubert. Per looptimer jede Sekunde wird auf dem mapindex immer geschaut ob sich grad wer in dem Koordinatenradius befindet wo der Mob gekillt wurde und dann zurueck geportet. Oder hab ich was vergessen?
Aber ich bin ueberzeugt das du es per Lib besser loest. :P
|
|
|
05/02/2014, 14:13
|
#5
|
elite*gold: 39
Join Date: Jun 2009
Posts: 500
Received Thanks: 212
|
Quote:
wird auf dem mapindex immer geschaut ob sich grad wer in dem Koordinatenradius befindet wo der Mob gekillt wurde
|
Öhem, und wie willst du das per Quest machen xD dafür müsstest du noch ne globale liste aller spieler + koords machen und die jedesmal durchgehen.... aber das wär ziemlich **** xD mitm Source ginge es gut, per Only-Quest kaum bis gar net ^^
Kind Regards
|
|
|
05/02/2014, 14:16
|
#6
|
elite*gold: 2
Join Date: Jun 2013
Posts: 1,063
Received Thanks: 1,725
|
Mh.
Ich weiß ja nicht wieviele Bosse er auf die Map machen will, aber wenn es nur ein paar sind, dann:
PHP Code:
{ [48] = { -- mapindex [101] = {x,y}, -- mobvnum und koords }, }
Dann nur durchgehen ob er sich auf dem Mapindex befindet und der Mob Koords hat, wenn ja pruefen ob er sich drin befindet und dann wegporten.
So **** find ich das nicht
|
|
|
05/02/2014, 16:45
|
#7
|
elite*gold: 0
Join Date: Jan 2009
Posts: 815
Received Thanks: 199
|
joa
wie wäre die Lösung wenn man das Monster tötet alle in der Gruppe geportet werden?
oder:
Mach die Map als dungeon bzw. das Monster in ein Dungeon und alle die in der Gruppe sind oder auf der Map (dungeon) sind werden dann geportet wenn es gekillt wird.
ist alles dann mit einer Quest lösbar.
|
|
|
05/02/2014, 16:55
|
#8
|
elite*gold: 0
Join Date: May 2014
Posts: 12
Received Thanks: 0
|
wieso denkt ihr so kompliziert?
gibt doch warp_all_in_area_to_area
|
|
|
05/02/2014, 18:19
|
#9
|
elite*gold: 500
Join Date: Nov 2011
Posts: 173
Received Thanks: 4
|
Also ich bekomm das iwie ned gecoded :/
Die Funktion "warp_all_in_area_to_area" hat meine mir keine Zuweisung in der questlib.lua .. find auch bei google nichts dazu
|
|
|
05/02/2014, 19:06
|
#10
|
elite*gold: 0
Join Date: May 2014
Posts: 12
Received Thanks: 0
|
Die funktion ist auch in der game deklariert
Nicht alle funktionen sind in der questlib
|
|
|
05/02/2014, 19:19
|
#11
|
elite*gold: 0
Join Date: Dec 2008
Posts: 2,825
Received Thanks: 1,538
|
Quote:
Originally Posted by Thadvithey
Die funktion ist auch in der game deklariert
Nicht alle funktionen sind in der questlib
|
Dann erläutere doch mal bitte die Funktion.
Würde mich jetzt auch mal interessieren.
|
|
|
05/02/2014, 20:05
|
#12
|
elite*gold: 0
Join Date: May 2013
Posts: 1,266
Received Thanks: 627
|
Quote:
Originally Posted by .Colossus.
Dann erläutere doch mal bitte die Funktion.
Würde mich jetzt auch mal interessieren.
|
PHP Code:
int _warp_all_in_area_to_area( lua_State* L ) { int from_x1 = lua_tonumber(L, 1); int from_y1 = lua_tonumber(L, 2); int from_x2 = lua_tonumber(L, 3); int from_y2 = lua_tonumber(L, 4); int to_x1 = lua_tonumber(L, 5); int to_y1 = lua_tonumber(L, 6); int to_x2 = lua_tonumber(L, 7); int to_y2 = lua_tonumber(L, 8); const int mapIndex = SECTREE_MANAGER::instance().GetMapIndex( from_x1, from_y1 ); if (0 == mapIndex) { sys_err("_warp_all_in_area_to_area: cannot get a map index with (%u, %u)", from_x1, from_y1); lua_pushnumber(L, 0); return 1; } LPSECTREE_MAP pSectree = SECTREE_MANAGER::instance().GetMap(mapIndex); if (NULL != pSectree) { FWarpAllInAreaToArea func(from_x1, from_y1, from_x2, from_y2, to_x1, to_y1, to_x2, to_y2); pSectree->for_each(func); lua_pushnumber(L, func.warpCount); sys_log(0, "_warp_all_in_area_to_area: %u character warp", func.warpCount); return 1; } else { lua_pushnumber(L, 0); sys_err("_warp_all_in_area_to_area: no sectree"); return 1; } }
Das.
Warpt eben alles im Rechteck X1, x2,y1,y2 zu nem anderen eck..
|
|
|
05/03/2014, 01:16
|
#13
|
elite*gold: 39
Join Date: Jun 2009
Posts: 500
Received Thanks: 212
|
Thadvithey, joa deine Lösung würde gehen - wie gesagt, kannte keine funk dazu - die funk is auch mir neu^^
@Prototype:
Syntax: warp_all_in_area_to_area(from_x1, from_y1, from_x2, from_y2, to_x1, to_y1, to_x2, to_y2)
Beispielaufruf: warp_all_in_area_to_area(pc.get_x() - 100, pc.get_y() - 100, pc.get_x() + 100, pc.get_y() + 100, ziel_x, ziel_y, ziel_x, ziel_y)
€dit: Oh lol, der Post von NTX?! wurde bei mir ned angezeigt xD na denn^^
Kind Regards
|
|
|
05/03/2014, 23:08
|
#14
|
elite*gold: 500
Join Date: Nov 2011
Posts: 173
Received Thanks: 4
|
Achso
Kannst du mir vllt ein Beispiel geben wie man die Anwendet?
|
|
|
05/04/2014, 00:30
|
#15
|
elite*gold: 39
Join Date: Jun 2009
Posts: 500
Received Thanks: 212
|
Habe ich doch
Quote:
warp_all_in_area_to_area(pc.get_x() - 100, pc.get_y() - 100, pc.get_x() + 100, pc.get_y() + 100, ziel_x, ziel_y, ziel_x, ziel_y)
|
wenn du z.b. nach Map1 Blau porten willst musst du ziel_x und ziel_y mit den stadt-koordinaten von map1 blau (globale koordinaten) ersetzen.
Kind Regards
|
|
|
All times are GMT +2. The time now is 05:45.
|
|