public BasicResourceServer()
{
EventHandlers.Add("chatMessage", new Action<int, string, string>(OnPlayerText));
EventHandlers.Add("onResourceStart" , new Action<string>(OnResourceStart));
EventHandlers.Add("playerConnecting", new Action<Player, string, CallbackDelegate>(OnPlayerConnecting));
EventHandlers.Add("playerDropped", new Action<Player, string>(OnPlayerDisconnect));
EventHandlers.Add("baseevents:onPlayerKilled", new Action<Player, int>(OnPlayerKilled));
EventHandlers.Add("onPlayerDied", new Action<Player, string, Vector3, CallbackDelegate>(OnPlayerDied));
EventHandlers.Add("baseevents:enteredVehicle", new Action<Player, object, int, string>(OnPlayerEnteredVehicle));
EventHandlers.Add("baseevents:leftVehicle", new Action<Player, object, int, string>(OnPlayerLeftVehicle));
EventHandlers.Add("baseevents:enteringVehicle", new Action<Player, int, int, string>(OnPlayerEnteringVehicle));
}
private void OnPlayerText([FromSource] int player, string playerName, string chatMessage)
{
//TriggerEvent("chatMessage", playerName + ":" + chatMessage);
Debug.WriteLine($"{playerName} ({player}): {chatMessage}");
}
private void OnResourceStart(string resourceName)
{
Debug.WriteLine($"Resource was succesfully started {resourceName}");
}
private void OnPlayerConnecting([FromSource] Player player, string playerName, CallbackDelegate kickCallback)
{
Debug.WriteLine($"{player.Name} trying to connect with IP of = {player.EndPoint.ToString()}");
}
public void OnPlayerDisconnect([FromSource] Player player, string reason)
{
Debug.WriteLine($"{player.Name} disconnected (reason: {reason})");
}
public void OnPlayerKilled([FromSource] Player victim, int killerID)
{
Player killer = Players[killerID];
Debug.WriteLine($"{victim.Name} was killed by {killer.Name}");
}
private void OnPlayerDied([FromSource]Player player, string deathReason, Vector3 position, CallbackDelegate wtf)
{
Debug.WriteLine("OnPlayerDied! " + player.Name + " reason = " + deathReason + " at position: " + position.ToString() + " wtf is = " + wtf);
}
private void OnPlayerEnteredVehicle([FromSource]Player player, object vehicle, int seat, string displayName)
{
Debug.WriteLine($"Player {player.Name} entered {displayName} {vehicle} to seat {seat}");
}
private void OnPlayerLeftVehicle([FromSource]Player player, object vehicle, int seat, string displayName)
{
Debug.WriteLine($"Player {player.Name} left {displayName} {vehicle} from seat {seat}");
}
private void OnPlayerEnteringVehicle([FromSource]Player player, int vehicleHash, int seat, string displayName)
{
Debug.WriteLine($"Player {player.Name} left {displayName} {vehicleHash} from seat {seat}");
}
All Events are working except OnPlayerDied
And i get an exception in client console with this client script:
public BasicResourceClient()
{
//In the constructor we add
EventHandlers.Add("playerSpawned", new Action<Vector3>(OnPlayerSpawned));
}
private async Task OnTick()
{
Debug.WriteLine("One second passed!");
await Delay(1000);
}
private void OnPlayerSpawned([FromSource] Vector3 pos)
{
//Press F8 in game to open the console, there will apears any Debug.Write... messages
Debug.WriteLine("SPAWNED!");
Debug.WriteLine(pos.ToString());//the position is always 0,0,0 but no error !?
//giving a weapon
LocalPlayer.Character.Weapons.Give(WeaponHash.Grenade, 20, true, true);
//localplayer is a propertie that always gives a reference to the player
//the first parameter is easily to fill with the Weaponhash enum (Yeah C# :))
}
}