Beiträge von Jason_Gregory

    Tut ihr den gar nichts gegen das Flooding ?
    Wie wärs wenn ihr anfangt iptables zu verwenden,
    dann auf die Angriffe reagiert ?
    Wenn ich mich recht erinnere verwendet ihr sowieso Linux.


    Wäre Schade drum, auch wenn ich immer noch angestänkert bin wegen der Gui Geschichte^...

    1. Die Map mit einen Ordner in den Resourcen Pfad legen
    2. Meta.xml bauen und deine Map eintragen



    3. In Mtaserver.cnfg eintragen, liegt im deathmatch Ordner.

    Code
    <resource src="MAPORDNERNAME" startup="1" protected="0" />


    4. Server starten und Console prüfen

    Ich weiß nicht woran es liegt aber das Forum ladet bei mir manchmal so elendst langsam, Crome braucht teilweise mehr als 3 Minuten um eine Seite aufzuschlagen und zu laden.
    Kommt mir das nur so vor oder bin ich nicht der einzige der sich in Zeiten von 56k Moden zurückgesetzt fühlt :wacko: ?


    Schonmal Danke im Vorraus (wie sehr im Vorraus, sagt euer Ladebalken^)

    Wie willste den String den extrahieren wenn der schon mehr als 256 Byte hat ?
    Der wird nie in 255 Zellen genug Platz haben, kürz mal deine Texte ab bzw. lass die langen Balken mal komplett weg
    oder kürz sie.

    Seit Mta Version 1.0.3 überprüft Multi Theft Auto ob die Größe deiner Configs und sonstiger Files noch die Ausgangsgröße haben.
    Heißt im Klartext man darf keine gemodeten Fahrzeugconfigs haben, was ich eigentlich auch gut finde, seitdem mich mein Kumpel
    mit nem 250 Km/h Faggio (Der Roller) überholt hat :>



    Runterladen


    Dann in deinen Data Ordner werfen und alles überschreiben lassen, das sind die originalen von Mta akzeptierten Files.


    Ordnerpfad ist in der Regel auf Laufwerk


    C:\Program Files\Rockstar Games\Grand Theft Auto San Andreas\Data

    Hier...


    außerdem brauchst du für SetPlayerHealth kein Float Wert...


    SetPlayerArmour(playerid,20000.0);


    if(strcmp(cmd, "/Adminonduty", true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] >= 3)
    {
    new name[MAX_PLAYER_NAME], string[48];
    GetPlayerName(playerid, name, sizeof(name));
    SetPlayerHealth(playerid,200);
    SetPlayerArmour(playerid,20000);
    format(string,sizeof(string),"* Admin %s ist als Admin im Dienst und nimmt daher nicht am Spiel teil!", name);
    SendClientMessageToALl(COLOR_RED,string);
    return 1;
    }
    }


    if(strcmp(cmd, "/Adminoffduty", true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] >= 3)
    {
    new name[MAX_PLAYER_NAME], string[48];
    GetPlayerName(playerid, name, sizeof(name));
    SetPlayerHealth(playerid,100);
    SetPlayerArmour(playerid,100);
    format(string,sizeof(string),"* Admin %s ist nicht mehr im Dienst und nimmt daher am Spiel teil!", name);
    SendClientMessageToALl(COLOR_RED,string);
    return 1;
    }
    }

    Idlekick vielleicht ?
    Ich selber hab/hatte das gleiche Problem, mir hat die MySQL Server meine Mta-Verbindung wegen ner 1.800 Sekunden Anti-Idle System gekickt.
    Ich hab jetzt nen Timer drinnen, der hin und wieder ein paar Serverinterne Daten abruft.


    Wann kommen die Meldungen den, wenn lange keiner auf dem Server war ?

    Moinsen zusammen,


    wollte mal ein kleineres Tutorial schreiben um mal zu erklären wie man im Mta mit Datentypen arbeitet.
    Leider gibt es hier noch keinen Lua Highlight BB Code weshalb ich versuch ihn mit Pawn etwas "einzufärben"


    String, Integer
    _______________________________________________________________________________________________


    Bsp. wir gehen mal von einem Objekt aus, einer Wand oder nem Zaun...


    setElementData(Zaun, "Objektid", 11000)
    setElementData(Zaun, "Objektname", "Zaun")


    In den ersten Datensatz haben wir eine Integer eingespeist, in den zweiten Datensatz "Objektname" einen String.
    Doch der Datensatz wird wie vermutet nicht als Integer (Beispiel 1) gesicht sondern in einen String umgewandelt.
    Folgendes falsches Beispiel soll mal zeigen was damit gemeint ist...


    local integer_wert//Eine Variable
    blablabla = 12345 //Wir geben der Variable den Wert 12345
    local string_wert
    string_wert = "blablabla" //Die Variable beinhaltet nun den String "blablabla"
    if(integer_wert> string_wert)then


    Ab diesem Punkt wird euer Server nicht funktionieren, bzw. nach der if-Abfrage kommende nicht mehr einlesen.
    Es ist wichtig das sich jeder direkt ab Anfang an, keinen dieser Fehler erlaubt, da hilft auch keine Luac.exe (Standalone Compiler mit Cmd.exe)
    nichts mehr, sie gibt euch diesen Fehler nicht an! (Clientseitig bis heute kein Consolenprint bekommen, Serverseitig unbekannt, sollte aber auch so sein)
    Wieso ?
    Hier versucht der Benutzer einen Integer mit String zu vergleichen, klare Sache ist unmöglich...
    Mögliche Lösung:


    if(tonumber(string_wert) > integer_wert)then


    Man muss einen der Werte ins richtige Format bringen, wobei hier die Frage ist was ein konvertierter Buchstabe als Wert herausgibt, bzw. wie hoch dieser Wert
    dann sein müsste. Ich erinner mich dunkel daran das A bei 90-98 beginnt, B = A+1 usw.


    Tabellen
    _______________________________________________________________________________________________


    Man könnte hier seitenlange Reden schwingen, wofür ich keine Zeit habe :sleeping:
    Ich fang mal mit der Grunddefinition einer Tabelle an...


    Tabelle = {} //Tabelle erstellen


    Nun geben wir der Tabelle einen String-Wert...


    String = "Lua" //Nun geben wir einem String den Wert "Lua"


    Nun führen wir einen neuen Wert mit dem Schlüssel String und dem Wert 12345


    Tabelle[String] = 12345 //Neue Einführung


    Neue Einführung


    Tabelle[20] = "Resource"


    Nun fragen und geben wir einen Wert der Serverconsole zurück...


    print(Tabelle["Lua"]) //Gibt in diesem Fall für die den Schlüssel für die Tabellen Defintion zurück also 12345

    Nun führen wir eine Zunahme des Schlüssel´s der Tabellevariable "Tabelle" aus


    Tabelle["Lua"] =Tabelle["Lua"] -24690 // Gibt den Wert -12345 zurück


    Und ein kleines Beispiel wie man eine Tabelle "auspackt" in diesem Fall färben wir den Namenstag ein


    local tabelle = { 255,255,255 } //RGB Farben Code sollte weiß sein
    setPlayerNametagColor ( player, unpack(tabelle))

    Mit SetVehicleVelocity würde es nicht funktionieren, du kannst kein stehendes Fahrzeug ohne Fahrer bewegen.



    //Verdammt mein Befehl funktioniert dann auch nicht, da muss einer im Wagen/Fahrzeug sitzen, bzw. davor eingestiegen sein, damit der Server es als
    bewegbares Objekt ansieht :pinch: . Ich fang an Sa-mp zu hassen...
    In Mta wär das kein Problem^


    Sowürde es funktionieren ich würde es aber bei ner simplen Verschiebeaktion ohne Timer machen



    #define Max_Plattform 3


    enum Plattformcfg
    {
    Fahrzeug,
    Objekt
    }


    new Plattform[Plattformcfg][Max_Plattform ];


    /*Unter OnGameModeInit*/


    Plattform[Fahrzeug][1] = AddStaticVehicle(ID, X, Y, Z,A);
    Plattform[Fahrzeug][2] = AddStaticVehicle(ID, X, Y, Z,A);
    ....
    Plattform[Objekt][1] = CreateObject(ID, X, Y, Z,RX,RY,RZ);
    Plattform[Objekt][2] = CreateObject(ID, X, Y, Z,RX,RY,RZ);
    ...


    /*Unter OnCommandText*/
    dcmd(plattform,9, cmdtext);


    dcmd_plattform(playerid, params[])
    {
    new
    plattformen;
    if (sscanf(params, "u", plattformen)) SendClientMessage(playerid, 0xFF0000AA, "Handhabung: \"/plattform <plattform>\"");
    else if (plattformen > Max_Plattform ) SendClientMessage(playerid, 0xFF0000AA, "Plattform exisitiert nicht!");
    else if (plattformen == 1)
    {
    SetObjectPos(Plattform[Objekt], Pos_X, Pos_Y, Pos_Z);
    SetVehiclePos(Plattform[Fahrzeug], Pos_X, Pos_Y, Pos_Z+2); /* Soll ja draufstehen und nicht reingehen*/
    SendClientMessage(playerid, 0x00FF00AA, "Plattform wird bewegt");
    }
    return 1;
    }

    Ja Mein Gott dann soll er mal was sagen.
    Wir sind nicht zum Pc-to-Pc Lippenlesen hier.
    Falls es so ist wie selEcT meint dann sollte das so aussehen...



    new _pos[4];
    GetPlayePos(playerid, _pos[1], _pos[2], _pos[3])
    SetVehiclePos(/*Fahrzeug*/, _pos[1], _pos[2], _pos[3]+3); /*Über Kopf*/


    new Keys,ud,lr, FLoat: Angle;
    GetPlayerFacingAngle(playerid, Angle)
    GetPlayerKeys(playerid,Keys,ud,lr);


    if(Angle > 180) {
    SetVehiclePos = (ud > 0) ? ((/*Fahrzeug*/, _pos[1], _pos[2]-1, _pos[3])) : ((ud < 0) ? ((/*Fahrzeug*/, _pos[1], _pos[2]+1, _pos[3]))); }
    else if(Angle < 180) {
    SetVehiclePos = (lr > 0) ? ((/*Fahrzeug*/, _pos[1], _pos[2], _pos[3-1])) : ((lr < 0) ? ((/*Fahrzeug*/, _pos[1], _pos[2], _pos[3]+1))); }
    else { print("Spielerrotation nicht erkannt!"); } /* Kann eig nicht passieren ich weiß*/


    Wenn ich nen Fehler drin habe einfach melden, ich mach das grade Freihand :sleeping:
    Oder man macht es sich einfacher indem man die Position des Spielers nimmt und Updated auf die Position des Helicopters

    Meinst du wie im Single Player den Magneten oder ein Objekt an den Helicopter ?
    Versteh dich nicht ganz aber wenn du es wie im SinglePlayer haben willst
    Du könntest es so machen...


    Du überprüfst ob jemand im Heli sitzt und nutzt die AttachObjectToPlayer Funktion
    Hab hier die Heliposition nicht extra definiert, musst du einfügen...



    #define Max_Helicopters 2
    #define DistanceHeliPlayer 3


    forward AttachObjectToDefinedVehicle(player);


    enum HelicopterAttach
    {
    Attachveh,
    Float: Offset_X,
    Float: Offset_Y,
    Float: Offset_Z,
    Float: Rotation_X,
    Float: Rotation_Y,
    Float: Rotation_Z
    }
    new
    Helicoptercfg[Max_Helicopters][HelicopterAttach];


    //Unter Ongamemodeinit
    for(i = 0; i < sizeof(Max_Helicopters); i++) {
    Helicoptercfg[i][Attachveh] = CreateVehicle(/*Dein Helicopter*/, Helipos_X, Helipos_Y,Helipos_Z, Helirotation, Farbe1, Farbe2, false); Helipos[3]++: /*Eine Y-Coordinate daneben spawnen*/ }


    public AttachObjectToDefinedVehicle(player)
    for(i = 0; i < sizeof(Max_Helicopters); i++) {
    if(IsPlayerInVehicle(player, Helicoptercfg[i][Attachveh])) {
    break; /* Loop unterbrechen, Spieler kann nur in einem Helicopter sitzen*/
    GetPlayerPos(player, Helicoptercfg[i][Offset_X],Helicoptercfg[i][Offset_Y],Helicoptercfg[i][Offset_Z]-DistanceHeliPlayer);
    AttachObjectToPlayer( /*dein Objekt*/, player, Helicoptercfg[i][Offset_X],Helicoptercfg[i][Offset_Y],Helicoptercfg[i][Offset_Z], Helicoptercfg[i][Rotation_X],Helicoptercfg[i][Rotation_Y],Helicoptercfg[i][Rotation_Z] );
    else { return StopObject(/*dein Objekt*/); }
    }
    }


    Müsstest du mal ausprobieren ob StopObject ein Attachtes Objekt stoppen kann.
    Ansonsten einfach nen Timer verwenden und die Funktion benutzen.
    Ob das jetzt so funktioniert zeigt sich Ingame

    Zitat

    Gibts in Pawn wohl, auch NULL genannt.


    Rofl dachte bis auf just das es keine nilwerte gibt.
    Da sind man mal wie gut einen Sa-mp informiert, kein Suchergebnis bei Suche nach 'Nil'.
    Ich hatte bisher immer so gearbeitet um strings loszuwerden


    var[1] = "\0"
    var[1] = 0


    aber ich denke das ist nur für Zeichenketten :wacko: oder ?

    Version 1.4:
    -Fortschrittsleiste beim Tod des Spielers


    Das ihr hier mein Gui kopiert habt, liegt doch auf der Hand. Guck dir mal das Datum meiner Veröffentlichung und dann das Datum an dem ihr das
    Fenster und die Progressbar hinzugefügt habt. Sogar der Text ist der gleiche, genauso wie das Layout bzw. die Realtive Position (im Urprungselement) des Bildes usw.


    Baut eure Sachen doch selber oder meint ihr das es euch weiterbringt Ideen von Projekten ~ 1:1 zu kopieren ?
    Das zeigt nur das ihr mit eurer eigenen Arbeit nicht zufrieden seid :sleeping:

    He´s not you can wear clothes and tattoes, set his skills/stats (setPedStat), but you cant edit his .txd/.dff Texture/Model
    Theres a Mta-Rule, which allways returns false.
    Yesterday i found the lines for removing this rule, searching it in Microsoft´s C++.
    But it´s not a single line only, its a whole function.
    Somekind of funny, theres no reason for prohibit changing the Model´s but even so its included.



    Yeah it was inarticulate :wacko:
    Multiman do you have Icq/Xfire too. ?