Beiträge von Tround

    das ist mir zu erst ins auge gefallen..
    for(new i; i<MAX_PLAYERS; i++)
    {
    if(Spieler[i][Sprache] == 0)
    {
    SendClientMessageR(playerid,Weiss,string,10.0);


    du machst eine schleife mit "i" aber schickst die message immer an "playerid"

    du solltest den unterschied zwischen string und integer lernen..
    Reg_Passwort sollte eigentlich ein string sein jedoch nimmst du GetPVarInt und nicht GetPVarString...


    das gleiche hier: mysql_real_escape_string(age,age);
    age ist wie ich vermute ein integer und kein string

    das ist der nachteil von pickups..
    entweder das pickup zerstören wenn man es aufgenommen hat und danach wieder erstellen.
    oder das ganze per befehl mit isplayerinrangeofpoint machen.

    createhaus(Float:X,Float:Y,Float:Z,Preis,Level)
    {
    for(new i=0; i<sizeof(hInfo); i++)
    {
    if(hInfo[i][hCreated]!=0)continue;
    hInfo[i][hBesitzer] = 0;
    hInfo[i][hPreis] = Preis;
    hInfo[i][hLevel] = Level;
    hInfo[i][h_enx] = X;
    hInfo[i][h_eny] = Y;
    hInfo[i][h_enz] = Z;
    hInfo[i][hCreated] = 1;
    hInfo[i][hOwned] = 0;
    new string[128];
    format(string,sizeof(string),"Das Haus hInfo[%i] wurde erstellt.",i);
    SendClientMessageToAll(COLOR_RED,string);
    saveHausToDB(i);
    return 1;//<<--- schleife wird beendet nachdem ein haus erstellt wurde
    }
    }


    ocmd:ch(playerid,params[])
    {
    new preis,level;
    if(sscanf(params,"ii",preis,level))return SendClientMessage(playerid,COLOR_RED,"LOL");
    for(new i = 0; i<sizeof(hInfo); i++)//und hier ist die schleife überflüssig?
    {
    if(hInfo[i][hCreated]!=0)continue;
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    createhaus(X,Y,Z,preis,level);
    }
    return 1;
    }


    sieht so aus als ob du keine fehler mehr bekommst in der log.. bei deinen anderen fehlern bin ich überfragt :wacko:

    Passagiere hinter den Piloten porten, anschließend freezen...


    und wenn dann das flugzeug startet bleibt doch der spieler einfach stehen?
    nicht so optimal..
    mit putplayerinvehicle wie gesagt kann man das realisieren.. auch wenn gar keine plätze verfügbar sind..
    jedoch beim aussteigen gibts einen gamecrash da der charakter nicht wirklich eingestiegen ist. (müsste man mit setplayerpos wieder aussteigen dann klappts)

    ich hatte erst vor paar tagen genau das gleiche problem.
    bei mir lag es an der datenbank irgendwie.. versuch mal einen float wert manuel einzutragen und schau ob es sich einspeichern lässt überhaupt..
    bei mir wurde z.b 123.45 zu 123 obwohl ich die spalte als float angegeben hatte..
    lass mich mal überlegen wie ich das gefixxt hab.. aber probiers das mal

    if(PlayerInfo[playerid][pLevel] == 3)
    bedeutet ja der ber spieler MUSS level 3 sein.. level drüber und drunter gehen nicht.
    wenn du aber level 3 und größer haben willst musst du es so machen
    if(PlayerInfo[playerid][pLevel] <3)
    falls es kleiner als 3 ist wird returnt

    hier mal ein beispiel mit ocmd und sscanf

    ocmd:schein(playerid,params[])
    {
    new pID,scheinname[10];
    if(sscanf(params,"us",pID,scheinname))return SendClientMessage(playerid,BLAU,"Info: /schein [ID] [Scheinname]");
    if(strcmp(scheinname,"auto",true)==0)
    {
    //schein geben
    }
    return 1;
    }

    das is nicht nur bei getplayerpos so.. das kenn ich auch von getplayerskin und anderen sachen.
    ich vermute mal die sachen werden einfach zu spät ausgelesen.
    ich habe mir einen /restart befehl geschrieben in dem die spieler abgespeichert und gekickt werden 1 sekunde bevor der gmx befehl kommt.
    wüsste aber auch gerne wie man das sonst machen könnte.. den skin kann man ja im enum abspeichern wenn er sich ändert..
    aber man kann ja nicht die ganze zeit die koordinaten auslesen lassen. (könnte schon aber resourcenfreundlichkeit sagt nein)

    im wiki steht doch ein code schnipsel?
    http://wiki.sa-mp.com/wiki/GetVehicleHealth_DE



    //repariert das Fahrzeug, indem sich der Spieler gerade befindet.
    if(strcmp(cmdtext, "/repair", true) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid)) //checkt ob der spieler in einem Fahrzeug sitzt
    {
    new Float:health;
    new veh;
    veh = GetPlayerVehicleID(playerid);
    GetVehicleHealth(veh, health);
    if(health >500) return SendClientMessage(playerid,COLOR_RED,"Du brauchst dein Fahrzeug nicht zu reparieren");
    //if(health >500) 500 kann beliebeg verändert werden. Wenn die Fahrzeughealth über dieser Zahl ist,
    //lässt sich das Fahrzeug nicht reparieren!
    SetVehicleHealth(veh,1000);
    SendClientMessage(playerid,COLOR_GREEN,"repariert!");
    }
    else //wenn der Spieler in keinem Fahrzeug sitzt
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist in keinem Fahrzeug!");
    }
    }