Code: Select all
struct Shop // ITEM SHOP
{
var() config string Item; // Items you can purchase
var() config float Cost; // Cost of those items
};
var() config Shop List[100];
replication
{
reliable if (role < role_authority) Buy; // Send the 'Buy' function to the server
// vvvvvvv PROBLEM!!!!!! vvvvvvv
reliable if(role == role_authority && bNetOwner) List; // Send the Item List to the owner.
// ^^^^^^ PROBLEM!!!!!! ^^^^^^^
}
As soon as I summon this actor ( A pickup, to be precise) I get this crash:
Critical: appError called:
Critical: Assertion failed: !Bunch.IsError() [File:M:\Unreal224\Engine\Src\UnChan.cpp] [Line: 1080]
Critical: Windows GetLastError: A non-blocking socket operation could not be completed immediately. (10035)
Exit: Executing UObject::StaticShutdownAfterError
Critical: ReplicateProperties
Critical: UActorChannel::ReplicateActor
Critical: UpdateRelevant
Critical: ULevel::ServerTickClient
Critical: ULevel::TickNetServer
Critical: UpdateNetServer
Critical: ULevel::Tick
Critical: (NetMode=1)
Critical: TickLevel
Critical: UGameEngine::Tick
Critical: UpdateWorld
Critical: MainLoop
Exit: appExit
Uninitialized: Name subsystem shut down
Uninitialized: Log file closed, 01/06/08 09:26:57
- The version is 225f.
- The crash doesn't happen until I actually pick up the item.
- The item's remoterole is SimulatedProxy;
- bNetTemporary is false. (for obvious reasons).
- Changing the replication statement to:
Code: Select all
reliable if(role == role_authority) List; - will crash the serverimmediately when the item is spawned (because it has to replicate to all the clients then).
- Removing the replication statement for 'List' will make the item Not crash the server, but 'List' will not be replicated,
therefore the item will be useless (you won't be able to purchase anything, because the items/cost aren't replicated to the client).
The log is telling me that "A non-blocking socket operation could not be completed immediately".
I've tried and failed to solve this, but I have no clue how to fix the problem.
It could be possible by having a temp variable that is replicated and sends each value separately, but that might bog down the server, and would just be a pain in the ass to do.
So does anyone have an idea why the crash is caused? And how I can fix it (with the item still usable)? Any help is appreciated.

