Beiträge von Kaliber

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums

    //Ban(giveplayerid);
    Kick(giveplayerid);


    Du kickst ihn ja auch nur :D


    Das Ban(giveplayerid); ist ja auskommentiert...sprich mach es so:


    Ban(giveplayerid);
    //Kick(giveplayerid); <<kannst du auch ganz löschen


    mfg. :rolleyes:

    Schreibe die Funktion so:


    stock CreateLanguage3DTextLabel(const textDE[], const textEN[], color, Float:x, Float:y, Float:z, Float:drawdistance, attachedplayer = INVALID_PLAYER_ID, attachedvehicle = INVALID_VEHICLE_ID, testlos = 0, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 100.0)
    {
    if(pInfo[playerid][Language] == LANGUAGE_DE) CreateDynamic3DTextLabel(textDE, color, x, y, z, drawdistance, attachedplayer, attachedvehicle, testlos, worldid, interiorid, playerid, streamdistance);
    else if(pInfo[playerid][Language] == LANGUAGE_EN) CreateDynamic3DTextLabel(textEN, color, x, y, z, drawdistance, attachedplayer, attachedvehicle, testlos, worldid, interiorid, playerid, streamdistance);
    return 1;
    }


    Lerne den Unterschied zwischen Attributen und Parametern :rolleyes:


    mfg. :thumbup:

    Wie kann man den herrausfinden, wie viele Objekte erstellt worden sind(CreateDynamicObject, CreateObject), wie viele entfernt worden sind(RemoveBuildingForPlayer) und das per einen Print Output ausgeben lassen?


    Die Funktionen hooken und einen counter mitzählen lassen ;)


    Habe vor nem Jahr oder so das mal gemacht: [ INCLUDE ] Limit Counter


    Kannst dir da ja ein wenig Inspiration holen ;)


    mfg. :thumbup:

    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: