Recent Posts

Pages: [1] 2 3 ... 10
1
Questions and Answers / Re: Custom interface
« Last post by Wipe on Yesterday at 01:40:18 am »
Nop. Not widely know at least. There was at least three attempts, but they was never finished; if such tool exist, it's probably buried on some server forum thread with 5 views or used internally by devs.
2
Questions and Answers / Custom interface
« Last post by testerDEV on September 23, 2018, 05:58:13 pm »
Are there somewhere tutorials about client's interface UI elements and related pixels positions? Or are there any visual interface builder for fonline reloaded sdk?
3
Questions and Answers / Re: Can GMs see my password ?
« Last post by Kilgore on September 20, 2018, 09:46:08 pm »
Wipe is right, and I also encourage all players to use different passwords for any FOnline-related accounts (game characters, forums, wiki account etc.).
It's just common sense.
Same as don't share your passwords with anyone. If you need to share your characters with someone, then change your password first.
And don't download any "tools" posted by people you don't trust.

Also FYI: as for Reloaded, only one person has access to the server machine and that's me, and it has been always like that.
4
Questions and Answers / Re: Can GMs see my password ?
« Last post by NarrowMinded on September 19, 2018, 11:36:38 pm »
Thank you for your answer Wipe ! And also for your story :)
You have great skills.
5
FOnline Projects / Re: FOnline: The Last Stand
« Last post by Vinet on September 19, 2018, 08:41:14 pm »
The Last Stand Chronicles: Vault Administrator

( P.S. : Special thanks to Piggy for helping us in voice acting ).
6
Questions and Answers / Re: Can GMs see my password ?
« Last post by Wipe on September 19, 2018, 05:46:20 am »
Sometimes I want to use passwords that I use in real life
Don't. Neither me or anyone else is here to teach you about basic security common sense, so i'll just say "don't" and add a funny story below.

Both Reloaded and FOnline2 use FOnline version where character creation is handled mostly by client itself, and scripts have limited access to new character data. Password is not one of them. On top of that, only password hash is sent and saved by server, password itself stay only in client memory and .cache file. Other servers, using newer SDK, might have full access to all informations, as whole registration screen is handled by scripts. However, i don't know new SDK enough to be 100% sure of that.

But devil is in the details.
I worked once with server which, for some reason, logged every single line player typed in chat and sent back to server. There could be multiple reasons for that, so idea itself wasn't a problem. Problem was, that it also logged lines with ~commands (and less known ~~commands), such as ~changepassword and ~deleteself which must contain your password to work. If you know how, you could prevent that but risked permanent ban (server really didn't like third party tools, and without any your password could "leak" to server devs). I've added some guards in there to ignore lines with sensitive info, and heard from project leader it was simply overlooked.
That still didn't made password visible to GMs. Only people having access to server machine, or wherever this data was stored, could catch such "leak".

Some notes:
- When i worked servers back then, i always used my own third party tool for debugging and testing things, with main dev permission
- I was working on something related to client->server communication so i could catch unusual traffic
- I had full access to server codebase so i could check first-hand what's really going on

That's the end of funny story.
7
General Discussion / Re: render_iface(layer) function and arrays in rev 412
« Last post by devis on September 19, 2018, 05:21:16 am »
no, the arrays are safe inside of the render iface function up til version 710
8
Questions and Answers / Can GMs see my password ?
« Last post by NarrowMinded on September 19, 2018, 03:26:47 am »
Hello, I am playing FOnline reloaded and FOnline 2. Sometimes I want to use passwords that I use in real life( for example in Gmail). But I don't know if the GMs can see my password when I create my character...
9
Share Your Work / Re: 1080 Worldmap
« Last post by C4N on September 15, 2018, 08:17:42 pm »
Yes I already though about improving the placement of the console, instead of having it at the bottom, why not on the right pane? That would allow a larger history and then enlarge the worldmap view to the bottom.

But I'm too lazy to edit coordinates by hand, isn't there any tool to edit the placement with a GUI?

