Beiträge von maddin

    Hab auch so ne PN bekommen, und bekomme die öfters^^ Musste dich mit abfinden. Und das was du hier gerade machst ist indierekt auch noch werbung für sie^^

    Also erstmal brauchst du dafür 2 Funktionen. mktime um den timestamp eines bestimmten datums auszugeben, und Now um dir den timestamp von jetzt gerade ausgeben zu lassen. Dieser beinhaltet die Anzahl der Sekunden seit dem 1.1.1970 um 00:00 Uhr (falls das nicht so ist, berichtigt mich bitte^^).
    Also erstmal mktime:
    stock mktime(hour,minute,second,day,month,year)
    {
    new timestamp2;
    timestamp2 = second + (minute * 60) + (hour * 3600);
    new days_of_month[12];
    if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) {
    days_of_month = {31,29,31,30,31,30,31,31,30,31,30,31}; // Schaltjahr
    } else {
    days_of_month = {31,28,31,30,31,30,31,31,30,31,30,31}; // keins
    }
    new days_this_year = 0;
    days_this_year = day;
    if(month > 1) { // No January Calculation, because its always the 0 past months
    new i=0;
    for(; i<month-1;i++) {
    days_this_year += days_of_month[i];
    }
    }
    timestamp2 += days_this_year * 86400;
    new j=1970;
    for(;j<year;j++) {
    timestamp2 += 31536000;
    if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) timestamp2 += 86400; // Schaltjahr + 1 Tag
    }
    return timestamp2;
    }
    Die funktion gibt den timestamp vom angegebenen Zeitpunkt (hour,minute,second,day,month,year) zurück.
    Und Now():
    stock Now()
    {
    new hour,minute,second,year,month,day;
    gettime(hour, minute, second);
    getdate(year, month, day);
    return mktime(hour,minute,second,day,month,year);
    }
    Gibt einfach den timestamp von dem zeitpunkt aus an dem du die funktion ausführst.


    Jetzt kannste einmal wenn du jemanden für eine bestimmte Zeit banst dir den timestamp ausgeben lassen und die zeit wie lange er gebannt sein soll dazu rechnen (in sekunden). Das speicherst du dann ab, und überprüfst dann einfach den Aktuellen timestamp mit dem den du bei dem ban gespeichert hast. Ist der aktuelle timestamp kleiner als der, den du gespeichert hast ist der Ban noch nicht abgelaufen. ist er größer bzw gleich ist der ban ausgelaufen und du kannst den spieler wieder entbannen bzw auf den server lassen.


    Also beim ban:
    StempelDerGespeichertWird=Now()+120;//120 währen 2 Minuten
    Den speicherste dann in einer datei oder per MYSQL und wie auch immer du das vor hast.
    Und dann wenn er connectet fragste einfach ab:
    if(Now()<StempelDerGespeichertWurde)//DIe Zeit ist noch nicht abgelaufen
    {
    new string[64],
    duration=(StempelDerGespeichertWurde-Now())/60;//errechnet die zeit wie lange der Spieler noch gebannt ist in Minuten
    SendClientMessage(playerid, FARBE_GELB, "Dieser Account ist noch gebannt blablabla");
    format(string, sizeof(string), "Dauer: Noch %d Minuten", duration+1);//falls du anzeigen willst wie lange er/sie noch gebannt ist. Die +1 am ende ist einfach damit falls man nur noch eine minute gebannt ist da nicht 0 steht.
    SendClientMessage(playerid, FARBE_GELB, string);
    Kick(playerid);
    }
    else
    {
    //ban aus datei oder mysql tabelle entfernen
    }

    [table=2]
    [*]
    [*]
    [*]Half-Life
    [*]1,49 €
    [*]Half-Life 2
    [*]1,34 €
    [*]Half-Life 2: Deathmatch
    [*]0,74 €
    [*]Half-Life 2: Episode One
    [*]1,04 €
    [*]Half-Life 2: Episode Two
    [*]1,04 €
    [*]Half-Life 2: Blue Shift
    [*]0,74 €
    [*]Half-Life 2: Opposing Force
    [*]0,74 €
    [*]Team Fortress Classic
    [*]2,24 €
    [*]______________________
    [*]______
    [*]Gesamtpreis (-Holiday Bonus)
    [*]5,54€ €
    [/table]
    :thumbup:

    Zitat

    Ich habe mir heute einen VServer auf Windows Basis geholt..


    Zitat

    Das Plugin befindet sich auch im Plugin Ordner,
    sowie auch die libmysql.dll datei im Main Ordner...


    Wie schauts in der mysql_log aus? Steht da irgendwas an fehlern?

    Du versuchst ja dierekt in das ENum zu laden. Wenn du diese 3 sachen jetzt überspringen würdest, würde das die reihenfolge durcheinander bringen und es wird nicht mehr richtig geladen.


    Die einzige möglichkeit die mir da einfällt währe nicht in das komplette enum zu laden, sondern halt jede variable einzeln zu übergeben. Also
    sscanf(string, "p<|>{is[16]s[24]s[16]}iiiiiiiiiiiiS[128]S[128]S[20]",pInfo[playerid][Alter], pInfo[playerid][Geschlecht], pInfo[playerid][Geld], /*usw..*/);

    new Coords[5][64],line[256],ModelID,posX,posY,posZ,Angle;/*Erstellen der Variablen
    Coords[5][64] brauchen wir um darin nachher die einzelnen datein wie model id etc zu speichern. Die 5 steht für die Anzahl (sind ja 5 daten die du speicherst und auslesen willst) und die 64 ist die größe des strings
    line[256] ist der string in dem die Zeile gespeichert wird die wir auslesen
    ModelID,posX,posY,posZ und Angle sind die variablen an die wir die einzelnen daten aus der datei weiter geben um sie nachher zum erstellen des fahrzeuges zu benutzen*/
    new File: file = fopen("Cars.cfg",io_read);//Öffnet die Datei
    while(fread(file, line))//Liest die datei zeile für zeile aus
    {
    split(line, Coords, ',');//Teilt die ganze zeile in einzelne strings auf die durch komma getrennt wurden
    ModelID = strval(Coords[0]);//der erste teil wird an die variable "ModelID" weiter gegeben
    posX = floatstr(Coords[1]);//der zweite teil wird an die variable "posX" weiter gegeben
    posY = floatstr(Coords[2]);//der dritte teil wird an die variable "posY" weiter gegeben
    posZ = floatstr(Coords[3]);//der vierte teil wird an die variable "posZ" weiter gegeben
    Angle = floatstr(Coords[4]);//der fünfte teil wird an die variable "Angle" weiter gegeben
    CreateVehicle(ModelID, posX, posY, posZ, Angle, -1, -1, -1);//Da wir die einzelnen werte jetzt haben, erstellen wir damit das auto. Die -1,-1,-1 am ende stehen für die beiden farben und die Respawn zeit. Da du diese ja nicht in der Datei gespeichert hast wird durch -1 eine zufalls farbe angegeben. Und die -1 Bei der Respawnzeit sagt dass das fahrzeug erst dann respawnt wenn es zerstört wird.
    }
    fclose(file);//Nachdem wir alle Zeilen ausgelesen haben wir die datei wieder geschlossen
    Mfg.

    Killerspiele bzw ego-shooter mit amokläufen in verbindung zu bringen ist einfach nur dumm. Niemand kann mir erzählen, das sich so ein Potenzieller Amokläufer denkt "mhh, css zocken macht spass. Ich glaub ich kauf mir ne waffe und töte ein paar leute" O.o. Das jemand so etwas tut liegt allein an der Psyche des Menschen. Es gab sicher auch schon Amokläufe wo es noch keine Killerspiele gab. Aber naja so viel dazu.


    Wenn mein Kind später sowas spielen will, will ichs mir wenigstens vorher angucken. CSS fänd ich mit 14 noch voll okay. Aber ich denke bei Postal usw. hört der spass dann doch auf.

    Mhh...
    Benutzt du die Final 0.3c version? vielleicht gibts da probleme zwischen dem plugin und dem server. Schonmal versucht das plugin neu runter zu laden?


    //E: Hab grad ma im englischen Forum geguckt und da hat jmd das Gleiche problem -> Link. Am besten mal warten ob da jemand eine lösung für findet oder sich StrickenKid dazu äußert.

    Ich hatte das problem auch mal. Bei mir lags daran das unter OngameModeExit eine funktion ausgeführt wurde die sachen in eine datei geschrieben hat. Da diese datei aber nicht im scriptfiles ordner war hat er sich halt einfach beendet.

    Zitat

    Bei Mittelklasse PC´s sollte man darauf achten, dass das Netzteil eine nicht zu große Wattzahl hat und Energiesparende Teile verbaut sind. Denn wenn du ca. 3 Stunden täglich am PC bist, und wie vorgeschlagen einen PC mit 800 Watt hast, macht das (bei einem Strompreis von 20 Cent) eine Jahresrechnung von 1226,4€! Davon könntest du dir Jährlich einen neuen PC kaufen! Bei einem 500 Watt Netzteil bleibst du bei 766,5€, was eigentlich auch schon extrem viel ist.


    Das ist quatsch was du da erzählst. Die 800 Watt sagen nur aus, dass das Netzteil bis zu 800 Watt raus holen kann. Aber im normalen betrieb holt es nur so viel wie benötigt wird. Und Ich habe auch dazu gesagt, das man meiner meinung nach bei einem PC immer Zukunftssicher denken sollte, und da liegt man mit 800 Watt sicher nicht daneben. Zumal sich in nächster Zeit noch so einiges tun wird und dann wirst du mit 800 Watt auf der Sicheren seite sein. Ausserdem nehmen sich die Netzteile nicht viel im Preis, da machen ein paar mehr Watt vielleicht ein paar Euronen aus. Wenn unbedingt gespart werden muss, dann an zweitrangigen dingen wie Laufwerk, Gehäuse etc.


    Hardware versand ist ne gute seite, stell dir da am besten zusammen was du brauchst, und achte in der Beschreibung das auch alles zusammen passt ;)