Beiträge von Kaliber

    Es kommt immer die Nachricht, dass der Spieler nicht online ist.


    Du musst auf die Chronologische Reihenfolge deiner if-Abfragen achten ;)


    Zudem wenn du eine Variable mit einem TAG deklarierst (Float:x), dann musst du nicht immer den Tag wieder davor schreiben, nur wenn du die Variable casten willst ;)


    Also hier, so funktioniert es:


    CMD:goto(playerid,params[])
    {
    if(GetPVarInt( playerid, "Level" ) < 1 ) return SendClientMessage( playerid, -1, "Du musst ein "COLOR_LIGHT_BLUE"Administrator Level 1 {FFFFFF}sein, um diese Funktion nutzen zu können.");
    if(sscanf( params, "u", params[0])) return SendClientMessage( playerid, -1, ""COLOR_LIGHT_BLUE"Verwendung:{FFFFFF} /goto <ID/Name>");
    if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, -1, "Dieser Spieler ist nicht online.");
    if(InBehandlung[params[0]]) return SendClientMessage(playerid, -1, ""COLOR_RED"Fehler: {FFFFFF}Spieler ist in Behandlung.");
    if(params[0] == playerid) return SendClientMessage(playerid, -1, ""COLOR_RED"Fehler: {FFFFFF}Du kannst dich nicht zu dir selbst teleportieren.");


    new Float:x, Float:y, Float:z;
    GetPlayerPos(params[0], x, y, z);
    SetPlayerPos(playerid, x, y, z);
    return 1;
    }
    CMD:gethere(playerid,params[])
    {
    if(GetPVarInt( playerid, "Level" ) < 1 ) return SendClientMessage( playerid, -1, "Du musst ein "COLOR_LIGHT_BLUE"Administrator Level 2 {FFFFFF}sein, um diese Funktion nutzen zu können.");
    if(sscanf( params, "u", params[0])) return SendClientMessage( playerid, -1, ""COLOR_LIGHT_BLUE"Verwendung:{FFFFFF} /gethere <ID/Name>");
    if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, -1, ""COLOR_RED"Fehler: {FFFFFF}Dieser Spieler ist nicht online.");
    if(InBehandlung[params[0]]) return SendClientMessage(playerid, -1, ""COLOR_RED"Fehler: {FFFFFF}Spieler ist in Behandlung.");
    if(params[0] == playerid) return SendClientMessage(playerid, -1, ""COLOR_RED"Fehler: {FFFFFF}Du kannst dich nicht zu dir selbst teleportieren.");

    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    SetPlayerPos(params[0], x, y, z);
    return 1;
    }


    mfg. :thumbup:

    So müsste es gehen:


    //obj = O
    //obj1 = A
    new Float:Pos[6];
    GetObjectPos(obj,Pos[0],Pos[1],Pos[2]);
    GetObjectPos(obj1,Pos[3],Pos[4],Pos[5]);
    SetObjectRot(obj1,0.0,0.0,atan2(Pos[4] - Pos[1],Pos[3] - Pos[0]));


    //Falls es nicht gehen sollte versuche:
    SetObjectRot(obj1,0.0,0.0,atan2(Pos[4] - Pos[1],Pos[3] - Pos[0])-180);


    mfg. :thumbup:

    Und nun sollen 4 Per Random Gespawned werden bitte helft mir.


    Das könntest du so lösen:


    static Float:r_Pos[][3] = {
    {652.88098, -93.44363, 18.23879},
    {650.15161, -125.84965, 21.31182},
    {623.77222, -129.92299, 23.98880},
    {617.01825, -126.81814, 24.33205},
    {611.12610, -107.54742, 22.79732},
    {610.66663, -92.06685, 20.15582},
    {738.89392, -95.42523, 20.24735},
    {730.02472, -88.85505, 20.44882},
    {696.23511, -82.35695, 21.67834},
    {660.66663, -91.32520, 18.68274},
    {672.91217, -130.31569, 20.90508}
    },Reh[4];


    //Und Random Spawnen lassen:
    static idx[sizeof Reh],tmp;
    for(new i; i<sizeof Reh; ++i,tmp++) {
    idx[tmp] = random(sizeof r_Pos);
    for(new x; x<tmp; x++) if(idx[x] == idx[tmp]) idx[tmp] = random(sizeof r_Pos),x=-1;
    Reh[i] = CreateObject(19315, r_Pos[idx[tmp]][0], r_Pos[idx[tmp]][1], r_Pos[idx[tmp]][2], 0.0, 0.0, 0.0);
    }


    Da wir Reh[4] haben, werden auch nur 4 Rehe gespawnt, wenn du das erhöhst, werden mehr random gespawnt ;)


    mfg. :thumbup:

    Das mit dem return kannst du so nicht machen, schreib es so:


    ocmd:givemoney(playerid,params[])
    {
    if(!IstSpielerEinAdmin(playerid,4))return SendClientMessage(playerid,Rot,"Du bist kein Teammitglied/ nicht den Rang dafür.");
    new pID, cash, string[128];
    if(sscanf(params,"ud",pID,cash))return SendClientMessage(playerid,Gelb,"Benutze: /givemoney [ID] [Betrag]");
    format(string,sizeof(string),"Admin %s hat dir $%d gegeben.",SpielerName(playerid),cash);
    SendClientMessage(pID,Grün,string);
    format(string,sizeof string,"Du hast den Spieler %s $%d gegeben",SpielerName(pID),cash);
    return GivePlayerMoney(pID,cash),SendClientMessage(playerid,Grün,string);
    }


    mfg. :thumbup:

    Hier, schreib es so:


    dcmd_admins(playerid,params[])
    {
    #pragma unused params
    new string[400] = "{FFFFFF} Following Admins are available:\n\n";
    for(new i; i < MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i) || !AccInfo[i][Level] || AccInfo[i][Hide]) continue;
    format(string, sizeof string, "%s {FFFFFF}Admin %s (ID:%i) - {0098D3}Level %d{FFFFFF}\n",string,PlayerName2(i),i, AccInfo[i][Level]);
    }
    if(strlen(string) == 42) ShowPlayerDialog(playerid,NO_ADMINS,DIALOG_STYLE_MSGBOX,"Online Admins","\nThere are currently no Admins available.","Close","");
    else ShowPlayerDialog(playerid,DIALOG_ADMINS,DIALOG_STYLE_MSGBOX,"Online Admins",string,"Close","");
    format(string,sizeof(string),"* %s (ID:%d) has checked all available Admins.",PlayerName2(playerid),playerid);
    return MessageToAdmins(COLOR_MAUVE, string);
    }


    mfg. :thumbup:

    Schreib das mal so:


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    Textdraw20 = TextDrawCreate(79.000000, -0.829630, "_");
    TextDrawFont(Textdraw20, TEXT_DRAW_FONT_MODEL_PREVIEW);
    TextDrawUseBox(Textdraw20, 1);
    TextDrawBoxColor(Textdraw20, 0x000000FF);
    TextDrawTextSize(Textdraw20, 50.000011, 49.777774);
    TextDrawBackgroundColor(Textdraw20, 0xFFFFFF00);
    TextDrawSetPreviewRot(Textdraw20, -10.0, 0.0, -20.0, 1.0);
    TextDrawSetPreviewModel(Textdraw20, GetVehicleModel(vehicleid));
    TextDrawShowForPlayer(playerid,Textdraw20);
    return 1;
    }


    vehicleid wird schon als Parameter übergeben benutze einfach den ;)


    //Edit: Mit der VehicleColor, nutze diese Include: http://forum.sa-mp.com/showthread.php?t=176496
    //Edit²: Ach gott, es ist noch früh, natürlich brauchst du die modelid ^^
    mfg. :thumbup:

    Du musst es so schreiben:


    ocmd:atm(playerid,params[])
    {
    for(new i; i<sizeof(automat); ++i) {
    if(IsPlayerInRangeOfPoint(playerid,1.0,automat[i][iX],automat[i][iY],automat[i][iZ])) return ShowPlayerDialog(playerid,BANK,DIALOG_STYLE_LIST,"Bank","Auszahn\nEinzahn\nÜbersich","OK","Exit");
    }
    return SCM(playerid,WES,"Du bist an keinem ATM.");
    }


    //Edit: Achte mal ein wenig auf die Rechtschreibung :wacko:


    und sizeof(i) macht gar keinen Sinn...also musst du das überall für dieses System ändern, auf sizeof(automat)... :rolleyes:


    mfg. :thumbup:

    Schreibe es so, es fehlt das return 1 und so ist der Code besser:


    if(!strcmp(cmdtext, "/motor", true)) {
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid,ROT,"Du bist nicht der Fahrer eines Fahrzeuges!");
    new var[7];
    GetVehicleParamsEx(GetPlayerVehicleID(playerid), var[0], var[1], var[2], var[3], var[4], var[5], var[6]);
    return SetVehicleParamsEx(GetPlayerVehicleID(playerid), (!var[0]) ? 1 : 0, var[1], var[2], var[3], var[4], var[5], var[6]),1;
    }


    mfg. :thumbup:


    //Edit: Forum leggt so...irgendwie hat der zahlen vertauscht?!