10
Questions and Answers / Re: 2 Questions about Worldmap
« Last post by C4N on September 15, 2018, 08:00:55 pm »
I concluded my research on this topic... sadly, it can't be done.
TL;DR for the curious, don't make maps bigger than 8192 px, a 100x100x81 setup is the biggest I could manage to do.

Point by point.
The biggest of the issues is that the client can't handle an image bigger than 8192px. Because of that, the biggest worldmap I managed to make was 8100x8100, thats 100x100x81.
The second  problem, as I already said, is that even if the server could handle a 100x100x500 setup, I have no way to test it because I can't compile a 50000x50000 png image (not even a white flat one), because of that, the biggest map I could manage to make the server load was 10000x10000, but the client would CTD trying to load it. Unless you are ok with a black map on the client side, I wouldn't recommend this.

As a final note, I wasn't able to make the server load this grid worldmap image idea I was talking about, this is what I tried so far (ugly coding):

_defines.fos
Code: [Select]
#define IMAGE_RELIEF01                             ( 0 ) // Global map relief
#define IMAGE_RELIEF02                             ( 1 )
#define IMAGE_RELIEF03                             ( 2 )
#define IMAGE_RELIEF04                             ( 3 )
#define IMAGE_RELIEF05                             ( 4 )
#define IMAGE_RELIEF06                             ( 5 )
#define IMAGE_RELIEF07                             ( 6 )
#define IMAGE_RELIEF08                             ( 7 )
#define IMAGE_RELIEF09                             ( 8 )
#define IMAGE_RELIEF10                             ( 9 )
#define IMAGE_RELIEF11                             ( 10 )
#define IMAGE_RELIEF12                             ( 11 )
#define IMAGE_RELIEF13                             ( 12 )
#define IMAGE_RELIEF14                             ( 13 )
#define IMAGE_RELIEF15                             ( 14 )
#define IMAGE_RELIEF16                             ( 15 )
#define IMAGE_RELIEF17                             ( 16 )
#define IMAGE_RELIEF18                             ( 17 )
#define IMAGE_RELIEF19                             ( 18 )
#define IMAGE_RELIEF20                             ( 19 )
#define IMAGE_RELIEF21                             ( 20 )
#define IMAGE_RELIEF22                             ( 21 )
#define IMAGE_RELIEF23                             ( 22 )
#define IMAGE_RELIEF24                             ( 23 )
#define IMAGE_RELIEF25                             ( 24 )

