|
You last visited: Today at 06:48
Advertisement
[Release] World Conquer Source v2
Discussion on [Release] World Conquer Source v2 within the CO2 PServer Guides & Releases forum part of the CO2 Private Server category.
03/02/2020, 03:27
|
#211
|
elite*gold: 0
Join Date: Jul 2009
Posts: 943
Received Thanks: 408
|
Quote:
Originally Posted by Gii0
I have another issue about items, every time i drop an item and relogin the item in my inventory is still there and also the item that i droped. if i pick the item the item is duplicated.. please i need help for this bug ...
BTW! thanks pintinho12 for the help.
already fix the last issues. this new problem is hard for me cause i dont know where to start I'm just a noob programmer. 
|
Never had this issue even in a live server.
|
|
|
03/05/2020, 19:40
|
#212
|
elite*gold: 0
Join Date: Jul 2009
Posts: 943
Received Thanks: 408
|
Problems that may cause the server to freeze:
Delete characters is bugged 
Disconnecting inside of the Training Ground
For those who didn't experience any issue or couldn't find out what could cause the freeze, there's it. How to fix? Debug
|
|
|
03/05/2020, 20:18
|
#213
|
elite*gold: 12
Join Date: Jul 2011
Posts: 8,282
Received Thanks: 4,190
|
Quote:
Originally Posted by pintinho12
Problems that may cause the server to freeze:
Delete characters is bugged 
Disconnecting inside of the Training Ground
For those who didn't experience any issue or couldn't find out what could cause the freeze, there's it. How to fix? Debug
|
Sorry for calling you out, but if you expect the community to help fix the source or fix it for themselves without maintaining the original source, then I recommend hosting this on GitLab or GitHub. That way, someone can make a pull request with a fix and less questions can be asked about this. The more we can promote contributions the better... And reduce the amount of unchecked / no feedback derivative works.
|
|
|
03/05/2020, 21:13
|
#214
|
elite*gold: 0
Join Date: Jul 2009
Posts: 943
Received Thanks: 408
|
Quote:
Originally Posted by Spirited
Sorry for calling you out, but if you expect the community to help fix the source or fix it for themselves without maintaining the original source, then I recommend hosting this on GitLab or GitHub. That way, someone can make a pull request with a fix and less questions can be asked about this. The more we can promote contributions the better... And reduce the amount of unchecked / no feedback derivative works.
|
I wont fix it and I aint requesting for help to fix it. I'm just telling because I noticed that the download amount has increased on the last weeks and this may be dangerous if people starts to use this as a source in production.
Also, if they want to use this in production they need to know how to fix the issues that are not hard at all, otherwise they'll reach an amount of players and the server will auto destruct.
That source worked very well at that time, I did the work I had to do and now people just need to fix small issues. I have the v3 in a private Git environment and the v4 which I'm doing in C++ too.
That's all.
|
|
|
03/05/2020, 22:07
|
#215
|
elite*gold: 12
Join Date: Jul 2011
Posts: 8,282
Received Thanks: 4,190
|
Quote:
Originally Posted by pintinho12
I wont fix it and I aint requesting for help to fix it. I'm just telling because I noticed that the download amount has increased on the last weeks and this may be dangerous if people starts to use this as a source in production.
Also, if they want to use this in production they need to know how to fix the issues that are not hard at all, otherwise they'll reach an amount of players and the server will auto destruct.
That source worked very well at that time, I did the work I had to do and now people just need to fix small issues. I have the v3 in a private Git environment and the v4 which I'm doing in C++ too.
That's all.
|
All I'm saying is I don't like how these sources get posted and go unsupported with no way for others to maintain it publicly. It'd be nice if this was posted to a git repo.
|
|
|
03/06/2020, 00:11
|
#216
|
elite*gold: 0
Join Date: Jul 2009
Posts: 943
Received Thanks: 408
|
Quote:
Originally Posted by Spirited
All I'm saying is I don't like how these sources get posted and go unsupported with no way for others to maintain it publicly. It'd be nice if this was posted to a git repo.
|
Hummm, I'll update it when I have some time then. Anyway, when my C++ source starts to work I'll release the 5808 (C#) version anyway. I'll just stick with this post, but the 5808 will be on the gitlab repo.
|
|
|
03/20/2020, 17:34
|
#217
|
elite*gold: 0
Join Date: Jan 2006
Posts: 8
Received Thanks: 1
|
Guys, i keep getting this error.
i tried 4 different client versions, all gave me this error, so i tried to change loaders, tried the conquer loader v5.2, and the CID loader, both gave me the same error, anyone have any idea how to solve?
*EDIT
Holy sheet guys, im retarded, i was trying to login with older clients like 5065, so sorry.
will keep this reply, for the idiots like me.
|
|
|
03/20/2020, 20:53
|
#218
|
elite*gold: 0
Join Date: Nov 2008
Posts: 63
Received Thanks: 11
|
Quote:
Originally Posted by Gii0
I have another issue about items, every time i drop an item and relogin the item in my inventory is still there and also the item that i droped. if i pick the item the item is duplicated.. please i need help for this bug ...
BTW! thanks pintinho12 for the help.
already fix the last issues. this new problem is hard for me cause i dont know where to start I'm just a noob programmer. 
|
This problem with item drop is real. I have this same issue but not found the problem and not have time for repair this  .
|
|
|
03/20/2020, 23:43
|
#219
|
elite*gold: 0
Join Date: Jul 2009
Posts: 943
Received Thanks: 408
|
Quote:
Originally Posted by darkhc
This problem with item drop is real. I have this same issue but not found the problem and not have time for repair this  .
|
The system does use a ORM which will not let you save twice the same ID if you're creating something (will throw you a BIG exception), if you delete something on the database and try to save it on the server, it will throw a BIG exception in the console and when you drop something it just changes the item position to 254, which means it's on the floor, so if you save it by any mean it will be recorded in the floor and wont come back to your inventory.
Tho, you might do a check when initializating items that if the item is in the floor, you delete it. But even if it's on the floor and you enter the game, it will save the item back in your inventory, but the DB object is still the same, so it won't be saved twice.
You can debug when you DROP the item and when you PICK UP the item, if you see something wrong it might not be hard to fix. But as I said, this server has gone live with over 150 players online and never gave me this item issue.
Thus, you SHOULD NOT change any server record while the server is live. Tables that are updated when the server is live MUST be EXCLUSIVELY updated by the server, or you'll have items not saving, characters not saving properly and etc.
If you need to do anything outside of the game world, make it communicate on the network and the server itself make the processing.
I will download the 5103 source and check the processing.
----------------------
|
|
|
03/22/2020, 01:51
|
#220
|
elite*gold: 0
Join Date: Nov 2008
Posts: 63
Received Thanks: 11
|
Quote:
Originally Posted by pintinho12
The system does use a ORM which will not let you save twice the same ID if you're creating something (will throw you a BIG exception), if you delete something on the database and try to save it on the server, it will throw a BIG exception in the console and when you drop something it just changes the item position to 254, which means it's on the floor, so if you save it by any mean it will be recorded in the floor and wont come back to your inventory.
Tho, you might do a check when initializating items that if the item is in the floor, you delete it. But even if it's on the floor and you enter the game, it will save the item back in your inventory, but the DB object is still the same, so it won't be saved twice.
You can debug when you DROP the item and when you PICK UP the item, if you see something wrong it might not be hard to fix. But as I said, this server has gone live with over 150 players online and never gave me this item issue.
Thus, you SHOULD NOT change any server record while the server is live. Tables that are updated when the server is live MUST be EXCLUSIVELY updated by the server, or you'll have items not saving, characters not saving properly and etc.
If you need to do anything outside of the game world, make it communicate on the network and the server itself make the processing.
I will download the 5103 source and check the processing.
----------------------

|
Thanks, i appreciate your answer as soon as I have free time I will try it
|
|
|
03/22/2020, 09:56
|
#221
|
elite*gold: 0
Join Date: Jul 2011
Posts: 96
Received Thanks: 76
|
Hello,
First of all, thanks for the release. I got it to work and I think I fixed the issue with generators. I just check size of the Generator dictionary and if it's going to be full, I reload them (similar to how reloadgen command works), not sure if it's the most elegant or efficient way though.
Although I still experience server freeze issue and have no idea what's causing it. It happens even in local server while I'm all alone. I tried some stuff with the tip you've given (amount of threads accessing players dictionary) but yeah couldn't really solve this problem. Been wondering if you could find the solution for this and if you did, can you give me some tips to fix it? Note that I know some c# but haven't touched anything CO related in like 10 years.
|
|
|
03/22/2020, 16:25
|
#222
|
elite*gold: 0
Join Date: Jul 2009
Posts: 943
Received Thanks: 408
|
Quote:
Originally Posted by Latyos
Hello,
First of all, thanks for the release. I got it to work and I think I fixed the issue with generators. I just check size of the Generator dictionary and if it's going to be full, I reload them (similar to how reloadgen command works), not sure if it's the most elegant or efficient way though.
|
For this, I created this thing:
Code:
public sealed class IdentityGenerator
{
private readonly ConcurrentQueue<long> m_cqidQueue = new ConcurrentQueue<long>();
private readonly long m_idMax = uint.MaxValue;
private readonly long m_idMin;
private long m_idNext;
public IdentityGenerator(long min, long max)
{
m_idNext = m_idMin = min;
m_idMax = max;
for (long i = m_idMin; i <= m_idMax; i++)
{
m_cqidQueue.Enqueue(i);
}
m_idNext = m_idMax + 1;
}
public long GetNextIdentity
{
get
{
if (!m_cqidQueue.IsEmpty)
{
if (m_cqidQueue.TryDequeue(out long result))
return result;
return m_idNext < m_idMax ? Interlocked.Increment(ref m_idNext) : 0;
}
return m_idNext < m_idMax ? Interlocked.Increment(ref m_idNext) : 0;
}
}
public void ReturnIdentity(long id)
{
if (!m_cqidQueue.Contains(id))
m_cqidQueue.Enqueue(id);
}
}
When destroying the object remember to give the ID back to the object.
Quote:
|
Although I still experience server freeze issue and have no idea what's causing it. It happens even in local server while I'm all alone. I tried some stuff with the tip you've given (amount of threads accessing players dictionary) but yeah couldn't really solve this problem. Been wondering if you could find the solution for this and if you did, can you give me some tips to fix it? Note that I know some c# but haven't touched anything CO related in like 10 years.
|
Hummm, you know, I have changed a few structures on my new source, which I doesn't think that it's good enough but at least I am not experiencing the freeze anymore, at least not with ~50 players.
The server was broking down when:
Issue 1: Someone was getting out of TG when using a skill or attacking the stake.
Solution 1: Cancel the skill before teleporting. (Server side)
Issue 2: When deleting a character.
Solution 2: The problem was in the deletion algorithm, I don't quite remember it, but it was throwing infinite exceptions everytime the thread tried to iterate through players and it wouldn't continue iterating.
There's a bug with dynamic NPCs, just fix the Name offset handler so it wont resize the packet until over 1024 size.
Code:
public string Name
{
get => ReadByte(36) != 0 ? ReadString(ReadByte(37), 38) : null;
set
{
WriteByte(1, 36);
WriteStringWithLength(value, 37);
}
}
(Change the offsets to 5517, because they're 5808)
|
|
|
03/22/2020, 17:18
|
#223
|
elite*gold: 0
Join Date: Jul 2011
Posts: 96
Received Thanks: 76
|
Quote:
Originally Posted by pintinho12
For this, I created this thing:
Code:
public sealed class IdentityGenerator
{
private readonly ConcurrentQueue<long> m_cqidQueue = new ConcurrentQueue<long>();
private readonly long m_idMax = uint.MaxValue;
private readonly long m_idMin;
private long m_idNext;
public IdentityGenerator(long min, long max)
{
m_idNext = m_idMin = min;
m_idMax = max;
for (long i = m_idMin; i <= m_idMax; i++)
{
m_cqidQueue.Enqueue(i);
}
m_idNext = m_idMax + 1;
}
public long GetNextIdentity
{
get
{
if (!m_cqidQueue.IsEmpty)
{
if (m_cqidQueue.TryDequeue(out long result))
return result;
return m_idNext < m_idMax ? Interlocked.Increment(ref m_idNext) : 0;
}
return m_idNext < m_idMax ? Interlocked.Increment(ref m_idNext) : 0;
}
}
public void ReturnIdentity(long id)
{
if (!m_cqidQueue.Contains(id))
m_cqidQueue.Enqueue(id);
}
}
When destroying the object remember to give the ID back to the object.
Hummm, you know, I have changed a few structures on my new source, which I doesn't think that it's good enough but at least I am not experiencing the freeze anymore, at least not with ~50 players.
The server was broking down when:
Issue 1: Someone was getting out of TG when using a skill or attacking the stake.
Solution 1: Cancel the skill before teleporting. (Server side)
Issue 2: When deleting a character.
Solution 2: The problem was in the deletion algorithm, I don't quite remember it, but it was throwing infinite exceptions everytime the thread tried to iterate through players and it wouldn't continue iterating.
There's a bug with dynamic NPCs, just fix the Name offset handler so it wont resize the packet until over 1024 size.
Code:
public string Name
{
get => ReadByte(36) != 0 ? ReadString(ReadByte(37), 38) : null;
set
{
WriteByte(1, 36);
WriteStringWithLength(value, 37);
}
}
(Change the offsets to 5517, because they're 5808)
|
Thanks for the answer. I will experiment more, definitely use your code as a reference point and get back to you if I manage fix it. I'm really having fun playing with it lol.
|
|
|
03/26/2020, 19:29
|
#224
|
elite*gold: 0
Join Date: Nov 2008
Posts: 63
Received Thanks: 11
|
Quote:
Originally Posted by pintinho12
The system does use a ORM which will not let you save twice the same ID if you're creating something (will throw you a BIG exception), if you delete something on the database and try to save it on the server, it will throw a BIG exception in the console and when you drop something it just changes the item position to 254, which means it's on the floor, so if you save it by any mean it will be recorded in the floor and wont come back to your inventory.
Tho, you might do a check when initializating items that if the item is in the floor, you delete it. But even if it's on the floor and you enter the game, it will save the item back in your inventory, but the DB object is still the same, so it won't be saved twice.
You can debug when you DROP the item and when you PICK UP the item, if you see something wrong it might not be hard to fix. But as I said, this server has gone live with over 150 players online and never gave me this item issue.
Thus, you SHOULD NOT change any server record while the server is live. Tables that are updated when the server is live MUST be EXCLUSIVELY updated by the server, or you'll have items not saving, characters not saving properly and etc.
If you need to do anything outside of the game world, make it communicate on the network and the server itself make the processing.
I will download the 5103 source and check the processing.
----------------------

|
I have been testing and when throwing the object and disconnecting and reconnecting it gives me the object again and the one I have thrown is still there
|
|
|
03/26/2020, 23:02
|
#225
|
elite*gold: 0
Join Date: Jul 2009
Posts: 943
Received Thanks: 408
|
Quote:
Originally Posted by darkhc
I have been testing and when throwing the object and disconnecting and reconnecting it gives me the object again and the one I have thrown is still there
|
Then, just make sure the item is being save with the PlayerIdentity set to 0 after being thrown
|
|
|
 |
|
Similar Threads
|
[RELEASE]Conquer Emulator Source 5165
11/22/2010 - CO2 PServer Guides & Releases - 29 Replies
Latest Version: v1.0.0
Last Updated: 07:37AM 29/07 2010
This is a small project in NewestCOServer.
Why this?
To make a better NewestCOServer source.
Ive deleted alot things so far and started building things up.
I will work on this time after time, untill it will be good :)
Hope you find this useful
|
[RELEASE] Conquer v5065 Source
10/20/2009 - CO2 PServer Guides & Releases - 2 Replies
Edited
|
[Release] Conquer Source
08/23/2009 - CO2 PServer Guides & Releases - 1 Replies
Heya.
Since wrong people got ahold of this (immature kids, ofcourse) I decided to release it.
It's a source which base was made by Tanel, and was rewritten and continued by me.
I will not say that the coding in this source is great, because it's sure not. I stopped developing somewhere in 2008, so it's poorly coded in some places, but it has the basic stuffs + some more.
Here's a little list to give you a little information:
|
All times are GMT +1. The time now is 06:48.
|
|