Beiträge von Goldkiller

    Hast jetzt vielleicht keine Fehler beim kompilieren, dennoch sind dort noch logische Fehler.


    if(GetPlayerVehicleID(playerid) == grovefahrzeuge(vehicleid))
    Das wird niemals funktionieren, außer der Spieler sitzt zufällig im Fahrzeug mit der Vehicleid 1 und es handelt sich dabei auch um ein Grove Fahrzeug.
    Die Funktion grovefahrzeuge() bei dir gibt doch schon von sich selbst zurück,ob es ein Grove Fahrzeug ist. Das musst du nicht mit irgendetwas vergleichen.
    Wo hast du überhaupt die vehicleid her bei OnPlayerStateChange ?


    Auch wenn man sich das mal mit den return Werten überlegt:
    GetPlayerVehicleID() - Gibt einen Wert zwischen 0 und MAX_VEHICLES-1 zurück.
    grovefahrzeuge() - Gibt entweder 0 oder 1 zurück.

    Ist auch nicht so der Knaller.
    Jetzt mal abgesehen davon,dass die Datei auch nicht erstellt wird. Woher weisst du denn,dass die Zufallszahl + 1 frei ist wenn die generierte Zufallszahl belegt ist ?
    dini_Exists(pad) pad oder pfad ?
    stock Checknummer(playerid) stock kann weg.
    new pfad[128];128 ist Bischen viel. 20 tut es auch.


    Anrufer[MAX_PLAYERS] = -255;
    HandyChat[MAX_PLAYERS] =-255;


    Das wird aber nur für den Index 0 den Wert auf -255 setzen.
    Außerdem sehe ich nirgendwo im Script,wo -255 anders behandelt wird als 0. Für einen ungültigen Wert einer SpielerID würde ich immer INVALID_PLAYER_ID nehmen. Ist mMn viel verständlicher,da daraus bereits hervor geht wofür der Wert stehen soll.

    Das Problem ist,dass du pAdmin im enum aufzählst und eine Funktion so nennst.
    Der Begriff pAdmin hat also 2 Bedeutungen. Das gefällt dem Compiler aber nicht.


    Du könntest die Funktion z.B. istAdmin , istpAdmin oder IstAdminLevel nennen. Hauptsache du belegt den Begriff nicht doppelt für eine Funktion und eine Konstante.

    Zum Verständnis.
    CreateDynamicObject und MoveDynamicObject gehören zusammen. Alle weiteren Objekt-Funktionen sind ebenfalls mit Dynamic gekennzeichnet.
    CreateObject und MoveObject gehören zusammen.


    Das ist schon mal nicht richtig bei dir.
    Kommt denn bei dem Aufruf des Befehls /pd2 diese Meldung "SendClientMessage(playerid, COLOR_YELLOW,"Das Hoftor ist offen. Beeil dich es schließt in 5 Sekunden");" ?

    Zitat

    if(TutorialCheckpoint[playerid]==1&&IsPlayerInRangeOfPoint(playerid,5.0,1779.6218,-1941.9309,13.5658))


    An welche Position setzt du denn den Checkpoint ? Wenn du sowieso weisst,dass er bei TutorialCheckpoint den Wert 1 hat, wozu dann noch die Position prüfen ?

    Das Gleiche wie auch bei MoveObject:

    Spoiler anzeigen
    Wiki ist gerade nicht erreichbar

    MoveObject(objectid, Float:X, Float:Y, Float:Z, Float:Speed, Float:RotX = -1000.0, Float:RotY = -1000.0, Float:RotZ = -1000.0);

    Zitat

    Float:RotX The FINAL X rotation (optional).
    Float:RotY The FINAL Y rotation (optional).
    Float:RotZ The FINAL Z rotation (optional).


    Es ist also die Rotation des Objektes.

    Da liefert TutNichts schon die richtige Antwort und sie wird gekonnt ignoriert oder als falsch abgestempelt.


    Zitat

    if(sInfo[playerid][pAdmin]>=1)return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");


    Alle Werte die gleich oder größer als 1 sind ( z.B. 2, 5 , 1053 , 2385 ) erfüllen die Bedingung. Ist die Bedingung erfüllt,wird ausgegeben,dass das Level zu niedrig ist. Die Ausgabe der Nachricht entspricht nicht der Logik hinter der Abfrage.
    Die Ganze Bedingung negieren würde gehe, oder abfragen ob kleiner als 1 etc.


    //Edit:
    Die Lösung von Rocky mit ! klappt auch nicht richtig,da nicht die ganze Bedingung negiert wurde.Lediglich der Wert hinter pAdmin wird negiert,dass bringt nicht viel.

    Hast du keine Lust die Fehlermeldungen zu lesen ?


    Zitat

    [11:00:45] CMySQLHandler::Query(UPDATE `accounts` SET `Admin` = '5', `Level` = '1', `Geschlecht` '1', `Exp` = '0', `MaxExp` = '4', `Tut` = '0', `Leader` = '0', `Team` = '0', `Rank` = '0', `Job` = '0', `Money` = '15000', `Bank` = '10000', `Festgeld` = '0', `Morde` = '0', `Gestorben` = '0', `Verbrechen` = '0', `Spielzeit` = '0' WHERE `Name` 'Toniio') - An error has occured. (Error ID: 1064, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1', `Exp` = '0', `MaxExp` = '4', `Tut` = '0', `Leader` = '0', `Team` = '0', `Ra' at line 1)[11:00:45] >> mysql_query( Connection handle: 1 )
    [11:00:45] CMySQLHandler::Query(UPDATE `accounts` SET `Knast` = '0', `Wanteds` = '0', `Verwarnungen` = '0', `Mats` = '0', `SafeMats` = '0', `Drugs` = '0', `SafeDrugs` = '0', `DrugSkill` = '1', `NewsSkill` = '1', `AnglerSkill` = '0', `LKWSkill` = '1', `AnwaltSkill` = '1', `PilotSkill` = '1', `ZugSkill` = '1', `DetektivSkill` = '1', `LKWExp` = '0', `LKWMaxExp` = '0', `AnwaltMaxExp` = '30' WHERE `Name` 'â') - An error has occured. (Error ID: 1064, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''â'' at line 1)[11:00:45] >> mysql_query( Connection handle: 1 )
    [11:00:45] CMySQLHandler::Query(UPDATE `accounts` SET `Skin` = '226', `DrivLic` = '0', `FlugLic` = '0', `BootLic` = '0', `AngelLic` = '0', `GunLic` = '0', `DrivLicPoint` = '0', `FestgeldTime` = '0', `Spawnchange` = '0', `Hauskey` = '255', `pLocal` = '0', `pInt` = '0', `pWorld` = '0', `Perso` = '0', `Bizkey` = '2224', `Nummer` = '0', `KH` = '0', `JailTime` = '0', `Jailed` = '0', `JailType` = '84' WHERE `Name` = '') - Successfully executed.[11:00:45] >> mysql_query( Connection handle: 1 )[11:00:45] CMySQLHandler::Query(UPDATE `accounts` SET `Muted` = '0', `MuteTime` = '0', `LottoZahl` = '0', `HandyGeld` = '1000', `Erstehilfe` = '0', `ContractGeld` = '0', `Waffen` = '0', `pGun1` = '0', `pGun2` = '0', `pGun3` = '0', `pGun4` = '0', `pAmmo1` = '0', `pAmmo2` = '0', `pAmmo3` = '0', `pAmmo4` = '0', `pLottoNr` = '0', ´P_Timer` = '0', `pCreateH` = '0', `pperso` = '0', `pnavi` = '0' WHERE `Name` = 'Toniio') - An error has occured. (Error ID: 1064, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '´P_Timer` = '0', `pCreateH` = '0', `pperso` = '0', `pnavi` = '0' WHERE `Name` = ' at line 1)[11:00:45] >> mysql_query( Connection handle: 1 )
    [11:00:45] CMySQLHandler::Query(UPDATE `accounts` SET `gPupgrade` = '0', `pAlcoholPerk` = '0', `pDrugPerk` = '0', `pMiserPerk` = '0', `pWaffenPerk` = '0', `pPainPerk` = '0', `pTraderPerk` = '0', `pSHealth` = '100.000000', `Mask` = '0', `Maskuse` = '0', `PaintballPunkte` = '0', `Premium` = '1', `PayDayGeld` = '0', `Quitjob` = '0', `Zollpass` = '0', `Startbonus` = '0', `Navi` = '0', `CDSpieler` = '0', `Gangjail` = '0', `PayPoints` = '1' WHERE `Name` = 'Toniio') - An error has occured. (Error ID: 1054, Unknown column 'gPupgrade' in 'field list')
    [11:00:45] >> mysql_query( Connection handle: 1 )
    [11:00:45] CMySQLHandler::Query(UPDATE `accounts` SET `dx` = '0.000000', `dy` = '0.000000',`dz` = '0.000000' WHERE `Name` = '') - Successfully executed.


    1. Da fehlt zwischen `Geschlecht` und dem Value das Gleich ( = ) Zeichen.
    2. Bei Where fehlt zwischen `Name` und dem Value das Gleich ( = ) Zeichen. Hast aber bestimmt auch die Werte durcheinander,denn á ist bestimmt nicht der Name.
    3. Falsches Zeichen vor P_Timer. Es muss ` sein und nicht ´.
    4. gPupgrade gibt es bei dir wohl nicht in der Tabelle als Attribut.
    5. Klappt zwar,aber der Wert für `Name` ist leer.


    SQL lernst du nicht hier im Forum.


    Die Abfrage IsPlayerConnected kommt übrigens zu früh. Da pID bei Deklarierung der Variable den Wert 0 hat, wird geprüft ob der Spieler mit der ID 0 verbunden ist.Erst danach wird ausgelesen,was der Spieler hinter /arrest eingegeben hat.
    Heißt also,es wird nie geprüft ob der Name / ID die wird eingegeben haben verbunden ist, sondern stehts geprüft ob ID 0 verbunden ist.
    Die IsPlayerConnected Abfrage solltest du nach der Nutzung von sscanf einfügen.


    Das wäre jetzt ein "typsischer ID 0 Bug".

    Und mehr wird da nicht ausgegeben ?
    Alleine schon weil du bei s nicht die größe angibst, müsstest du deine Warnung erhalten.
    sscanf(resultline,"p<|>dsffffffddddddddddddddddddddd",
    Gib dort mal für s die Größe an die bei Owner möglich ist.

    sscanf(resultline,"p|<dsffffffddddddddddddddddddddd>",
    Du hast < und > falsch gesetzt. Da ist zumindest schon mal 1 Fehler.
    Ich vermute mal du nutzt das Plugin,daher:
    http://forum.sa-mp.com/showthread.php?t=120356
    Schau mal wie dort das p in Verbindung mit <,> und dem Trennzeichen ( in deinem Fall | ) eingesetzt wird.


    Edit:
    Übrigens ist dein Query nicht so gut gewählt mMn.Das WHERE kann man sich sparen und man könnte mit while anstatt if alle Einträge durchgehen mit der Funtion mysql_fetch_row_format().

    Was verstehst du denn daran nicht?
    Hier prüfst du nicht den return Wert gegen 0:
    if(strcmp(Fraktion[i][f_name], name, true))
    Prüf doch ob die Funktion strcmp dir 0 zurück gibt und schon bist du fertig.



    Zitat

    Hä und was ist dann jetzt falsch muss ich statt true false schreiben?


    Nein, lesen was ich geschrieben habe und am besten den Wiki Artikel dazu.