Beiträge von Jeffry

    So, ich habe deinen Code mal bei mir laufen lassen.
    Dein Code funktioniert, die Fehler hatte ich auch, habe sie aber wegbekommen.

    (Du kannst mit SendClientMessage übrigens 144 Zeichen anzeigen, sprich einen String von [145] (wegen EOS)).


    Wie?
    Mach diese zwei defines weg:
    #define SendClientMessage SendClientMessageEx
    #define SendClientMessageToAll SendClientMessageToAllEx


    Warum?


    Wenn du es so definierst, überschreibst du auch die SendClientMessages in den stocks, sprich du hast eine rekursive Funktion (ruft sich selbst auf).
    Um alle SendClientMessages (außer die in den stocks) zu ersetzen, nutze STRG+H, pass aber auf, dass du die in den stocks nicht änderst.

    Na du bist gut. Das dürften sowas um die 0.1 sein, kann es aber auch nur abschätzen. Probiere es mal aus, den Z Wert im 0.1 kleiner zu machen, also zu 8.2858. Wenn es immer noch schwebt mach es noch etwas kleiner.

    Falls du per GUI keine Zeile hinzufügen kannst, gehe in den SQL Reiter und gebe das ein:

    SQL
    INSERT INTO Saveboxen VALUES ()


    Dann sollte eine neue Zeile da sein.


    Dort fügst du dann deine Koordinaten ein:
    X 836.2645
    Y -1855.0986
    Z 8.3858
    ROT 0.0508


    Die 10 bei der Deklaration erhöhst du dann auf 11.

    In der Datenbank, Tabelle Saveboxen.
    Mit phpMyAdmin reicht zum ändern ein Doppelklick in die Spalte, oder eben über bearbeiten.


    Zum hinzufügen müsste unter den ganzen Daten Zeilen hinzufügen stehen, oder sowas in der Art.


    Möglicherweise musst du im Code noch die Anzahl bei
    new SaveBoxInfo...
    ändern, wenn du in der Datenbank welche hinzufügst.

    Schalte mal den MySQL Debug Modus an, sodass dir alles was über das Plugin passiert geprintet wird. Was wird da ausgegeben, wenn du versuchst, die Autos zu speichern?
    Klappt das Laden und Löschen?

    Dann schreibe es so:
    if(strcmp(cmd, "/clothes", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] >= 0 || PlayerInfo[playerid][pLeader] >= 0)
    {
    if(IsAtClothShop(playerid))
    {
    if(PlayerInfo[playerid][pMember] == 0) { ChosenSkin[playerid] = SKIN_ID_VON_ZIVI; SetPlayerSkin(playerid, SKIN_ID_VON_ZIVI); }
    else if(PlayerInfo[playerid][pMember] == 1) { ChosenSkin[playerid] = 280; SetPlayerSkin(playerid, 280); }
    else if(PlayerInfo[playerid][pMember] == 2) { ChosenSkin[playerid] = 280; SetPlayerSkin(playerid, 280); }
    else if(PlayerInfo[playerid][pMember] == 3) { ChosenSkin[playerid] = 287; SetPlayerSkin(playerid, 287); }
    else if(PlayerInfo[playerid][pMember] == 4) { ChosenSkin[playerid] = 70; SetPlayerSkin(playerid, 70); }
    else if(PlayerInfo[playerid][pMember] == 5) { ChosenSkin[playerid] = 258; SetPlayerSkin(playerid, 120); }
    else if(PlayerInfo[playerid][pMember] == 6) { ChosenSkin[playerid] = 294; SetPlayerSkin(playerid, 294); }
    else if(PlayerInfo[playerid][pMember] == 7) { ChosenSkin[playerid] = 164; SetPlayerSkin(playerid, 164); }
    else if(PlayerInfo[playerid][pMember] == 8) { ChosenSkin[playerid] = 250; SetPlayerSkin(playerid, 250); }
    else if(PlayerInfo[playerid][pMember] == 9) { ChosenSkin[playerid] = 187; SetPlayerSkin(playerid, 187); }
    else if(PlayerInfo[playerid][pMember] == 10) { ChosenSkin[playerid] = 255; SetPlayerSkin(playerid, 255); }
    else if(PlayerInfo[playerid][pMember] == 11) { ChosenSkin[playerid] = 240; SetPlayerSkin(playerid, 240); }
    else if(PlayerInfo[playerid][pMember] == 12) { ChosenSkin[playerid] = 118; SetPlayerSkin(playerid, 118); }//Triaden
    else if(PlayerInfo[playerid][pMember] == 13) { ChosenSkin[playerid] = 105; SetPlayerSkin(playerid, 105); }//Grove
    else if(PlayerInfo[playerid][pMember] == 14) { ChosenSkin[playerid] = 102; SetPlayerSkin(playerid, 102); }//Bloods
    else if(PlayerInfo[playerid][pMember] == 15) { ChosenSkin[playerid] = 185; SetPlayerSkin(playerid, 185); }//Sf Biker Club
    else if(PlayerInfo[playerid][pMember] == 16) { ChosenSkin[playerid] = 108; SetPlayerSkin(playerid, 108); }//Los Santos MaraSalvatrucha
    else if(PlayerInfo[playerid][pMember] == 17) { ChosenSkin[playerid] = 114; SetPlayerSkin(playerid, 114); }//Varios Los Crips
    else if(PlayerInfo[playerid][pMember] == 18) { ChosenSkin[playerid] = 173; SetPlayerSkin(playerid, 173); }//San Fiero Rifa
    else if(PlayerInfo[playerid][pMember] == 19) { ChosenSkin[playerid] = 234; SetPlayerSkin(playerid, 234); }//West Coust Customs
    else if(PlayerInfo[playerid][pMember] == 20) { ChosenSkin[playerid] = 220; SetPlayerSkin(playerid, 220); }
    else if(PlayerInfo[playerid][pMember] == 21) { ChosenSkin[playerid] = 286; SetPlayerSkin(playerid, 286); }
    else if(PlayerInfo[playerid][pMember] == 22) { ChosenSkin[playerid] = 277; SetPlayerSkin(playerid, 277); }
    else if(PlayerInfo[playerid][pMember] == 23) { ChosenSkin[playerid] = 133; SetPlayerSkin(playerid, 133); }
    else if(PlayerInfo[playerid][pMember] == 24) { ChosenSkin[playerid] = 255; SetPlayerSkin(playerid, 255); }
    else { return 1; }


    GetPlayerPos(playerid, ChangePos[playerid][0],ChangePos[playerid][1],ChangePos[playerid][2]);
    ChangePos2[playerid][0] = GetPlayerInterior(playerid);
    ChangePos2[playerid][1] = 1;
    SetPlayerInterior(playerid,0);
    new rand = random(sizeof(gInviteSpawns));
    SetPlayerPos(playerid, gInviteSpawns[rand][0], gInviteSpawns[rand][1], gInviteSpawns[rand][2]); // Warp the player
    SetPlayerFacingAngle(playerid, gInviteSpawns[rand][3]);
    SetPlayerCameraPos(playerid,gInviteSpawns[rand][0] + 3, gInviteSpawns[rand][1], gInviteSpawns[rand][2]);
    SetPlayerCameraLookAt(playerid,gInviteSpawns[rand][0], gInviteSpawns[rand][1], gInviteSpawns[rand][2]);
    FreezePlayer(playerid);
    SelectChar[playerid] = 255;
    SelectCharID[playerid] = PlayerInfo[playerid][pMember];
    SelectCharPlace[playerid] = 1;
    PlayerInfo[playerid][pModel] = ChosenSkin[playerid];
    PlayerInfo[playerid][pChar] = ChosenSkin[playerid];
    SendClientMessage(playerid, COLOR_LIGHTRED, "* Gib 'weiter' ein um den Charakter auszusuchen den du gerne nutzen möchtest.");
    SendClientMessage(playerid, COLOR_LIGHTRED, "* Wenn du den richtigen gefunden hast gib 'fertig' ein.");
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du bist in keinem Bekleidungsgeschäft !");
    return 1;
    }
    }
    else
    {
    if(IsPlayerInRangeOfPoint(playerid, 10.0, 205.2583,-134.0106,1002.8672) || IsPlayerInRangeOfPoint(playerid, 10.0, 207.2777,-105.8812,1005.1328))
    {
    AtClothes[playerid] = 1;
    ForceClassSelection(playerid);
    TogglePlayerSpectating(playerid, 0);
    return 1;
    }
    }
    }
    return 1;
    }


    SKIN_ID_VON_ZIVI mit der ID des Skins der Zivis ersetzen.

    Unter den Includes:
    new bombTime[MAX_PLAYERS];


    Beim Setzen der Bombe:
    SetTimerEx("BombCountdown", 1000, 0, "d", playerid);
    bombTime[playerid] = 60*5;


    Ganz unten im Gamemode:
    forward BombCountdown(playerid);
    public BombCountdown(playerid)
    {
    bombTime[playerid]--;
    new str[16];
    format(str, sizeof(str), "%02d:%02d", bombTime[playerid]/60, bombTime[playerid]%60);
    PlayerTextDrawSetString(playerid,Bombe[playerid],str);
    if(bombTime > 0) SetTimerEx("BombCountdown", 1000, 0, "d", playerid);
    else
    {
    //BOOM!
    }
    return 1;
    }

    Super! :)


    ocmd:oban(playerid, params[])
    {
    new query[256], name[MAX_PLAYER_NAME], grund[64];
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,-1,"Du brauchst Adminlevel 2");
    if(sscanf(params,"ss",name,grund))return SendClientMessage(playerid,-1,"Tippe: /oban [name] [grund]");
    mysql_format(mysqlHandle, query, sizeof(query), "UPDATE accounts SET Banned = '1', Bangrund = '%e', Banadmin = '%e' WHERE Name = '%e'", grund, NamePlayer(playerid), name);
    mysql_tquery(mysqlHandle, query, "", "");
    return 1;
    }


    Den ban-Befehl schreibst du lieber auch so:
    ocmd:ban(playerid, params[])
    {
    new query[256], string[128], pID, grund[64];
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,-1,"Du brauchst Adminlevel 2");
    if(sscanf(params,"ds",pID,grund))return SendClientMessage(playerid,-1,"Tippe: /ban [spieler] [grund]");
    format(string, sizeof(string),"Du wurdest von %s gebannt. Grund: %s",NamePlayer(playerid),grund);
    SendClientMessage(pID,ROT,string);
    mysql_format(mysqlHandle, query, sizeof(query), "UPDATE accounts SET Banned = '1', Bangrund = '%e', Banadmin = '%e' WHERE Name = '%e'", grund, NamePlayer(playerid), NamePlayer(pID));
    mysql_tquery(mysqlHandle, query, "", "");
    Kick(pID);
    return 1;
    }

    Teste es mal so:
    ocmd:multiaccount(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid,-1,"Du hast kein Admin Level 4");
    new query[256],gip[16];
    if(sscanf(params,"s",gip))return SendClientMessage(playerid,-1,"Tippe : /multiaccount [IP]");
    SendClientMessage(playerid,-1,"Benutze: /getip [Spieler] um die IP herauszufinden!");
    format(query, sizeof(query), "SELECT name FROM accounts WHERE ip = '%s'", gip); //=================ANPASSEN!!====================
    mysql_tquery(MySQL, query, "OnMultiaccountCheck", "d", playerid);
    return 1;
    }


    forward OnMultiaccountCheck(playerid);
    public OnMultiaccountCheck(playerid)
    {
    SendClientMessage(playerid,-1,"Folgende Accounts existieren unter der IP:");
    new rows = cache_get_row_count(), string[145];
    for(new i=0; i < rows; i++)
    {
    cache_get_row(i, 0, string);
    SendClientMessage(playerid,-1,string);
    }
    return 1;
    }


    Nicht vergessen die markierte Zeile anzupassen, an deinen Tabellenname und die Tabellenspalten!

    Schau dir mal diesen Thread an, da sind wir das mal ausführlich durchgegangen, wie das mit der Box sein muss:
    Anklickbare TextDraws Funktionieren nicht


    Die Box kannst du natürlich, wenn es mit dem Anklicken klappt auf TextDrawUseBox false setzen, aber zum anpassen des anklickbaren Bereichs eignet sich eine Box gut.


    Aufpassen: Die Y-Größe (Höhe) sieht man an der Box nicht, die musst du abschätzen!