Beiträge von Jeffry

    Ich werde dir das Scripten nicht in aller Einzelheit erklären, daß ist auch nur schwer möglich, für jeden, aber ich gebe dir ein paar gute Tipps wie du dir es selbst sehr gut beibringen kannst, so habe ich es zumindest vor fast 5 Jahren gelernt.


    Du solltest dich zu aller erst mit den Grundlagen der Programmierung beschäftigen, bevor du anfängst einen vorhandenen Gamemode zu "vergewaltigen", dazu gehört nämlich ein Grundwissen, welches bei dir offensichtlich fehlt.


    Ich erkläre dir mal wie du am besten lernen kannst, damit du in Zukunft auch verstehst, was ein Code ist, und wann du welchen Code benutzen musst, weil so hat das doch recht wenig Sinn, wenn du nicht mal weißt welchen Code du uns zeigen sollst um das Problem zu beheben.


    Also ich habe PAWN gelernt, indem ich mir den LAdmin4v2 (damals sehr neu) genommen habe, und versucht habe, die einzelnen Teile zu verstehen. Dann habe ich einfach losgelegt, und überlegt, welcher Teil das tut, was ich will. Den Code hab ich mir dann angeschaut, und so für den neuen Code verändert, dass er seinen Zweck erfüllt hat.


    Wichtig: Fang klein an, jeder tut das, nimm nicht gleich einen Gamemode und verunstalte den, du wirst nichts kapieren. Ich arbeite nun über 4 1/2 Jahre mit PAWN und mein Wissen ist noch lange nicht komplett, im Gegenteil.
    Falls dir jemand sagt, du sollst dir die PAWN Doc durchlesen, lass es, genauso rate ich dir davon ab das wiki in allen Einzelteilen durchzulesen. Du wirst es nicht verstehen. Das kannst du in 3 Jahren machen, wenn du es verstehst, und selbst dann wirst du den Großteil in der Pawn Doc nicht auf Anhieb verstehen.


    Noch was: Ausprobieren. Du kannst nichts kaputt machen. Das einzige was passieren kann, ist dass du Errors bekommst. Na und? Für was gibt es STRG+Z. Einfach probieren, wenn du nicht weiter kommst, lass es, oder frag nach Hilfe, sofern es im kleinen Bereich ist.


    Learning By Doing nennt sich das. Nicht aufgeben, einfach machen machen machen. Das muss nicht immer perfekt sein, und muss auch nicht immer Sinn ergeben, hauptsache du machst was. Zum Anfang kannst du dir z.B. vornehmen, einen FilterScript der hier im Forum veröffentlicht wurde (einen einfachen) nachzumachen. Musst ihn ja nicht auch veröffentlichen, aber nur zur Übung einfach nachmachen. Wenn du hängst, kannst du ja nachsehen, was falsch ist.


    Meiner Meinung nach besser als alles andere.


    Wie machst du das?
    Du suchst dir einen Filterscript der irgendwas macht, sei es ein Auto Spawn Menu.
    Schau dir zuerst mal an, was der FilterScript denn machst (z.B. ein Auto-Menu, um Auto's zu spawnen). Dann überlegst du, was du denn alles dafür brauchst, suchst dir die Funktionen zusammen (Google, SAMP Wiki) und legst los so ein Menu zu erstellen. Wenn du irgendwo hängst, kannst du einen Blick in den Code werfen, und ein paar Zeilen, die du denkst zu verstehen abschreiben, dann siehst du ja was passiert.
    Am Besten ist es aber, wenn du es ganz ohne in den Code zu schauen hin bekommst, deshalb fang mit leichten Dingen an.
    Bis du erst mal richtig rein findest vergehen mit Sicherheit 1-3 Monate! Also nicht verzagen, du wirst am Anfang ziemlich oft stecken bleiben und auf die Nase fallen (ist wie laufen lernen). Ich weiß das von mir. Wenn du einmal drinne bist, dann gehts jeden Tag besser.


    PS: Ich hab es ganz alleine gelernt. Die einzige Hilfestellung die ich damals hatte war ein /kill Command aus 6 Zeilen code, den mir jemand gemacht hat. Den gebe ich dir auch:
    if(strcmp(cmdtext, "/kill", true) == 0)
    {
    SetPlayerHealth(playerid, 0.0);
    SendClientMessage(playerid, 0xFF0000FF, "Du hast dich selbst getötet.");
    return 1;
    }
    Probiere aus, mit diesem Code klar zu kommen.
    Das fügst du im callback OnPlayerCommandText ein. Dann auf den Compiler drücken, und Server neu starten.
    Wenn du damit klar kommst, gehe weiter und versuche Dinge selbst zu erstellen.


    Und am wichtigsten: Immer dranbleiben!
    Viel Erfolg!

    Willkommen in der Scripting Base.


    An sich ist diese Warnung kein direkter Problem welches sich auf deinen Server auswirkt, sondern dient nur dir, sie weißt dich darauf hin, dass dein Code nicht korrekt eingerückt wurde.


    Beispiel:
    //alles ok
    Code
    Code
    Code


    //nicht ok
    Code
    Code
    Code



    Das dient lediglich der Übersichtlichkeit deines Codes. Wenn dir die egal ist, kannst du folgendes oben im Code unter die Includes setzen:
    #pragma tabsize 0


    Dann bekommst du diese Warnung nicht mehr.

    Du setzt die Variable nirgends.
    Ändere
    SetPlayerSkin(playerid,dini_Int(SpielerDatei,"Skin"));


    Zu
    sInfo[playerid][sSkin]=dini_Int(SpielerDatei,"Skin");
    SetPlayerSkin(playerid, sInfo[playerid][sSkin]);

    new veh = CreateVehicle(mID,xc,yc,zc,rc,-1,-1,-1);
    PutPlayerInVehicle(playerid, veh, 0);



    Edit: @Dieter^: @CyberFish:
    Er hat doch Recht, was soll er mit dieser Antwort anfangen? PutPlayerIntoVehicle gibt es nicht mal und der Rest ist sinnlos und keineswegs hilfreich. Ebenso wie eure Posts.

    Poste bitte den Code mit dem du
    sCarInfo[i][sName]
    lädst.


    Eventuell debuggst du ihm auch gleich nach dem selben Prinzip wie den Befehl und postest den Log.

    Ich sehe gerade, dass ich da das i vergessen habe, sorry.


    printf("i: %d / Name: %s", sCarInfo[i][sName]);


    Zu
    printf("i: %d / Name: %s", i, sCarInfo[i][sName]);


    Wie sieht es jetzt aus?




    Hier auch:
    printf("i: %d loaded", i);


    Ich hau mich aufs Ohr, so viele Fehler sind ja peinlich. :S :sleeping:

    Wenn du es richtig machst, dann bringt es was. Eine der Includes ist veraltet, oder du nutzt allgemein eine alter Version und eine Include ist zu neu.


    Poste bitte die Zeilen mit den Fehlern in der streamer.inc.

    CMD:carlist(playerid, params[]){
    new str[500],headline[64],count;
    new veh = GetPlayerVehicleID(playerid);
    printf("Command aufgerufen: ID: %d", playerid);
    for(new i; i != MAX_VEHICLES; ++i)
    {
    printf("i: %d / Name: %s", sCarInfo[i][sName]);
    if(!sCarInfo[i][sName][0])continue;
    //if(strcmp(PlayerName(playerid,sCarInfo[i][sName],false) == 0)
    if(strcmp(PlayerName(playerid),sCarInfo[i][sName],false) == 0)
    {
    printf("i: %d loaded");
    format(str,sizeof(str),"%s{FFFFFF}SlotID: %d | ID: %d | Name: %s | Türen: %s{FFFFFF} | Status: %s{FFFFFF} | Verwahrung: %s {FFFFFF} | Kennzeichen: %s{FFFFFF}\n",str,i,veh,GetVehicleName(sCarInfo[i][CarModelID]),
    (!sCarInfo[i][CarLock])?("{21DD00}Aufgeschlossen"):("{FF0000}Abgeschlossen"),
    (sCarInfo[i][NeedRep])?("{FF0000}ben. Reparatur"):("{21DD00}Fahrtüchtig"),
    (sCarInfo[i][CarAbgeschleppt])?("{FF0000}Ja"):("{21DD00}Nein"),
    sCarInfo[i][CarSchildName]);
    ++count;
    }
    }
    printf("count: %d", count);
    if(!count)return SendClientMessage(playerid,-1,"Du besitzt kein Fahrzeug");
    format(headline,sizeof(headline),"Du hast %d Fahrzeuge.",count);
    return ShowPlayerDialog(playerid,DIALOG_AUTOUNNOETIG,DIALOG_STYLE_MSGBOX,headline,str,"Bestätigen","Schließen");
    }


    Was wird geprintet?

    Leute, lest doch den Fehler auch gescheit. :pinch:


    Zitat

    C:\Users\Timo\Desktop\Script\pawno\include\streamer.inc(325) :


    Der Fehler liegt in der streamer.inc
    Aktualisiere alle deine Plugins.

    Wurden dem Vehikel auch die Reifen zu einem speziellen Reifen gesetzt?
    Wird die Position in der Datenbank korrekt gesetzt?
    Werden die Farben in der Datenbank korrekt gesetzt
    ?


    Ist es so schwer diese Fragen zu beantworten? Ich habe die dir nicht zum Spaß gestellt. Wenn du Hilfe erwartest, solltest du auch kooperieren.



    Des Weiteren, schalte bitte den Debug Modus (Log Modus) deines MySQL Plugins ein (LOG_ALL) und poste dann den server_log zu der entsprechenden Speicherung, die nicht funktioniert.

    So, jetzt hast du endlich den ganzen Befehl gepostet.


    CMD:carlock(playerid,params[])
    {
    new veh;
    if(!IsPlayerInAnyVehicle(playerid)) veh = GetClosestVehicle(playerid, 5.0);
    else veh = GetPlayerVehicleID(playerid);
    id = getSlotID(veh);
    if(id == -1)return SendClientMessage(playerid,-1,"Du besitzt kein Fahrzeug!");
    if(veh == INVALID_VEHICLE_ID) return SendClientMessage(playerid,-1,"Du bist nicht in der Nähe eines Fahrzeuges.");
    if(strcmp(PlayerName(playerid),sCarInfo[id][sName]) != 0) return SendClientMessage(playerid,-1,"Dieses Fahrzeug gehört nicht dir.");
    if(sCarInfo[id][CarLock] == 0)
    {
    sCarInfo[id][CarLock] = 1;
    SetDoors(sCarInfo[id][VehID], true);
    soundHorn(sCarInfo[id][VehID]);
    SendClientMessage(playerid,-1,"Fahrzeug abgeschlossen");
    }
    else if(sCarInfo[id][CarLock] == 1)
    {
    sCarInfo[id][CarLock] = 0;
    SetDoors(sCarInfo[id][VehID], false);
    soundHorn(sCarInfo[id][VehID]);
    SendClientMessage(playerid,-1,"Fahrzeug aufgeschlossen");
    }
    return 1;
    }


    GetClosestVehicle:
    http://forum.sa-mp.com/showpost.php?p=906308&postcount=6

    Wurden dem Vehikel auch die Reifen zu einem speziellen Reifen gesetzt?
    Wird die Position in der Datenbank korrekt gesetzt?
    Werden die Farben in der Datenbank korrekt gesetzt?