Network Functions
Last updated
interface CrateResponse {
item: string;
rarity: string;
}
export default class CrateManager extends AirshipSingleton {
// Creating a NetworkFunction
private open =
new NetworkFunction<{ crateType: string }, CrateResponse>("LootCrate");
public override Start(): void {
if (Game.IsClient()) {
// Tell the server that you'd like to open a loot crate
const loot = this.open.client.FireServer({ crateType: "weapon" });
print(`You received a ${loot.rarity} ${loot.item}`);
}
if (Game.IsServer()) {
// Listen for player crate open requests
this.openCrate.server.SetCallback((player, event) => {
return {
item: "sword",
rarity: "legendary",
}
});
}
}
}interface CrateResponse {
item: string;
rarity: string;
}
const openCrate =
new NetworkFunction<{ crateType: string }, CrateResponse>("LootCrate");const loot = openCrate.client.FireServer({ crateType: "weapon" });
print(`You received a ${loot.rarity} ${loot.item}`);openCrate.server.SetCallback((player, event) => {
return {
item: "sword",
rarity: "legendary",
};
});