Du musst ihn beim "Erscheinen" des Menüs also hier:
if(strcmp(cmd,"/scheine",true) ==0)
{
if(PlayerToPoint(3,playerid,DEINE CORDS))
{
ShowMenuForPlayer(Scheine, playerid);
TogglePlayerControllable(playerid, 0);//freezen...
}
return 1;
}
und ihn beim Auswählen von nem Menüpunkt wieder unfreezen, also so bei jedem case einmal ein:
TogglePlayerControllable(playerid, 1);
Also z.B. so:
if(scheinenew == Scheine)
{
switch(row)
{
case 0:
{
PlayerInfo[giveplayerid][pCarLic] = 1;
SendClientMessage(playerid, COLOR_WHITE,"Dein Führerschein Kostet 4000$! Viel Spass");
GivePlayerMoney(playerid, -4000);
TogglePlayerControllable(playerid, 1);
}
case 1:
{
PlayerInfo[giveplayerid][pFlyLic] = 1;
SendClientMessage(playerid, COLOR_WHITE,"Dein Flugschein Kostet 7000$! Viel Spass");
GivePlayerMoney(playerid, -7000);
TogglePlayerControllable(playerid, 1);
}
case 2:
{
PlayerInfo[giveplayerid][pFishLic] = 1;
SendClientMessage(playerid, COLOR_WHITE,"Dein Angelschein Kostet 6000$! Viel Spass");
GivePlayerMoney(playerid, -6000);
TogglePlayerControllable(playerid, 1);
}
case 3:
{
PlayerInfo[giveplayerid][pBoatLic] = 1;
SendClientMessage(playerid, COLOR_WHITE,"Dein Seegelschein Kostet 5000$! Viel Spass");
GivePlayerMoney(playerid, -5000);
TogglePlayerControllable(playerid, 1);
}
Menü erscheint -> Spieler wird gefreezed
Spieler wählt einen Menüpunkt aus -> Spieler wird geunfreezed
Außerdem kannst du ihn noch unfreezen, wenn er das Menü per Esc. verlässt.
Einfach als neues public iwo in deinem Script folgendes einfügen:
public OnPlayerExitedMenu(playerid)
{
TogglePlayerControllable(playerid, 1);
return 1;
}
Hoffe ich konnte dir helfen