Beiträge von IPrototypeI

    Mit dem normalen MoveObject sollte es auf jedenfall gehen bei MoveDynamicObject hast du das native nich beachtet
    darum kam es zu den fehlern


    native MoveDynamicObject(objectid, Float:x, Float:y, Float:z, Float:speed, Float:rx = -1000.0, Float:ry = -1000.0, Float:rz = -1000.0);

    xD sry habs oben vergessen zu ändern


    {$query = mysql_query('SELECT * FROM accounts WHERE name="'.$user.'" AND passwort="'.md5($pass).'"');


    accounts ist hier ja die datenbank


    und name oder passwort ist die tabelle


    jedoch frage ich mich


    $pass = addslashes($_REQUEST["password"]);
    ist jedoch auf grund AND passwort geh ich auch davon aus das hier die tabelle gemeint ist und dafür solltest du den namen deiner Tabelle einfügen Key


    dazu ist es auch noch ratsam mit dem neuen mysql plugin zu arbeiten oder wenigstens OnQueryFinish zu verwenden um
    Lags oder Servercrashes, die in Verbindung mit MySQL auftreten können zu vermieden

    dan änder doch ganz einfach passwort in key um und das md5 entfernst du dir als vorlage
    $user nimmst


    bsp:
    {$query = mysql_query('SELECT * FROM accounts WHERE name="'.$user.'" AND passwort="'.md5($pass).'"');{$query = mysql_query('SELECT * FROM accounts WHERE name="'.$user.'" AND passwort="'.$pass.'"');



    ich geh mal davon aus aber naja ich bin kein php held eher gesagt hab ich noch nie groß mit php zu tun gehabt außer
    das ich zusammen mit einem kumpel paar fehler gesucht habe bei seinem ucp für mta

    du solltest mal in dne scriptfiles schauen nach dem m_bot vllt steht dort dein name drinne was anderes ist mir nicht bekannt vllt mal die ip
    ändern per hotspotshield falls es ein rangeban sein sollte obwohl die kannst du auch per console entbannen

    arbeite am besten mit sscanf da dies schneller ist und auch einfacher und du brauchst kein strtok


    hier ein beispiel für solche ein command der sollte so gehen


    ocmd:prison(playerid,params[])
    {
    new pID,geld,grund[64],string[128], pName[MAX_PLAYER_NAME], pIDName[MAX_PLAYER_NAME];
    if(sscanf(params,"uds",pID,geld,grund)) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /prison [ID/Name] [Betrag] [Grund]");
    if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht befugt !");
    if(IsPlayerConnected(pID)) return SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist nicht da!");
    GetPlayerName(pID, pIDName, sizeof(pIDName));
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "AdmCMD:Du hast %s in das Admin Prison gesteckt Grund: %s.", pIDName, grund);
    SendClientMessage(playerid, COLOR_LIGHTRED, string);
    format(string, sizeof(string), "Du wurdest von Admin %s in das Admin Prison gesteckt Grund: %s.", pName, grund);
    SendClientMessage(pID, COLOR_LIGHTRED, string);
    GameTextForPlayer(pID, "~w~Willkommen im ~n~~r~ Admin Prison !", 5000, 3);
    WantedPoints[pID] = 0;
    WantedLevel[pID] = 0;
    GivePlayerMoney(pID,-geld);
    SetPlayerWantedLevel(pID,0);
    PlayerInfo[pID][pJailed] = 2;
    PlayerInfo[pID][pJailTime] = 3600;
    ResetPlayerWeapons(playerid);
    SetPlayerInterior(playerid,0);
    return 1;
    }

    test es mal so

    if(strcmp(cmd,"/respawncars",true) == 0)
    {
    if(PlayerInfo[playerid][pLeader] == 1){
    for(new v=0; v<sizeof(Copcars); v++){
    for(new i=0;i< MAX_PLAYERS; i++){
    if(IsPlayerConnected(i)){
    if(GetPlayerVehicleID(i) != Copcars[v]){
    SetVehicleToRespawn(Copcars[v]);
    SendClientMessage(playerid, COLOR_WHITE,"* Fraktionsfahrzeuge respawnt.");
    GivePlayerMoney(playerid, -1500);
    }
    }
    }
    }
    }else{ return SendClientMessage(playerid,COLOR_RED," Du bist nicht Berechtigt!"); }
    return 1;
    }

    kennst du überhaupt das native von moveobjekt


    MoveObject(MVTor3, 1548.6528,-1628.4587,9-13.3828, 9, 3.0);


    MoveObject(objectid, Float:X, Float:Y, Float:Z, Float:Speed)


    dann siehst ja den fehler


    und zu den anderen errors könntest du mal bitte die direkt angeben
    ahja der warning unreachable code kann auch durch eine zeilen verschiebung ausgelöst werden
    bsp:
    ForceClassSelection(playerid);
    ..TogglePlayerSpectating(playerid, 0);

    Onplayerdisconnect musst du doch arbeiten !!


    8| erstmal überlegen das posten. Er sollte erstmal eine Variabel anlegen welche er auch speichert und ladet.
    Dan bei dem jeweiligen ereignis zieht er mit gettime das datum raus. welches er mit der anzahl der gewünschten Zeit addiert.
    Diese er auch speichert und dies sollte er auch zum schluss wenn der spieler sich auch einloggt wieder abfragen oder ein timer machen der dies checkt jedoch ist das nicht so sinnvoll. Beim einloggen sollte er das datum vergleichen welches er auch noch speichern sollte und die varaibel auf 0 setzen.

    mit der funktion


    Function ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:posx, Float:posy, Float:posz;
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(!BigEar[i])
    {
    GetPlayerPos(i, posx, posy, posz);
    tempposx = (oldposx -posx);
    tempposy = (oldposy -posy);
    tempposz = (oldposz -posz);
    //printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
    if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
    {
    SendClientMessage(i, col1, string);
    }
    else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
    {
    SendClientMessage(i, col2, string);
    }
    else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
    {
    SendClientMessage(i, col3, string);
    }
    else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
    {
    SendClientMessage(i, col4, string);
    }
    else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
    {
    SendClientMessage(i, col5, string);
    }
    }
    else
    {
    SendClientMessage(i, col1, string);
    }
    }
    }
    }
    return 1;
    }


    geht das sehr leicht
    native:
    ProxDetector(radius, playerid, string,Farbe1,Farbe2,Farbe3,Farbe4,Farbe5);


    und zur frage 2
    dazu könntest du ein textdraw erstellen für den spieler und es auch wieder entfernen oder du setzt den spielervector an manche punkte wo es sehr dunkel ist
    bsp tief ins meer. und wenn er enttiet wird musst die camera wieder hinter den Spieler setzen mit SetCameraBehindPlayer

    das schau mal in der property datei nach oder es kann auch daran liegen das limits übergehst oder ist bei dir MAX_PLAYERS neu definiert welches deinem server nicht angepasst ist


    und das mit dem payday ist imer Timer1 enthalten einfach wie schon gesagt mal nach dem beruf payday suchen strg +f

    probiers mal so


    format(query,sizeof query,"UPDATE `accounts` SET `Level` = %d SET `Geld` = %d SET `Adminlv` = %d WHERE `Name` = '%s.gtacsfun'", GetPlayerScore(playerid),GetPlayerMoney(playerid),pInfo[playerid][Administrator], PlayerName(playerid));
    mysql_query(query);
    mysql_free_result();



    hm meistens liegt entweder am name das dort ihrgend was durcheinander kommt
    dann würde ich noch zur sicherheit mysql_real_escape_string benutzen


    hast schon probiert es zu printen ob er überhaupt duch geht. Jedoch versteh ich nicht wieso du das einzelnt machst und nicht zusammen packst in einen string.