worldmap.fos
Code: [Select]
uint GetGlobalMapRelief( uint x, uint y )
{
    // Used low four bits of image
    // Zero is water
if(y<=10000) // Row 1
{
    if(x<=10000)
{
    return GetImageColor( IMAGE_RELIEF01, x, y ) & 0xF; // Column 1
}
else if(x<=20000)
{
    return GetImageColor( IMAGE_RELIEF02, x, y ) & 0xF; // Column 2
}
else if(x<=30000)
{
    return GetImageColor( IMAGE_RELIEF03, x, y ) & 0xF; // Column 3
}
else if(x<=40000)
{
    return GetImageColor( IMAGE_RELIEF04, x, y ) & 0xF; // Column 4
}
else
{
    return GetImageColor( IMAGE_RELIEF05, x, y ) & 0xF; // Column 5
}
}
else if(y<=20000) // Row 2
{
    if(x<=10000)
{
    return GetImageColor( IMAGE_RELIEF06, x, y ) & 0xF; // Column 1
}
else if(x<=20000)
{
    return GetImageColor( IMAGE_RELIEF07, x, y ) & 0xF; // Column 2
}
else if(x<=30000)
{
    return GetImageColor( IMAGE_RELIEF08, x, y ) & 0xF; // Column 3
}
else if(x<=40000)
{
    return GetImageColor( IMAGE_RELIEF09, x, y ) & 0xF; // Column 4
}
else
{
    return GetImageColor( IMAGE_RELIEF10, x, y ) & 0xF; // Column 5
}
}
else if(y<=30000) // Row 3
{
    if(x<=10000)
{
    return GetImageColor( IMAGE_RELIEF11, x, y ) & 0xF; // Column 1
}
else if(x<=20000)
{
    return GetImageColor( IMAGE_RELIEF12, x, y ) & 0xF; // Column 2
}
else if(x<=30000)
{
    return GetImageColor( IMAGE_RELIEF13, x, y ) & 0xF; // Column 3
}
else if(x<=40000)
{
    return GetImageColor( IMAGE_RELIEF14, x, y ) & 0xF; // Column 4
}
else
{
    return GetImageColor( IMAGE_RELIEF15, x, y ) & 0xF; // Column 5
}
}
else if(y<=40000) // Row 4
{
    if(x<=10000)
{
    return GetImageColor( IMAGE_RELIEF16, x, y ) & 0xF; // Column 1
}
else if(x<=20000)
{
    return GetImageColor( IMAGE_RELIEF17, x, y ) & 0xF; // Column 2
}
else if(x<=30000)
{
    return GetImageColor( IMAGE_RELIEF18, x, y ) & 0xF; // Column 3
}
else if(x<=40000)
{
    return GetImageColor( IMAGE_RELIEF19, x, y ) & 0xF; // Column 4
}
else
{
    return GetImageColor( IMAGE_RELIEF20, x, y ) & 0xF; // Column 5
}
}
else // Row 5
{
    if(x<=10000)
{
    return GetImageColor( IMAGE_RELIEF21, x, y ) & 0xF; // Column 1
}
else if(x<=20000)
{
    return GetImageColor( IMAGE_RELIEF22, x, y ) & 0xF; // Column 2
}
else if(x<=30000)
{
    return GetImageColor( IMAGE_RELIEF23, x, y ) & 0xF; // Column 3
}
else if(x<=40000)
{
    return GetImageColor( IMAGE_RELIEF24, x, y ) & 0xF; // Column 4
}
else
{
    return GetImageColor( IMAGE_RELIEF25, x, y ) & 0xF; // Column 5
}
}
}
.
.
.
.
.
.
.
void WorldmapInit()
{
    LoadImage( IMAGE_RELIEF01, "BIGASM01.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF02, "BIGASM02.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF03, "BIGASM03.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF04, "BIGASM04.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF05, "BIGASM05.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF06, "BIGASM06.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF07, "BIGASM07.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF08, "BIGASM08.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF09, "BIGASM09.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF10, "BIGASM10.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF11, "BIGASM11.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF12, "BIGASM12.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF13, "BIGASM13.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF14, "BIGASM14.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF15, "BIGASM15.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF16, "BIGASM16.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF17, "BIGASM17.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF18, "BIGASM18.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF19, "BIGASM19.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF20, "BIGASM20.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF21, "BIGASM21.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF22, "BIGASM22.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF23, "BIGASM23.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF24, "BIGASM24.png", 1, PT_SERVER_MAPS );
LoadImage( IMAGE_RELIEF25, "BIGASM25.png", 1, PT_SERVER_MAPS );
    for(uint i = 0, j = Worldmap.length(); i < j; i++)
        @Worldmap[i] = CZone(i % ZONE_COUNT_X, i / ZONE_COUNT_X);

// Groups be here
    LoadWorldmapGroups("maps/groups.fowm");
    Log("Encounter groups loaded.");
 
RecolorLocations();
    Log("Locations Colored.");

    LoadWorldmapTables("maps/worldmap.focwm");
    Log("Worldmap loaded.");
    //LoadGroupsQuantities();
}

config.fos
Code: [Select]
    __GlobalMapWidth            = 100;     // Maximum 100
    __GlobalMapHeight           = 100;     // Maximum 100
    __GlobalMapZoneLength       = 500;     // Maximum 500

worldmap_h.fos
Code: [Select]
#define ZONE_COUNT_X                       (100)
#define ZONE_COUNT_Y                       (100)
#define ZONE_LENGTH                        (500)

The result was the server loading only the first image, so the player only was able to move inside a 10000x10000 worldmap (black clientside of course).
I'm dropping any further effort on this, since the client can't handle large image setups (not even sliced little images), I don't think it's worth the trouble.
Pages: [1] 2 3 ... 10