|
You last visited: Today at 18:06
Advertisement
[HELP]Restricting Teleport/Summon
Discussion on [HELP]Restricting Teleport/Summon within the Shaiya Private Server forum part of the Shaiya category.
09/11/2011, 23:50
|
#1
|
elite*gold: 0
Join Date: Mar 2011
Posts: 212
Received Thanks: 264
|
[HELP]Restricting Teleport/Summon
I've recently started altering maps to allow for several new additions to a server. Including a dedicated Monster Madness Map with set spawns of select mobs, as well as a functional goddess battle map.
I have manged to get everything working exactly as desired, however, I am at a loss with one key thing that could ruin the map. Teleport stones and Summon/Move Runes.
The main objection to this is to stop players from moving themselves to the maps, outside of an event period in which they were allowed/supposed to be in said maps.
I am looking for a way to restrict use of these items on these maps. I had initially assumed it would be an edit to the Map.ini settings for the zones that I had previously overlooked, however, it would seem I am wrong.
Though, admittedly, being wrong in this case pleased me, as now I get to learn something new, and it reassured me that my original understanding of the Map.ini settings were correct, after all.
My last thought is that an edit within ps_game.exe would need to be made. This is still a realm of learning for me, and I was hoping that anyone with a bit of an idea or experience with this same restriction could point me in the proper direction.
I am not looking to have the work done for me (though I certainly would not refuse as long as it was explained =p). However, a nudge in the proper direction would be greatly appreciated.
Thank you in advance for anyone with any helpful insight.
-III
|
|
|
09/12/2011, 00:08
|
#2
|
elite*gold: 150
Join Date: Apr 2010
Posts: 9,739
Received Thanks: 8,981
|
I have never done something like this idea, yet, if I had to start trying to do it, I would start by checking the behaviour of the Instances (I.E Oblivion Insula) as you are not allowed to move to someone who is already in there nor summon your party members.
By checking the behaviour of these kind of maps, you must be able to determine which changes you would need to do to forbid the usage of summoning stones, as you would be able to open the map just on the time you want it to be open
|
|
|
09/12/2011, 00:20
|
#3
|
elite*gold: 0
Join Date: Mar 2011
Posts: 212
Received Thanks: 264
|
Quote:
Originally Posted by JohnHeatz
I have never done something like this idea, yet, if I had to start trying to do it, I would start by checking the behaviour of the Instances (I.E Oblivion Insula) as you are not allowed to move to someone who is already in there nor summon your party members.
By checking the behaviour of these kind of maps, you must be able to determine which changes you would need to do to forbid the usage of summoning stones, as you would be able to open the map just on the time you want it to be open
|
This is exactly what I had done, originally. However, I am not looking to make the map a party instance base such as QC/QS/OI/etc.
More of what I am looking for is to treat these maps such as that of Regnum. You can move to others, as well as summon them to you, but not unless they are already on the map.
I have never checked the Regnum maps to see if teleport stones work from outside of the zone, however, I would assume not, if the summons/moves do not either.
I am determined to figure this out, but **** is it irritating, lol. It just seems like something that should be simple, and I am just missing it.
Thank you for the reply, it did spur another idea or two. Mean time, I am just going to keep digging around, I guess. Any other responses or ideas are always greatly appreciated.
|
|
|
09/12/2011, 08:56
|
#4
|
elite*gold: 0
Join Date: Sep 2011
Posts: 140
Received Thanks: 147
|
from my experiences, the only way to prevent summon/movement runes is if its an instance.
for teleport runes you can just make it a dungeon.
|
|
|
09/12/2011, 15:04
|
#5
|
elite*gold: 0
Join Date: Aug 2010
Posts: 241
Received Thanks: 255
|
Go to this SP : usp_Save_Char_SavePoint
Put a check there so that your MapIDs' cannot be stored.
|
|
|
09/12/2011, 23:24
|
#6
|
elite*gold: 0
Join Date: Mar 2011
Posts: 212
Received Thanks: 264
|
Quote:
Originally Posted by zargon05
Go to this SP : usp_Save_Char_SavePoint
Put a check there so that your MapIDs' cannot be stored.
|
Grr, every alteration I have made to this SP has allowed the saving of points within the maps. I will continue to play with this, perhaps I am simply not adding the check properly. Though, I don't see too many other ways I can alter it.
Thank you for the suggestion, regardless of whether I get it to work or not. If nothing else, I guess I will have learned a few more ways not to do it, lol.
|
|
|
09/13/2011, 08:19
|
#7
|
elite*gold: 0
Join Date: Jul 2009
Posts: 408
Received Thanks: 180
|
Havnt tried doing this myself yet, but i will have to do it soon, to accomodate such maps as you have to my own server.. but maybe something like this
(example)
Code:
IF @MapID = 100
SET @MapID = 0
Sorry, i'm still new with SQL and writing queries is not my thing yet.. but the idea behind it (i think) would be.. If "player" saves point in "map 100" then point reverts and saves as "map 0" instead.
Maybe you can get it to work like that, or someone else has more info on it :P best of luck to you. And i like that bit you added at the end...
Quote:
|
If nothing else, I guess I will have learned a few more ways not to do it, lol.
|
|
|
|
09/13/2011, 08:58
|
#8
|
elite*gold: 0
Join Date: Sep 2010
Posts: 520
Received Thanks: 1,289
|
Err, did you try..
Code:
USE [PS_GameData]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Proc [dbo].[usp_Save_Char_SavePoint]
@CharID int,
@Slot tinyint,
@MapID smallint,
@PosX real,
@PosY real,
@PosZ real
AS
SET NOCOUNT ON
IF @MapID IN (18,30,0)
BEGIN
RETURN -1
END
UPDATE CharSavePoint SET MapID=@MapID, PosX=@PosX, PosY=@PosY, PosZ=@PosZ
WHERE CharID=@CharID AND Slot=@Slot
IF( @@ERROR = 0 )
BEGIN
RETURN 1
END
ELSE
BEGIN
RETURN -1
END
SET NOCOUNT OFF
*Edit* I did a bit of testing.. you can ignore my help I guess, it seems the only time this SP is called, is when the character logs out. I guess the values are stored in memory until then...
|
|
|
09/15/2011, 19:19
|
#9
|
elite*gold: 20
Join Date: Jun 2009
Posts: 790
Received Thanks: 2,729
|
this will only help if the player logs out.
To prevent a summon/tele/movement, you have to write your own code for it. the server doesn't restrict them, the client does. In the client, there is a lookup table that stores if a map has a limit on it or not. I wont give out the info cause it's an exploit that someone can use to develop a hack.
tip for finding the table:
goto a map that prevents the use of the object and then use CE to find your current mapID. Once found and on a map the prevents the objects use, monitor what accesses the mapID then try to use the object. the code will show up. View the code and look for the table lookup address and you'll have your solution.
I wont help further cause of the issues a hack like this can cause if the server admins don't know how to prevent the use server side. Which I believe only Exile and ShaiyaX has.
|
|
|
09/18/2011, 05:02
|
#10
|
elite*gold: 0
Join Date: Mar 2011
Posts: 212
Received Thanks: 264
|
EDIT: I had missed the part in Cryptic's response about changing it to a dungeon. When I pop this in the dev forum, I'll give credit where it is due.
ty for the replies, however, I did think of a much simpler and quicker method that I am surprised I hadn't thought of.
It is amazing how easily some simply things can go overlooked. Even more amusing is where and when these things slap you in the face, for example, in the shower...
My solution: Simply changing the Map.ini file to list the map as a dungeon rather than a field. Granted, this wont cure the summon issue, but it does cure the tele issue.
The only issue here is if you make the mistake of letting players on a map before this is done. This is an issue because if they already have a tele point set for that map, after the change, it will still allow the move. However, if no points for said map are currently stored for that player, it does restrict the use of it.
If you have made this mistake, you can clear the points for this map in the database prior to implementation.
It is a small fix, but I will post this as a release shortly so that anyone else who decides they want to do the same can find it easier.
Specifically for lilpro: thanks for your reply. It has led me on to a few other ideas for some other projects as well.
Always much appreciated.
-III
|
|
|
 |
