Beiträge von Haxler

    So wie du es machst würde es nicht gehen. Du erstellt die Variable in der die ID vom 3dText gespeichert wird lokal.


    new a_label[MAX_PLAYERS];
    dann statt new Text3D: a_label = ... machst du a_label[playerid] = ...
    Dann kannst du es auch ganz einfach löschen:
    //OnPlayerDisconnect
    Delete3DTextLabel(a_label[playerid]);

    Kannst ja mal bei verschiedenen Funktionen testen wie lange sie brauchen (zum Ausführen):


    new count = GetTickCount();
    //code ...
    printf(" Verstrichene Zeit: %d ms",GetTickCount() - count);

    Wenn die zwei Strings übereinstimmen returnt strcmp 0. Das ! vor strcmp ist bei dir also falsch...
    !strcmp ist das gleiche wie strcmp == 0:


    if(strcmp(spieler,owner,true))return SendClientMessage(playerid,COLOR_MAGENTA,"Du besitzt keinen Schlüssel für dieses Fahrzeug");

    GangInfo[PlayerGangID][RankN2] ist doch ein String (wenn ich das richtig sehe). Dann bringt strval ja auch nicht viel. Du kannst einen String nicht einfach mit = zuweisen:


    format(GangInfo[PlayerGangID][RankN2],sizeof(GangInfo[PlayerGangID][RankN2]),"%s",result);

    Verwende ocmd, zcmd, dcmd ... (im Forum suchen). Damit gehts leicht ohne "Umschreibungen":


    ocmd:test(playerid,params[])
    {
    printf("Der Spieler hat /test %s eingetippt.",params);
    return 1;
    }


    so würde da ein Befehl aussehen. In params wird der eingegebene Text gespeichert.
    Gibt auch ein Tutorial dazu: [ SCRIPTING ] Commands mit Parametern


    edit: link ^^

    Du musst erst ein Haus erstellen bevor du es sehen kannst ^^ Das Problem ist wahrscheinlich dass dein GM nicht mit dem Filterscript klar kommt und deshalb die Befehle nicht funktionieren. Wenn du alle Funktionen in deinen GM überträgst und die Befehle auf deine Art (weiß nicht ob du strcmp, dcmd etc. verwendest)umschreibst, müsste es tun. Du musst in Scriptfiles den Ordner "haus" erstellen und ingame /erstellen machen.

    Wie hast du die Sirene erstellt? So müste es gehen:


    new sirene[MAX_VEHICLES];
    beim /sirenean-Befehl:


    sirene[GetPlayerVehicleID(playerid)]=CreateObject(...);
    AttachObjectToVehicle(sirene[GetPlayerVehicleID(playerid)],GetPlayerVehicleID(playerid)...);


    if (strcmp("/sireneaus", cmdtext, true, 10) == 0)
    {
    if(PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3 || PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 21 || PlayerInfo[playerid][pLeader] == 21 || PlayerInfo[playerid][pAdmin] >= 1339)
    {
    DestroyObject(sirene[GetPlayerVehicleID(playerid)]);
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist kein Beamter");
    }
    return 1;
    }

    CMD:su(playerid,params[])
    {
    new Ziel,Grund;
    if(sscanf(params,"us[10]",Ziel,Grund))return SendClientMessage(playerid,GRAU,"Benutze: /su(spect) [Spielername/ID] [Grund]");
    if(IsPlayerConnected(Ziel))
    {
    if(IstEinCop(playerid))
    {
    if(IstImDienst[playerid]==1)
    {
    if(!IstEinCop(Ziel))
    {
    new Wantedsterne=GetPlayerWantedLevel(playerid);
    new string[128];
    new PlayeridName[MAX_PLAYER_NAME],ZielName[MAX_PLAYER_NAME];
    SetPlayerWantedLevel(Ziel,Wantedsterne+1);
    GetPlayerName(playerid,PlayeridName,sizeof(PlayeridName));
    GetPlayerName(Ziel,ZielName,sizeof(ZielName));
    format(string,sizeof(string),"%s hat dir einen Wantedstern gegeben. Grund: %s",PlayeridName,Grund);
    SendClientMessage(Ziel,HELLBLAU,string);
    format(string,sizeof(string),"Du hast %s einen Wantedstern gegeben. Grund: %s",ZielName,Grund);
    SendClientMessage(playerid,HELLBLAU, string);
    format(string,sizeof(string),"Aktuelles Wantedlevel: %d",SpielerInfo[Ziel][Wantedlevel]);
    SendClientMessage(Ziel,GELB,string);
    return 1;
    }
    else return SendClientMessage(playerid,ROT,"Dieser Spiel ist ein Beamter!");
    }
    else return SendClientMessage(playerid,ROT,"Du bist nicht im Dienst!");
    }
    else return SendClientMessage(playerid,ROT,"Du bist kein Beamter im Dienst!");
    }
    else return SendClientMessage(playerid,ROT,"Der Spieler ist nicht online!");
    }

    1. würd ich den Befehl so machen:


    ocmd:Spawnveh(playerid,params[])
    {
    new carid,farbe1,farbe2,Float:CarX,Float:CarY,Float:CarZ;
    if(SpielerInfo[playerid][Adminlevel] >= 1)
    {
    if(sscanf(params,"iii",carid,farbe1,farbe2))return SendClientMessage(playerid,GELB,"Verwende /spawnveh [CarID] [Farbe1] [Farbe2]");
    GetPlayerPos(playerid,CarX,CarY,CarZ);
    CreateVehicle(carid,CarX,CarY+4,CarZ+4, 82.2873, farbe1,farbe2, 0);
    }
    else return SendClientMessage(playerid,GELB,"Du bist kein Admin!");
    return 1;
    }


    2. musst du oben ins Script #include <ocmd> schreiben.