methodmap Player < StringMap
{
public Player(int id)
{
StringMap map = new StringMap();
map.SetValue("id", id);
map.SetValue("userid", GetClientUserId(id));
map.SetValue("money", 100);
return view_as<Player>(map);
}
property int Userid
{
public get() {
int i;
this.GetValue("userid", i);
return i;
}
}
property int Id
{
public get() {
int i;
this.GetValue("id", i);
return i;
}
}
property int Money
{
public get() {
int i;
this.GetValue("money", i);
return i;
}
public set(int i) {
this.SetValue("money", i);
}
}
public bool IsValid()
{
return (GetClientOfUserId(this.Userid) > 0);
}
public bool InGame()
{
return (IsClientInGame(this.Id));
}
}
public void OnClientPutInServer(int client)
{
Player player = new Player(client);
CreateTimer(30.0, SetPlayerMoneyTimer, player);
}
public Action SetPlayerMoneyTimer(Handle timer, Player player)
{
if(!player.IsValid() || !player.InGame())
return;
player.Money = 2500;
delete player;
}