Similar Threads
|
[Fix Release] Onekill / Unsichtbar / Summon / Teleport uvm. fixxen!!! HOT
07/12/2011 - Flyff PServer Guides & Releases - 24 Replies
Heyho
Da es mir zwar nicht wirklich gut geht (bissl krank :() aber ich doch an die güte des Menschens glaube hier ein fixx für den "onekill/unsichtbar/summon/teleport" bug.
1. Ihr geht zuerst in die DPSrvr.cpp
2. Ihr sucht folgende Funktionen:
CDPSrvr::OnModifyMode
CDPSrvr::OnSummonPlayer
CDPSrvr::OnTeleportPlayer
|
need help with eud summon
06/04/2011 - EO PServer Hosting - 2 Replies
for some reason i can't find the 6 and 7th eud summon stone but yet i found a 12 eud summon stone why did people skip 6,7,8,9,10,11 eud summon ?
can some one help me find or make a query for 6,and 7 eud summon stone?
|
Summon bug?
08/12/2008 - RF Online - 5 Replies
I saw some ppl today exping their summons at vc,they hit the monsters but monsters didnt hit their summons...How they do that?i learned they sent somehow their animus under the world,its a geodata bug,but how i do it?
|
No CP summon/ranged and longbow summon hack
07/15/2008 - General Gaming Discussion - 11 Replies
- no cp and nak (2 in 1): combine No CP summon and longbow summon hack
- no ranged: like b4
|
All times are GMT +1. The time now is 18:07.
|
|