fodev.net
Other => FOnline:2238 Forum => Archives => Suggestions => Topic started by: blahblah on February 22, 2012, 06:54:42 am
-
As posted in another thread, here is my suggestion:
Add a simple system where you click on the player (like the karma buttons) and select "thief" and if you have this person selected as a thief (you can only have 1 person at a time, or maybe 2. Selecting a new person makes the last person stop being selected) then he will always fail stealing because your character carefully observes him.
With this solution, thieves coming in by surprise can seal from you, but if there is an annoying guy running around you for 2 minutes he cannot do anything because you EXPECT him to steal so you prevent it. Simple and doesn't break real stealing, only the annoying troll-thieves who prevent you from trading.
-
1 person at a time, or maybe 2.
Fast relog.
-
Actually not soo stupid idea
-
Not too bad...
-
Fast relog.
This is not supposed to stop thieves. This is supposed to stop people who follow you around town for minutes, preventing you from trading because you KNOW this person will steal from you the moment you stop to trade, so you move around and they follow you and it's stupid. Thieves should be about attacking from surprise, not following you with obvious intentions.
-
We need an upvote button for these forums, I give you +1 good sir
-
It's been suggested before, not to say it's a bad suggestion just that it wasn't implemented.
I'd add that if they leave your line of sight their thief status should be cleared.
-
It is not so hard to implement:
in client_main.fos, right after strings
// Additional description
if(lookType==CRITTER_LOOK_FULL)
{
include string
if (cr.IsPlayer()) RunServerScriptUnsafe("unsafe@unsafe_CheckedOut", cr.Id, 0, 0, null, null);
that will run server script every time you look at player with "binoculars" (standart action from context menu)
then in some module where devs keeping unsafe scripts for example in unsafe.fos we making function
void unsafe_CheckedOut(Critter& player, int crId, int param1, int param2, string@ param3, int[]@ param4)
{
player.ParamBase[ST_VAR6]=player.Param[ST_VAR5];
player.ParamBase[ST_VAR5]=crId;
}
that will write Id of last two chars that player was checking
then in main.fos (if thieft script still there) we making additional line
if(thief.Id == cr.Param[ST_VAR5] || thief.Id == cr.Param[ST_VAR6]) success=false;
that will auto falure stealing if thief char was one of two "remembered" by victum
so basicaly thats all needed for such feature, but it is better to make new variables instead of using ST_VAR5 and ST_VAR6
-
Thank you z0m2h14 for explaining how to do it. If it was a deleted suggestion then I'm sad. It's a very simple solution that affects only thieves who are obnoxious and doesn't affect people who plan ahead.