Spieler in einem Auto freezen?

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hi!


    Ich habe das Problem, dass wenn ich jemanden busten (also ins Auto ziehen) will, wird er zwar reingesetzt aber kann wieder aussteigen!
    Ich möchte jedoch, dass er gefreezed wrd und weder aussteigen noch etwas anderes machen kann, bis er entfreezed wird. (Nach 2 Minuten wird er automatisch auch entfreezed).


    if(strcmp(cmdtext, "/bust", true) ==0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(GetPVarInt(playerid,"Fraktion") == 3 || GetPVarInt(playerid,"Fraktion") == 5 || GetPVarInt(playerid,"Fraktion") == 12)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    SendClientMessage(playerid, COLOR_GREY, "Du kannst das nicht benutzen während du im Fahrzeug sitzt!");
    return 1;
    }
    new string[128];
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid,x,y,z);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(i != playerid && !IsPlayerInAnyVehicle(i))
    {
    if(IsPlayerInRangeOfPoint(i,3.0,x,y,z))
    {
    new Float: X, Float: Y, Float: Z;
    for(new v; v<MAX_VEHICLES; v++)
    {
    GetVehiclePos(v, X, Y, Z);
    if(!IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z)) continue;
    if(GetPVarInt(i,"Fraktion")==3 || GetPVarInt(i,"Fraktion")==5 || GetPVarInt(i,"Fraktion")==13)return SendClientMessage(playerid,COLOR_GREY,"Du kannst keine Behördler busten.");
    GameTextForPlayer(i, "~y~BUSTED!", 3000, 3);
    format(string,sizeof(string),"Du wurdest von %s ins Auto gezerrt!",SpielerName(playerid));
    SendClientMessage(i,COLOR_GREY,string);
    format(string,sizeof(string),"Du hast %s ins Auto gezerrt!",SpielerName(i));
    SendClientMessage(playerid,COLOR_GREY,string);
    SetPVarInt(i,"Gefesselt",1);
    SetTimerEx("Busttimer",1000*120,0,"i",i);
    PutPlayerInVehicle(i,v,1);
    SpielerSpeichern(i);
    break;
    }
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Beamter!");
    }
    }
    return 1;
    }

  • Füg noch das hinzu:

    //Oben im Script:
    forward unfreez(playerid);
    //unter den CMD
    TogglePlayerControllable(playerid,0); //d.h der spieler kann sich nicht mehr bewegen. Ist die Zahl auf 1, kann er sich wieder bewegen
    SetTimerEx("unfreez",1000*60*2,false,"i",playerid);
    //der Public:
    public unfreez(playerid)
    {
    TogglePlayerControllable(playerid,1);
    }

    Mfg
    -Sebastian

  • Das habe ich unter onplayerkeystatechange aber ich sehe kein Problem?!


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys==KEY_SECONDARY_ATTACK)
    {
    if(GetPVarInt(playerid,"DMArena")==1)return 1;
    for(new bizid=1;bizid<MAX_BIZ;bizid++)
    {
    if(IsPlayerInRangeOfPoint(playerid,1,BizInfo[bizid][bx],BizInfo[bizid][by],BizInfo[bizid][bz]))
    {
    new eintritt,interior,interiorspawnx,interiorspawny,interiorspawnz;
    eintritt = BizInfo[bizid][beintritt];
    interior = BizInfo[bizid][binterior];
    interiorspawnx=BizInfo[bizid][interiorx];
    interiorspawny=BizInfo[bizid][interiory];
    interiorspawnz=BizInfo[bizid][interiorz];
    if(BizInfo[bizid][bBesitzt] == 0)return SendClientMessage(playerid,COLOR_GREY,"Du kannst dieses Biz nicht betreten. \nEs steht zum Verkauf!");
    GivePlayerMoney(playerid,-eintritt);
    BizInfo[bizid][bkasse] += eintritt;
    SetPlayerInterior(playerid,interior);
    SetPlayerPos(playerid,interiorspawnx,interiorspawny,interiorspawnz);
    SaveBiz(bizid);
    SpielerSpeichern(playerid);
    }
    else if(IsPlayerInRangeOfPoint(playerid,3,BizInfo[bizid][interiorx],BizInfo[bizid][interiory],BizInfo[bizid][interiorz]))
    {
    SetPlayerPos(playerid,BizInfo[bizid][ausgangspawnx],BizInfo[bizid][ausgangspawny]-2,BizInfo[bizid][ausgangspawnz]);
    SetPlayerInterior(playerid,0);
    SaveBiz(bizid);
    }
    }
    }
    return 1;
    }