Beiträge von DraloX

    Die einzigen die mir spontan einfallen die auch deine Zahlungsmethoden anbieten sind: nitrado.net


    Hatte dort auch selber einen. Ist sozusagen eine Art "prepaid" Server. Du hast also einen Account. Auf diesen kannst du Geld zahlen. Dann kannst du so viele Server wie du willst bestellen (Natürlich nur solang das Geld auf dem Account reicht).
    Diese laufen dann solang wie du halt bezahlt hast. Wenn du aber nachher merkst das du keinen Css Server haben willst kannst du dort sogar zwischen verschiedenen Spielen wechseln. Kostet auch nicht extra^^. Server verlängern und Slots erweitern ist auch kein Problem.


    Support antwortet auch schnell. Hab Email geschrieben und bin dann off gegangen. Als ich am nächsten morgen on kam war die Antwort schon im Postfach.

    Vielleicht könnte man auch noch schreiben das Linux auf der GPL Lizenz basiert und Windows unter einer kommerziellen Lizenz.


    Linux ist dadurch kostenlos. Man hat zugriff auf den Quellcode und kann Linux selbst "weiterentwickeln". Dafür ist der Support falls man Probleme hat nicht da. Bei Windows dagegen muss man für die Lizenz bezahlen. Hat eine Firma einen Windows Server so muss er nicht nur für den Server an sich, also die Hardware, sondern auch für das Server Betriebssystem bezahlen und man hat auch nur eine bestimmte Anzahl Clients die darauf zugreifen dürfen. Hat man aber mehr Rechner in der Firma stehen muss man für die weiteren Clients wieder bezahlen. Da kommt schon eine ordentliche Summe dabei raus.


    Was auch noch erwähnenswert wäre ist das es bei Linux verschiedene Distributionen gibt. Dazu könnte man diese natürlich auch auflisten und erzählen was das überhaupt ist. Ist aber ja nicht mein "Tut"... Das überlass ich dann dir.


    Edit: Ah hab das mit den Distributionen übeserehen =)... Aber was das ist könnteste trotzdem erklären.

    Man muss ja nicht immer irgentwelche illegale Sachen damit mounten.


    Zum Beispiel Ubuntu wird als iso zum download bereitgestellt. Ob man das nun auf eine CD brennt oder in ein virtuelles Laufwerk packt ist doch egal. Daran ist doch nichts illegales. Deswegen seh ich an seinem Beitrag nichts illegales. Was derjenige dem er das Programm empfohlen hat macht, kann er ja nicht wissen.

    MySQL bietet diese Funktion doch eig. schon. Das heißt du musst im Script GARKEINE ID festelegen. Das macht der MySQL Server. Ansonsten hab ich deine Frage wohl falsch verstanden^^


    //Edit:


    Bei mir sieht das dann so aus:


    In der Tabelle hab ich folgende Spalten: ID,Name,Model,X,Y,Z,Preis,SellPreis.


    Wenn ich dann Ingame das Auto abspeicher schreib ich nur Name,Model,X,Y,Z,Preis und SellPreis in die Tabelle rein. Die ID schriebt der MySQL Server automatisch rein und erhöht diese bei jedem Eintrag um eine bestimmte Zahl (Selbst festlegbar. Standart ist 1). Dadurch hat jedes Auto das ich erstelle eine einzigartige ID.

    Kannst doch auch einfach in der MySQL Datenbank bei der Spalte mit den ID's das "Auto-Increment" einschalten.


    Dann zählt er immer wenn eine neue Zeile in die Tabelle reingeschrieben wird die ID hoch. So ist jede einzigartig. Das ist doch der Effekt den du willst oder?


    //Edit: Rechtschreibfehler behoben

    Ich würds einfach so machen.


    Bei OnPlayerDeath:


    If(gTeam[killerid] == 4 || IsACP(killerid) || AccountInfo[killerid][AdminLevel] >= 2)
    {
    iJailID[killerid] = playerid;
    }


    Und dann einfach in deinem Befehl eine Abfrage einbauen:


    if(iJailID[playerid] == targetid)


    Dann fehlt nurnoch ein Timer der nach den 15 Sek. iJailID[killerid] auf -1 oder ähnliches setzt. (Dieser muss auch unter OnPlayerDeath)


    //Edit: [ pwn ] eingefügt
    //Edit2: Fehler behoben.
    //Edit3: nochn fehler.. sollte mal durchlesen bevor ichs abschicke^^

    @ Bloody


    Teile vom PC lernen... Aufgaben von Motherboard, CPU, etc...


    Dann mussten wir den PC zusammenbauen, Netzwerkeinrichten, etc...


    Jetzt sind wir dabei die Rechteverteilung der einzelnen Benutzer under Windows XP zu "lernen". Im zweiten Halbjahr kommt dann Linux =)

    Hatte auch die Wahl zwischen Fachabi.. also Fachoberschule oder Abi aufm Technischen Gymnasium =)...


    Hab mich dann doch für das TG entschieden... Bringt mir mehr falls es mir später doch nicht mehr gefallen sollte. Man weiß ja nie was auf einen zukommt.


    Hab aber jetzt auch Programmieren, Netzwerktechnik und Betriebssystem als Fächer. Ist auch richtig geil. Geht aber schleppend vorran da einige in der Gruppe sind die bei 0 anfangen. Nach 5 Wochen wissen einige endlich was eine Variable ist =)...

    Schau am besten nochmal im Wiki nach.


    http://wiki.sa-mp.com/wiki/SetVehicleParamsForPlayer

    Zitat

    Note: From 0.3 you will have to re-apply this function when OnVehicleStreamIn is called!

    Wenn mein Englisch noch gut genug ist, heißt das das du die Funktion nur unter OnVehicleStreamIn benutzten kannst. Das heißt das es in deinem Befehl welcher ja normalerweise unter OnPlayerCommandText ist nicht funktioniert.


    Falls ich mich irre, könnt ihr mich auch verbessern ;)

    Einen neuen User anlegen:


    format(query, sizeof(query), "INSERT INTO accounts (sName, sPass) VALUES ('%s', '%s')", pname, inputtext); // sName und sPass durch die Spalte ersetzen wie bei dir halt der Name und das Passwort in der Datenbank abgespeichert wird. accounts auch nicht vergessen anzupassen.
    mysql_query(query);


    Geld aktualisieren:

    format(query ,sizeof(query), "UPDATE `accounts` SET `sCash` = '%d' WHERE `sName` = '%s'",sDaten[playerid][sCash],pname); // Auch hier sCash und accounts an deine Datenbank anpassen.
    mysql_query(query);


    Rest soltest du eig. dann alleine hingriegen.

    Hey,


    Ich bräuchte mal wieder eure Hilfe. Ich versuche zurzeit ein neues Script zu schreiben. Es soll auf MySQL basieren. Ich hab mir also ein MySQL Plugin runtergeladen, die Beispiel pwn Datei angeschaut und einfach mal ausprobiert.
    Er stellt schon die Verbindung her, läd auch Datein aus der Datenbank aus. Jedoch war kein Beispiel dabei wie man einen neuen User anlegt und wie man die Datein wieder speichert. Deswegen brauche ich da eure Hilfe. Ich hab in der Suchfunktion nichts gefunden. Zumindest nichts was mir geholfen hat.


    Ich benutze das Plugin: http://forum.sa-mp.com/showthr…?t=122983&highlight=MySQL


    Einlog Befehl:


    dcmd_login(playerid,params[])
    {
    new sPassword[128];
    if(sscanf(params,"s",sPassword))
    {
    return SendClientMessage(playerid,COLOR_RED,"Benutzung: /login <PASSWORD>");
    }
    new field[4][32], query[128], pname[MAX_PLAYER_NAME], data[326];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(query, sizeof(query), "SELECT `sPass`, sCash, sBank, sAdmin FROM `accounts` WHERE `sName`='%s'", pname);
    mysql_query(query);
    mysql_store_result();
    if (mysql_fetch_row(data, "|"))
    {
    split(data, field, '|');
    if (!strcmp(field[0], sPassword, false))
    {
    sDaten[playerid][sCash] = strval(field[1]);
    GivePlayerMoney(playerid,sDaten[playerid][sCash]);
    sDaten[playerid][sBank] = strval(field[2]);
    sDaten[playerid][sAdmin] = strval(field[3]);
    sEingelogt[playerid] = 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Das Password ist falsch! Versuch es erneut!");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Dieser Account exestiert nicht! Bitte benutze /register <PASSWORD>");
    }
    mysql_free_result();
    return 1;
    }


    Kann mir jetzt einer helfen und zeigen wie ich einen /register Befehl schreibe und wie die Daten beim Logout gespeichert werden?


    Bzw: Kennt jemand ein MySQL Plugin das vll besser/leichter zu bedienen ist?

    Wenn du willst das etwas wiederhohlt wird, benutzt eine while schleife.


    new wVar;
    while(wVar == 0)
    {
    SendClientMessage(playerid,COLOR,"Dieser Befehl wird immer wieder wiederhohlt!");
    }


    Dann kannst du in einem Befehl wVar auf 1 setzen und dann höhrts auf. Ist zwar nicht getestet sollte aber funktionieren.

    [..]
    DAs ist der Fehler, mach einfach:
    if(gTeam[playerid] != SFPD || gTeam[playerid] != Cobra || gTeam[playerid]!= ARMY)
    also == zu != (ist nicht) So solltes lappen

    Das ist aber auch fail xD.


    Wenn er NICHT im SFPD ist ODER wenn er NICHT Cobra ist ODER wenn er NICHT in der Army ist.


    D.h. man muss in allen 3 sein..^^


    dcmd_r(playerid,params[])
    {
    new text[256];
    if(sscanf(params, "s",text))
    {
    return SendClientMessage(playerid,COLOR_YELLOW,"Benutzung: /rn [Text]");
    }
    if(gTeam[playerid] == SFPD || gTeam[playerid] == Cobra || gTeam[playerid] == ARMY)
    {
    SendClientMessageToAll(COLOR_GREEN, "|-_-|Regierungsnachricht|-_-|");
    new name[133];
    new string[156];
    GetPlayerName(playerid,name,sizeof name);
    format(string,sizeof string,"%s: %s",name,text);
    SendClientMessageToAll(COLOR_GREEN,string);
    }
    else
    {
    return SendClientMessage(playerid,COLOR_GREEN,"...");
    }
    return 1;
    }


    So schon versucht?

    Hey,


    Biste der Jason von GLR? ;)


    Nooja, falls nicht kannste das ignorieren aber falls ja helf ich euch mal obwohl ich banned bin...
    Kannst dich ja mal in ICQ bei mir melden Nummer sollte im Profil stehen^^


    Ist auch ungetestet, aber spuckt zumindest keine Errors beim compilen aus.



    Fangen wir mal an:


    Ganz oben im Script:


    forward schein2(p);
    forward schein3(p);
    forward schein4(p);


    new Fahrstunde[MAX_PLAYERS];
    new FSquiz[MAX_PLAYERS];
    new FSfehler[MAX_PLAYERS];


    OnPlayerCommandText:


    if (strcmp("/schein", cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid,COLOR,"Willkommen in der Fahrschule!");
    SendClientMessage(playerid,COLOR,"Dir werden jetzt ein paar Regeln erklärt.");
    SendClientMessage(playerid,COLOR,"Danach werden die Fragen über diese gestellt. Du darfst maximal 2 falsch haben!");
    SetTimerEx("schein2",10000,0,"d",playerid);
    Fahrstunde[playerid] = 1;
    return 1;
    }


    Irgentwo im Script:


    Also keinem Public am besten gaaanz unten.



    public schein2(p)
    {
    SendClientMessage(p,COLOR,"REGELN REGELN REGELN REGELN REGELN");
    SendClientMessage(p,COLOR,"REGELN REGELN REGELN REGELN REGELN");
    SendClientMessage(p,COLOR,"REGELN REGELN REGELN REGELN REGELN");
    SetTimerEx("schein3",10000,0,"d",p);
    }


    public schein3(p)
    {
    SendClientMessage(p,COLOR,"REGELN REGELN REGELN REGELN REGELN");
    SendClientMessage(p,COLOR,"REGELN REGELN REGELN REGELN REGELN");
    SendClientMessage(p,COLOR,"REGELN REGELN REGELN REGELN REGELN");
    SetTimerEx("schein4",10000,0,"d",p);
    }


    public schein4(p)
    {
    SendClientMessage(p,COLOR,"Frage: Wird die STVO eingehalten?");
    SendClientMessage(p,COLOR,"Antworte mit \"ja\" oder \"nein\"");
    FSquiz[p] = 1;
    }


    Und das hier in OnPlayerText:


    if(strcmp(text,"ja"))
    {
    if(FSquiz[playerid] == 1)
    {
    SendClientMessage(playerid,COLOR,"RICHTIG! Nun zur nächsten Frage!");
    SendClientMessage(playerid,COLOR,"Frage: Werden Ampeln beachtet?");
    SendClientMessage(playerid,COLOR,"Antworte mit ja oder nein");
    FSquiz[playerid] = 2;
    }
    if(FSquiz[playerid] == 2)
    {
    SendClientMessage(playerid,COLOR,"FALSCH! Nun zur nächsten Frage!");
    SendClientMessage(playerid,COLOR,"Frage: Ist die Maximalgeschwindigkeit 70 km/h?");
    SendClientMessage(playerid,COLOR,"Antworte mit ja oder nein");
    FSfehler[playerid] += 1;
    FSquiz[playerid] = 3;
    }
    if(FSquiz[playerid] == 3)
    {
    new fehlerstring[128];
    format(fehlerstring,sizeof(fehlerstring),"Du hast %d Fehler!",FSfehler[playerid]);
    SendClientMessage(playerid,COLOR,"RICHTIG! Das war die letzte Frage!");
    SendClientMessage(playerid,COLOR,fehlerstring);
    if(FSfehler[playerid] >= 3)
    {
    SendClientMessage(playerid,COLOR,"Nicht bestanden!");
    }
    else
    {
    SendClientMessage(playerid,COLOR,"Bestanden!");
    // Hier Zeile zum Führerschein geben!
    }
    FSquiz[playerid] = 0;
    }
    }
    if(strcmp(text,"nein"))
    {
    if(FSquiz[playerid] == 1)
    {
    SendClientMessage(playerid,COLOR,"FALSCH! Nun zur nächsten Frage!");
    SendClientMessage(playerid,COLOR,"Frage: Werden Ampeln beachtet?");
    SendClientMessage(playerid,COLOR,"Antworte mit ja oder nein");
    FSfehler[playerid] += 1;
    FSquiz[playerid] = 2;
    }
    if(FSquiz[playerid] == 2)
    {
    SendClientMessage(playerid,COLOR,"RICHTIG! Nun zur nächsten Frage!");
    SendClientMessage(playerid,COLOR,"Frage: Ist die Maximalgeschwindigkeit 70 km/h?");
    SendClientMessage(playerid,COLOR,"Antworte mit ja oder nein");
    FSquiz[playerid] = 3;
    }
    if(FSquiz[playerid] == 3)
    {
    new fehlerstring[128];
    FSfehler[playerid] += 1;
    format(fehlerstring,sizeof(fehlerstring),"Du hast %d Fehler!",FSfehler[playerid]);
    SendClientMessage(playerid,COLOR,"FALSCH! Das war die letzte Frage!");
    SendClientMessage(playerid,COLOR,fehlerstring);
    if(FSfehler[playerid] >= 3)
    {
    SendClientMessage(playerid,COLOR,"Nicht bestanden!");
    }
    else
    {
    SendClientMessage(playerid,COLOR,"Bestanden!");
    // Hier Zeile zum Führerschein geben!
    }
    FSquiz[playerid] = 0;
    }
    }


    Ich habs eben auf die schnelle geschrieben. Ist nur der Theorieteil, hoffe das reicht mal. Wurde wie gesagt auch nicht getestet. Hoffe mir sind keine Flüchtigkeitsfehler unterlaufen ;)...


    //Edit: Iwie, ist die "Einrückung" verrutscht, musste dann halt ausbessern sollte aber kein Problem sein^^


    MfG Dave.

    if(!strcmp(strget(cmdtext, 0), "/geld"))
    {
    new geld = strval(strget(cmdtext, 1));
    if(!strlen(geld))
    {
    SendClientMessage(playerid,COLOR_ROT,"Nix eingegeben");
    }
    if(geld >= 500)
    {
    SendClientMessage(playerid, COLOR_ROT,"[GAMEMASTER]:Das ist zu viel Geld (Nur bis 500$)");
    return 1;
    }
    GivePlayerMoney(playerid, geld);
    return 1;
    }


    Ungetestet ;)

    Da spuckt mein Antivir direkt "Trojaner" aus :>. Was ja auch normal ist x.O..


    Wer fällt schon auf sowas rein. Vorallem das man sich da einloggen soll :>... Hoffe mal das dein Account jetzt nicht weg ist am besten schnell pw ändern + das programm löschen und auf Viren scannen