Beiträge von 4#Future

    Warum wurden geschätzte 1000 Variablen deklariert?


    Sind die Spielervariablen nicht ausreichend?


    Anstatt alle Fahrzeuge einzeln einzeln zu deklarieren,
    wären einfach Schleifen gut, um alles stark zu verkürzen.


    Also ordentlich ist auf jeden Fall anders...

    ocmd:heal(playerid, params[])
    {
    if(IsPlayerConnected(playerid))
    {
    new pID;
    if(sscanf(playerid, "u", pID)) SendClientMessage(playerid,ROT,"Benutze: /heal [Spielername/Spielerid]");
    SetPlayerHealth(pID, 100.0);
    return 1;
    }
    return 1;
    }
    Wenn es so auch nicht richtig ist,
    kann ich es Dir auch nicht sagen.


    Ich arbeite nicht mit ocmd.

    ocmd:heal(playerid, params[])
    {
    if(IsPlayerConnected(playerid))
    {
    new pID;
    if(sscanf(playerid,"u",pID)) return SendClientMessage(playerid,ROT,"Benutze: /heal [Spielername/Spielerid]");
    SetPlayerHealth(pID, 100);
    }
    return 1;
    }


    Der ist wohl der größte Blödsinn, der jemals im Forum geschrieben wurde.


    Deine Hilfe ist ja wohl mal absoluter Quatsch.


    xSonYx - Bitte lerne ersteinmal mit Anweisungen umzugehen: Wiki

    --


    Probiere es mal so:


    new Float:fscheckpoints[6][3] ={
    {657.8871,-1226.5524,16.0821},
    {687.5119,-1165.8440,14.9317},
    {792.3574,-1051.9912,24.3873},
    {794.8701,-1312.6343,13.0873},
    {666.5079,-1316.3820,13.1576},
    {670.3506,-1292.0353,13.2476}
    };


    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    if (IsPlayerInAnyVehicle(playerid))
    {
    if(fsauto[playerid])
    {
    fsCheckpointStatus[playerid]++;
    new letzerpunkt = 6;
    if(fsCheckpointStatus[playerid] < letzerpunkt)
    {
    DisablePlayerRaceCheckpoint(playerid);
    SetPlayerRaceCheckpoint(playerid,0,fscheckpoints[fsCheckpointStatus[playerid]][0],fscheckpoints[fsCheckpointStatus[playerid]][1],fscheckpoints[fsCheckpointStatus[playerid]][2],fscheckpoints[fsCheckpointStatus[playerid]+1][0],fscheckpoints[fsCheckpointStatus[playerid]+1][1],fscheckpoints[fsCheckpointStatus[playerid]+1][2],5.0);
    }
    else
    {
    fsauto[playerid] = 0;
    fsCheckpointStatus[playerid] = 0;
    SetVehicleToRespawn(GetPlayerVehicleID(playerid));
    DisablePlayerRaceCheckpoint(playerid);
    }
    }
    }
    return 1;
    }

    ocmd:veh(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    if(!GetPVarInt(playerid, "hasOneCar"))
    {
    new farbe1, farbe2, string[128];
    new car = GetPlayerVehicleID(car);
    new HatAuto[MAX_PLAYERS];
    if(sscanf(params,"ddd",car,farbe1,farbe2))return SendClientMessage(playerid,ROT,"Benutzung: /veh [CarID] [Farbe1] [Farbe2]");
    if(car < 400 || car > 611)return SendClientMessage(playerid,ROT,"Diese CarID gibt es nicht.");
    if(farbe1 < 0 || farbe1 > 252)return SendClientMessage(playerid,ROT,"Diese Farbe gibt es nicht.");
    if(farbe2 < 0 || farbe2 > 252)return SendClientMessage(playerid,ROT,"Diese Farbe gibt es nicht.");
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    new carid = CreateVehicle(car,X,Y,Z,0.0,farbe1,farbe2,60000);
    CreatedCars[CreatedCar] = carid;
    CreatedCar++;
    format(string,sizeof(string),"Du hast ein Fahrzeug gespawnt. Es hat die ID %d.",carid);
    SendClientMessage(playerid,ROT,string);

    SetPVarInt(playerid, "hasOneCar", 1);
    SetPVarInt(playerid, "hasOneCarID", carid);
    }
    else
    {
    SendClientMessage(playerid, ROT, "Du besitzt bereits ein Fahrzeug.");
    return 1;
    }
    }
    return 1;
    }


    // SetTimer("isOwnCarDestroyed", 1000, true);


    forward isOwnCarDestroyed();
    public isOwnCarDestroyed()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInAnyVehicle(i) && GetPlayerState(i) == 2)
    {
    if(GetPlayerVehicleID(i) == GetPVarInt(i, "hasOneCarID"))
    {
    new Float:vehHealth;
    GetVehicleHealth(GetPlayerVehicleID(i), vehHealth);
    if(vehHealth < 50)
    {
    DestroyVehicle(GetPlayerVehicleID(i));
    CreatedCar--;
    DeletePVar(i, "hasOneCar");
    DeletePVar(i, "hasOneCarID");
    }
    }
    }
    }
    }
    return 1;
    }

    Zitat

    Keine Farbe... (nur weiß vom Realchat)


    He? Wie meinst Du das jetzt?


    Wenn Du gar nichts siehst, funktionieren definitiv
    Deine Spielervariablen InSupport und InSupportt nicht.

    Nunja.


    Anschauen:


    Steht ein Haus zum Verkauf, kann es jeder Immobilienmarkler betreten.


    Vorführung:


    Möchte es ein Immobilienmarkler einen Kunden vorführen, erlaubt er diesen
    durch einen simplen Befehl, dass er das Haus ebenfalls betreten darf.


    Handling:


    Um das Jobangebot für mehrere Nutzer attraktiv zu halten, kann ein
    Immobilienmarkler höchstens 3 oder 4 Häuser gleichzeitig "besitzen", die
    er dann mit einem Befehl, zum ausgemachten Kaufpreis and den Nutzer verkauft.


    Dabei läuft eine mathematische Rechnung ab, die je nach Skill, die Provision
    des
    Immobilienmarklers festlegt und ihm sofort aufs Konto gutschreibt.


    Verkauf:


    Ist der Käufer interessiert, verkauft ihm der Markler "sein" Haus, durch
    einen Befehl und erhält dabei seine Provision, je nach Skill, den erreicht hat.


    Abschluss:


    Der neue Eigentümer des Hauses wird eingetragen und der Markler
    hat das Haus somit erfolgreich verkauft.


    Zusatz:


    Ein Immobilienmarkler kann dem anderen Immobilienmarkler das Haus,
    dass "er" vorrübergehend gekauft hat, nicht wegnehmen oder nicht
    selbst auch noch kaufen.


    Ein Immobilienmarkler kann jedes Haus kaufen, zahlt dafür aber kein Geld.


    Ist der Hausinfo sollte dann nicht Besitzer angezeigt werden, sondern bsp.
    wird verkauft durch.


    Also ich finde es eine gute und denkbar einfache Idee.
    Auch die Umsetzung sollte ebensfall kein Problem darstellen.

    Hast Du schonmal geschaut, ob vielleicht noch andere
    Werte, die aus der Datenbank geladen werden, fehlerhaft
    sind bzw. ob überhaupt etwas aus der DB geladen wird?


    Möglicherweise hast Du Recht und das Plugins funktioniert nicht.


    Überprüfe mal ob überhaupt irgendwas aus der DB geladen wird
    und ob MySQL selbst auch keine Fehler beim Laden und Verbindung zeigt.

    Hast Du schonmal überprüft ob InSupport und
    InSupportt auch wirklich beide auf "true" sind?


    Einen Fehler sehe ich ehrlich gesagt nicht.


    Kann auch sein, dass ich gerade einen Optikfehler habe :D

    Ja, Du hast string bereits irgendwo anderes deklariert.


    Also mach's so:


    else if(InSupport[playerid] == true)
    {
    new adminlevel[56];
    if(GetPVarInt(playerid,"Adminlevel")==1)format(adminlevel,sizeof(adminlevel),"Supporter");
    else if(GetPVarInt(playerid,"Adminlevel")==3)format(adminlevel,sizeof(adminlevel),"Moderator");
    else if(GetPVarInt(playerid,"Adminlevel")==1335)format(adminlevel,sizeof(adminlevel),"Admin");
    else if(GetPVarInt(playerid,"Adminlevel")==1337)format(adminlevel,sizeof(adminlevel),"Lead-Admin");
    else if(GetPVarInt(playerid,"Adminlevel")==1338)format(adminlevel,sizeof(adminlevel),"Serverinhaber");


    GetPlayerName(playerid, sendername, sizeof(sendername));


    format(string, sizeof(string), "%s(%s) sagt: %s", sendername, adminlevel, text);
    SendClientMessage(playerid, HIER_MAL_EINE_ANDERE_FARBE, string);


    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(InSupportt[i] == true)
    {
    SendClientMessage(i, HIER_MAL_EINE_ANDERE_FARBE, string);
    return 1;
    }
    }
    }
    }


    else if(InSupportt[playerid] == true)
    {
    GetPlayerName(playerid, sendername, sizeof(sendername));


    format(string, sizeof(string), "%s sagt: %s", sendername, text);
    SendClientMessage(playerid, HIER_MAL_EINE_ANDERE_FARBE, string);


    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(InSupport[i] == true)
    {
    SendClientMessage(i, HIER_MAL_EINE_ANDERE_FARBE, string);
    return 1;
    }
    }
    }
    }

    Du hast ein paar Sachen ganz schön verdreht
    und musst auch nicht in beiden Funktionen alles
    für Supporter und Fragesteller doppelt abfragen.


    Eine Funktion für Fragesteller, die andere für Supporter.


    else if(InSupport[playerid])
    {
    new adminlevel[56];
    if(GetPVarInt(playerid,"Adminlevel")==1)format(adminlevel,sizeof(adminlevel),"Supporter");
    else if(GetPVarInt(playerid,"Adminlevel")==3)format(adminlevel,sizeof(adminlevel),"Moderator");
    else if(GetPVarInt(playerid,"Adminlevel")==1335)format(adminlevel,sizeof(adminlevel),"Admin");
    else if(GetPVarInt(playerid,"Adminlevel")==1337)format(adminlevel,sizeof(adminlevel),"Lead-Admin");
    else if(GetPVarInt(playerid,"Adminlevel")==1338)format(adminlevel,sizeof(adminlevel),"Serverinhaber");

    GetPlayerName(playerid, sendername, sizeof(sendername));


    new string[128];
    format(string, sizeof(string), "%s(%s) sagt: %s", sendername, adminlevel, text);
    SendClientMessage(playerid, HIER_MAL_EINE_ANDERE_FARBE, string);


    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(InSupportt[i])
    {
    SendClientMessage(i, HIER_MAL_EINE_ANDERE_FARBE, string);
    return 1;
    }
    }
    }
    }


    else if(InSupportt[playerid])
    {
    GetPlayerName(playerid, sendername, sizeof(sendername));


    new string[128];
    format(string, sizeof(string), "%s sagt: %s", sendername, text);
    SendClientMessage(playerid, HIER_MAL_EINE_ANDERE_FARBE, string);


    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(InSupport[i])
    {
    SendClientMessage(i, HIER_MAL_EINE_ANDERE_FARBE, string);
    return 1;
    }
    }
    }
    }

    Ich kenne mich mit sscanf zwar nicht gut aus,
    aber laut Dokumentation solltest Du es so versuchen:


    ocmd:accept(playerid,params[])
    {
    new anfrage[128];
    if(sscanf(params,"s",anfrage)) return SendClientMessage(playerid,Grau,"Benutze: /accept [Repair / Ticket / Refill / Taxi / Mechanic]");
    else
    {
    new cmdtext[10];
    if(strcmp(cmdtext,"repair",true) == 0)
    {
    if(GetPVarInt(playerid,"Mechaniker"))
    {
    new Mecha = GetPVarInt(playerid,"Mechaniker");
    new Preis = GetPVarInt(playerid,"MechanikerPreis");
    if(GetPlayerMoney(playerid)> Preis)
    {
    new string[256],string1[128];
    format(string,sizeof(string),"* Der Spieler %s hat deine Reperaturanfrage akzeptiert. Du hast den Reperaturpreis von %d$ erhalten.",PlayerName(playerid),Preis);
    format(string,sizeof(string),"* Du hast dein Auto von Mechaniker %s für %d$ reparieren lassen.",PlayerName(Mecha),Preis);
    new pCar = GetPlayerVehicleID(playerid);
    GivePlayerMoney(playerid,-Preis);
    GivePlayerMoney(Mecha,Preis);
    RepairVehicle(pCar);
    SendClientMessage(Mecha,Weiss,string);
    SendClientMessage(playerid,Weiss,string1);
    return 1;
    }
    }
    }
    }
    return 1;
    }