Beiträge von Manniac

    1. Code ist nicht erreichbar, meistens ne Klammer zu früh oder ein return zu früh-
    2. Du hast einen Parameter vergessen/zu viel
    3. Hast eine Variable deklariert, die nicht benutzt wird.
    4. Hastr eine Variable deklariert, die nicht benutzt wird
    5. Einrückungsfehler
    6. Zu viele / weniger Parameter


    Du solltest genug eigeninitative haben, um die warnings zu beheben


    Der Command hat ja mehr Fehler in 8 Zeilen, als die NSA Abhördaten hat.


    Für was brauchst du die Abfrage, ob der Spieler auf dem Server ist? Wenn der Spieler den command eingibt, wird er wohl auf dem Server sein..
    Des Weiteren sollte dort #pragma unused params verwendet werden.

    Schreib das am besten so.
    ocmd:ordnungsamtduty(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
    new string[128],
    fahrzeug,
    Float:pos[4];//arrays ftw
    format(string,sizeof(string),"%s ist nun als Ordnungsbeamter im Dienst.",SpielerName(playerid));
    SendClientMessageToAll(BABYBLAU,string);
    GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
    GetPlayerFacingAngle(playerid,pos[3]);
    fahrzeug=CreateVehicle(525,pos[0],pos[1],pos[2],pos[3],-1,-1,0);
    PutPlayerInVehicle(playerid,fahrzeug,0);
    return 1;
    }
    Habe die Variablen in einem Array zusammengefasst

    new bots,Botimer; Botimer = SetTimer("bot",1000,true);
    forward bot();
    public bot()
    {
    bots++;
    switch(bots)
    {
    case 0:{ConnectNPC("Name","Name");}
    case 1:{ConnectNPC("Name","Name");}
    case 2:{ConnectNPC("Name","Name");}
    [..]
    case 15:{KillTimer(Botimer);}
    }
    }
    Sollte doch auch funktionieren, oder?

    Spoiler anzeigen
    Guten Abend,

    Spoiler anzeigen
    eventuell kennen ein paar den Virus bzw Spyware "exclusivereward".
    Dieser lässt während dem Surfen random gewinnspiel seiten "aufpoppen". Des Weiteren loggt dieser die Tasten um so das Surfverhalten zu beobachten.

    Spoiler anzeigen
    Da ich via Google keine richtigen Anleitungen gefunden habe, wie ich diesen Virus entfernen kann, wollte ich hier mal nachfragen, ob jemand weiß, wie ich ihn loswerden kann.

    Spoiler anzeigen
    Best regardz
    Manniac

    hat sich erledigt. Einfach via CMD removed

    Spoiler anzeigen
    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Spoiler anzeigen
    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Spoiler anzeigen
    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Spoiler anzeigen
    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Spoiler anzeigen
    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Spoiler anzeigen
    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Paar Lieder von Avenged Sevenfold - z.b Hail to the king - kannste dir auch noch anschauen

    Lösch einfach alles, was mit dem Server zu tun hat & Lies dir hier im Forum einige Tutorials durch.
    Einrichtung, erste Schritte, Basic Commands, Speichern & Laden etc.


    Wenn du das hast, können wir dir vernünftig weiterhelfen


    MFG
    Manniac

    Guten Abend,


    relativ gängig ist ja die Methode, eine Code folgendermaßen zu schreiben.
    new string[128];
    format(string,sizeof(string),"%s",input);
    SendClientMessage(playerid,-1,string);
    Wenn wir jetzt aber nicht das maximale Limit von 128 voll ausschöpfen, sondern bspw. als input das Wort "Baum" haben, haben wir ja nur 4 anstatt den 128 verwendet.
    Gibt es da die Möglichkeit den Reset(für den Spieler)zu löschen oder ist dieser statisch in das Script eingetragen?

    Guten Abend.


    Da zu einem guten Script auch die Dynamische Flexibilität gehört, möchte ich heute anhand eines kleines Beispiels erklären, wie man Ingame - ohne dass man das Pickup manuell (statisch) ins Script einfügt - erstellen kann.


    Ziel
    Ziel ist, wie oben schon gesagt, das dynamische Erstellen eines Pickups. Wir verwenden dazu den Befehl '/createpickup <pickupid> <pickuptype>'.


    Was wir brauchen
    Ich werde in diesem Tutorial mit MySQL arbeiten, da man so ganz einfach Ingame die Pickups in der Datenbank verwalten kann.
    Ein Tutorial, wie man MySQL installiert, gibt es hier
    Des Weitern werde ich mit 'ocmd' & 'sscanf' arbeiten (-> sowohl beim speichern & laden, als auch bei dem command ).
    Beide Plugins gibt es public zum downloaden.
    Außerdem verwende ich zum Verwalten der Datenbank "XAMPP & phpmyadmin"


    Dann fangen wir mal an..


    Einrichten der Tabelle


    Zuallerst müssen wir eine neue Tabelle in unserer MySQL Datenbank anlegen. Ich nenne sie mal "Pickups".
    Nun müssen wir die Anzahl der Spalten angeben.
    Dazu schauen wir uns die native 'CreatePickup' an.
    CreatePickup(model, type, Float:X, Float:Y, Float:Z, Virtualworld)
    Wir brauchen also 6 Spalten, richtig? Nein. Wir brauchen noch eine weitere, da wir später auf die einzelnen Pickups in der DB zugreifen wollen und somit für jedes Pickup eine eigene ID brauchen.


    Das ganze sieht nach dem Erstellen dann so aus.

    Nun müssen wir die Zeilen füllen.
    In die 1. Zeile kommt die eindeutige ID (meinetwegen auch Identität), die wir mit 'AI'(=Auto-increment) autmatisch hochzählen lassen.
    D.h : Wenn pro Eintrag wird die ID erhöht, sodass jedes Pickup eine eigene ID hat.

    ID ist ein Integer, deswegen stellen wir bei 'TYP' 'INT' ein.

    Bei Länge/Werte schreiben wir eine 3 rein. Diese steht für die einzelnen Ziffern. (123 = 3 Ziffern, 12 = 2 Ziffern usw)
    Da diese Var immer automatisch hochgezählt werden wollen, setzen wir noch einen Haken bei 'A_I'

    Nun müssen wir die verbleibenden Zeilen füllen. Dafür tragen wir einfach die Paramter, die in der native 'CreatePickup' gefordert werden, in die einzelnen Zeilen ein.
    Hier dürfen wir nicht mehr 'A_I' verwenden.
    Zudem sollte man bei der X, Y & Z Achse den Typ auf "Float" umstellen.
    Sollte dann ungefähr so aussehen.


    Nun ist die Tabelle vollständig erstellt & wir können uns dem Scripte widmen.


    Scripting


    Dafür erstellen wir uns das Grundgerüst des Commands

    Spoiler anzeigen
    ocmd:createpickup(playerid,params[])
    {


    Soweit, so gut. Nun müssen wir ein paar Variablen deklarieren.
    Spoiler anzeigen
    ocmd:createpickup(playerid,params[])
    {
    new modelid,//Modelid des Pickups. 1240 ist z.b ein Herz
    Float:pos[3],//damit wir wissen, wo das Pickup erstellt werden soll
    ptype;//Pickuptype. 1 ist z.b 'immer sichtbar', 0 'nicht sichtbar'


    Jetzt kommt die gewohnte sscanf-Abfrage, ob alle Parameter angegeben wurden.
    Spoiler anzeigen
    if(sscanf(params,"dd",modelid,ptype))return SendClientMessage(playerid,-1," '/createpickup <modelid> <pickuptype>");


    Nun werden wir das Pickup erstellen. Dazu brauchen wir die Position des Spielers.

    Spoiler anzeigen
    GetPlayerPos(playerid,pos[0],pos[1],pos[2]);

    Jetzt wird das Pickup erstellt
    Spoiler anzeigen
    CreatePickup(modelid,ptype,pos[0],pos[1],pos[2],GetPlayerVirtualWorld(playerid));

    Das Pickup sollte nun sichtbar sein.
    Jetzt müssen wir es in unsere Tabelle eintragen.
    Dazu verwenden wir 'INSERT INTO'
    Spoiler anzeigen
    new query[500];
    format(query,sizeof(query),"INSERT INTO Pickups(`model`,`type`,`x`,`y`,`z`,`vw`) VALUES ('%d','%d','%f','%f','%f')",modelid,ptype,pos[0],pos[1],pos[2],GetPlayerVirtualWorld(playerid));

    Erklärung dazu sollte in dem oben genannten Thread sein.
    Nun müssen wir den Query noch abschicken.
    Spoiler anzeigen
    mysql_query(query);

    Die Daten sollten nun in unsere Tabelle eingetragen worden sein.
    Somit hätten wir den ersten Teil des Tutorial abgeschlossen. Der 2. Teil - das Laden des Pickups - wird im Laufe des nächsten Tages folgen.


    Bis dahin
    Beste Grüße
    Manniac


    p.s: ich habe versucht, das ganze so übersichtlich wie möglich zu gestalten. Sollte es Verbesserungsvorschläge geben, immer her damit. Ich freue mich auf konstruktive Kritik