Beiträge von Padarom

    Ich habe jetzt auch noch ein Problem beim (teilweise) übernehmen oder abändern.
    In der .ini Datei wird zwar "fraktion = 1" gespeichert, doch ingame muss ich jedem Spieler neu seiner Fraktion zuweisen. Ich habe das ja, wie gesagt, mit Toren gemacht und jedes Mal wenn ein Spieler neu connected muss ich ihn wieder /invite'n, obwohl in seiner .ini Datei seine Fraktions-ID steht.


    Mit freundlichen Grüßen
    Padarom

    Funktioniert leider auch nicht.
    Da gibt es zu viele Fehler in einer Zeile
    Muss ich pInfo speziell definieren oder reicht ein simples
    new pInfo[MAX_PLAYER_NAME];
    ?


    Mit freundlichen Grüßen
    Padarom


    **edit**
    So - Habe das Problem nun selbst gelöst. Weiß nicht mehr genau wie, aber ich weiß dass^^

    Hallo.
    Ich habe mir gestern ein Register/Login System erstellt und dazu natürlich auch Fraktionen.
    Diese Fraktionen haben einzelne Tore welche nur sie öffnen können (sollten).
    Allerdings funktioniert dies nicht ganz. Denn egal in welches Team ich mich als Member setze, kann ich das Tor nicht öffnen. Hier zwei Teile vom Script:
    if(!strcmp(strget(cmdtext,0),"/makemember"))
    {
    new teamid = strval(strget(cmdtext,2));
    {
    if(IsPlayerConnected(playerid))
    {
    gLeader[ziel] = teamid;
    if(teamid==1) { SendClientMessage(ziel,ORANGE,"Du bist nun beim ...!");}
    if(teamid==2) { SendClientMessage(ziel,ORANGE,"Du bist nun beim ...!");}
    if(teamid==3) { SendClientMessage(ziel,ORANGE,"Du bist nun beim ...!");}
    if(teamid==4) { SendClientMessage(ziel,ORANGE,"Du bist nun beim ...!");}
    }
    }
    return 1;
    }
    if (strcmp("/army1", cmdtext, true, 10) == 0)
    {
    if(gTeam[playerid] == Army || gLeader[playerid] == Army)
    {
    MoveObject(easter1,-1530.3646240234, 482.32244873047, -1, 2);
    SendClientMessage(playerid, ROT,"LSPD Tor wurde geöffnet");
    SetTimer("easter11",8000,false);
    }
    else
    {
    SendClientMessage(playerid,ROT,"** Du hast nicht die benötigte Berechtigung!");
    }
    return 1;
    }
    Ich hoffe jemand kann mir helfen.


    Mit freundlichen Grüßen
    Padarom

    Mir persönlich gefällt die Map auch nicht wirklich.
    Für eine gesperrte Hauptstraße gefehlt da das gewisse Extra, ich weiß nur nich genau was.
    Dennoch 3/10 Punkten.
    Setz dich ran, mach mehr Maps und irgendwann wirst du auch besser und perfekter.


    @Adril:
    Ernsthaft. Wenn dir die Map nicht gefällt dann poste nicht mit deinen Kontraproduktiven Beiträgen. Wenn jemand eine Map postet und Verbesserung braucht dann gibt man ihm Tipps und sagt ihm nicht er soll sich vom Forum zurückziehen.
    Außerdem ist deine 3-Tage Arbeit nicht wirklich das beste. Vielleicht würde ich die Zäune selber nicht perfekt positionieren sondern leicht abweichend, aber dafür bräuchte ich nichteinmal eine halbe Stunde

    Man könnte natürlich auch Rofl nehmen aber Lol passt eher zu dem oben verfassten Quatsch @ Schnacke :huh:

    Und schon wieder ein sinnloser Beitrag :pinch:
    Stimmt schon dass du dir Beiträge sammelst


    DomeAMD wollte soweit ich weiß jemanden finden der sich mit Webinterfaces auskennt, weil er Probleme mit seinem Root hat oder sowas.
    Schreibe deinen Beitrag nochmal in gutem Deutsch und mit Zusammenhängen damit wir verstehen was genau du meinst

    Weiß nicht ob es an mir liegt, aber wenn ich in meinem eigenen Script dini und dudb include, dann bekomme ich folgenden Fehler beim compilen:
    D:\GTA San Andreas\GTA San Andreas\PAWNO\gamemodes\DR.pwn(735) : warning 203: symbol is never used: "ret_memcpy"
    Liegt das vielleicht daran dass ich die beiden Includes bisher für nichts genutzt habe und noch kein Register/Login gescriptet habe?


    Mit freundlichen Grüßen
    Padarom


    **edit**
    Ich habe das /makeleader in mein Script übernommen mit zwei Toren. Eines für das SAPD und ein anderes für die Army. Dann habe ich in die Commands für die Tore reingeschrieben
    [...]
    if(gTeam[playerid] == SAPD || gLeader[playerid] == SAPD)
    [...]
    bzw. Army. Und untendrunter
    [...]
    else
    {
    SendClientMessage(playerid,ROT,"** Du hast nicht die benötigte Berechtigung!");
    }
    [...]
    Doch wenn ich /makeleader [ID] [TeamID] mache und dann das Army- bzw. das SAPD-Tor öffnen möchte bekomme ich die Nachricht "Du hast nicht die benötigte Berechtigung!"
    Woran liegt das?

    Ich verstehe nicht ganz die Logik.
    Du möchtest eine Homepage haben aber weißt nichtmal wofür?
    Normalerweise macht man sich selber Gedanken über einen Webspace, Homepage, Ideen bevor man selbiges eröffnet.


    Aber hier wären ein paar Ideen für dich:
    - Gaming News & Diskussion
    - Allround-Forum (Einfach diverse Kategorien wo einfach jeder was schreiben kann)


    Mit freundlichen Grüßen
    Padarom

    Danke für eure Feedbacks ;) Ich kann ja bei gelegenheit noch etwas verbessern.

    Sry für die dumme Frage aber wie mache ich wie bei deinem TUT ganz oben mit dem + also:
    "Hier klicken für weitere Informationen"?

    Wenn du einen Beitrag erstellst entweder auf das klicken oder

    Code
    [expander] ...  [/expander]


    eingeben.


    Mit freundlichen Grüßen
    Padarom

    Sorry für Doublepost, aber der eine Beitrag hätte über 10.000 Zeichen


    5. Ein paar Schritte weiter

    Spoiler anzeigen
    Jetzt wo wir wissen wie wir simple Variablen in der Konsole zurückgeben können, so können wir natürlich auch einen Schritt weiter gehen. Diesmal definieren wir gleich mehrere Variablen und geben sie in einem Schritt zurück. Außerdem nutzen wir dazu das sog. format, welches eine Nachricht formatiert.
    new test[256];
    new test1 = 5, test2 = 10, test3 = 15;
    format(test, sizeof(test), "Als erstes kommt %d, dann %d und dann %d!",test1,test2,test3);
    print(test);
    Dies sieht zwar schon etwas komplizierter aus, aber mit ein bisschen logischem Denken ist dies auch schnell begriffen.
    Als erstes definieren wir die Variable test mit einem Wert von 256. Da wir die Variable test als Nachricht nutzen wollen, so geben wir ihm eine maximale Länge von 256 Zeichen.
    Danach definieren wir noch die Variablen test1 - test3 mit ihren Werten. Dies ist in nur einer Zeile möglich.
    Nun zu dem neuen, dem format. In den Klammern schreiben wir erst welche Variable dieses Format annehmen soll, in unserem Falle ist das test. Danach muss das format wissen, wie groß die Nachricht maximal sein soll, also ein sizeof (Größe von) test. Wir könnten alternativ dazu den Wert auch selber eingeben, also statt sizeof(test) einfach 256. Nachdem dies definiert ist geben wir unsere Nachricht ein. Das %d kennen wir ja inzwischen, es gibt die Variable als Zahl wieder. Nach der Nachricht müssen wir diesmal aber nicht nur eine Variable mit ihrem Namen angeben, sondern in diesem Falle gleich 3, da wir ja drei verschiedene Werte haben möchten und dafür auch drei Variablen definiert haben. Nun haben wir die Nachricht, jetzt müssen wir sie noch wiedergeben.
    Dies geschieht nun auch mit print (nicht mit printf!) und in Klammern der Name der Variable die das Format enthält.
    Die Zeile wieder mit einem ; abschließen und auch dies ist geklärt.


    6. Joinmessage

    Spoiler anzeigen
    Ich gehe hier gleich viele Schritte weiter, doch viele interessiert eben am Anfang genau dieses Thema, weil es genauso leicht zu bewerkstelligen ist. Dazu suchen wir uns erst einmal den Callback OnPlayerConnect und geben in ihn ein:
    new pName[MAX_PLAYER_NAME];
    new join[256];
    GetPlayerName(playerid, pName, sizeof(join));
    format(join, sizeof(join), "%s ist dem Server beigetreten!", pName);
    SendClientMessageToAll(0xAAAAAAAAA,join);
    new pName erstellt die Variable mit dem Namen pName, das [MAX_PLAYER_NAME] ist auch ein Wert, nämlich der längste mögliche Name den man nutzen kann. Danach erstellen wir noch die Variable join, welche später wieder das Format enthalten wird. Auch hier ist der Wert 256. Hier muss das Script erst einmal den Spielernamen rausfinden. Dafür steht das GetPlayerName - Als erstes gibt man die Playerid und es speichert den Spielernamen in die Variable pName. Danach gibt man noch an mit wievielen Zeichen, also welcher Länge der Name gespeichert werden soll. Statt sizeof(join) können wir natürlich auch sizeof(pName) oder einfach eine Zahl eingeben.
    Danach wieder unser format, welches in der Variable join abgespeichert wird und die maximale Länge des Wertes von join besitzt. Der Text enthält diesmal kein %d, sondern ein %s, welches Text wiedergibt. Der Rest ist der Gleiche, da wir dem Script nur sagen was als Text wiedergegeben wird. Hier ist dies natürlich pName.
    Doch nun wollen wir den Spielernamen nicht in der Konsole, sondern allen anderen Spielern anzeigen.
    Dazu geben wir die Funktion SendClientMessageToAll ein. Als erstes geben wir eine Farbe an, in diesem Falle ist das Grau, wir können aber auch eine vorher definierte Farbe (s. Schritt 3) wie zum Beispiel COLOR_BLUE nutzen. Danach geben wir noch die Variable an, in der das Format gespeichert wurde.


    7. Leavemessages

    Spoiler anzeigen
    Da ich natürlich zu viel Text für euch vermeiden möchte, so überspringe ich hier die ersten paar Schritte, da ich diese ja schon in Schritt 6 erklärt habe. Wir suchen uns zuerst den Callback OnPlayerDisconnect und geben ein:
    new pName[MAX_PLAYER_NAME], text[256];
    GetPlayerName(playerid, pName, sizeof(text));
    switch (reason)
    {
    case 0: format(string,sizeof(text),"%s hatte einen Timeout.",pName);
    case 1: format(string,sizeof(text),"%s hat den Server verlassen.",pName);
    case 2: format(string,sizeof(text),"%s wurde gekickt/gebannt.",pName);
    }
    SendClientMessageToAll(0xAAAAAAAAA,text);

    Okay. Ich fange hier an mit dem switch (reason). Dies ist notwendig, da ein Spieler ja aus drei unterschiedlichen Gründen der Server verlassen kann. Timeout, freiwilliges Verlassen und Bann/Kick. Im Fall 0 (case 0) erstellen wir das format in der Variable text, mit der Größe von text und geben an, dass der Spieler den Server durch einen Timeout verlassen hat. Warum case 0 = Timeout weiß ich selber nicht, allerdings ist es einfach so. Im Fall 1 (case1) erstellen wir auch ein Format in text, mit der Größe von text und geben hier an, dass er den Server verlassen hat. Im letzten Fall, case2 wurde der Spieler gekickt oder gebannt. Nachdem wir für jeden dieser Gründe eine eigene Nachricht erstellt haben, so senden wir wieder eine Nachricht an alle (SendClientMessageToAll) und geben die Farbe an. Natürlich noch welche Variable zurückgegeben wird und beenden die Zeile wieder mit einem ;.


    Das war es zu meinem Anfänger-Tutorial. Es ist mein erstes, aber ich hoffe es erklärt euch alles gut und bringt euch mit dieser Scriptsprache in Kontakt.
    Für weitere Informationen könnt ihr die Forensuche benutzen, die SA:MP Wiki und die Google Suche. Für Kritik bin ich natürlich offen.


    Credits:
    Geschrieben von mir, Padarom. Ihr könnt das Tutorial, falls es euch so gefallen würde, beispielsweise auf eine Homepage einfügen, sofern ihr meinen Namen nennt ;)


    Mit freundlichen Grüßen
    Padarom

    Hallo,
    ich erkläre euch auch hiermal in meinen eigenen Worten die Basics von PAWN.


    1. Kommentare und ausklammern

    Spoiler anzeigen
    // Dies ist ein Kommentar
    Kommentare kann man einfach mit zwei // und einem Text dahinter erstellen. Diese Kommentare umfassen nur den Text in einer Zeile, also alles was dahinter steht.

    Spoiler anzeigen
    Möchte man jedoch ein Kommentar über mehrere Zeilen hinweg erstellen oder bestimmte Scriptingbereiche ausgrenzen, so geht das wie folgt:
    /* Dies ist
    ein Kommentar,
    das mehrere Zeilen umfasst */
    Alles was zwischen einem /* und einem */ steht wird als Kommentar gewertet und vom Script nicht berücksichtigt. Ausklammern ist nützlich, wenn man beispielsweise einen Teil im Script derzeit noch nicht braucht oder er zu verbuggt ist.


    2. Callbacks

    Spoiler anzeigen
    Im Script gibt es verschiedene Bereiche, Callbacks genannt. Mit diesen Callbacks gibt man an, was passieren soll, wenn beispielsweise ein Spieler in ein Fahrzeug einsteigt.
    Dies ist ein simpler Callback:

    public OnPlayerConnect(playerid)
    {
    return 1;
    }
    public gibt an, dass dies ein Callback ist, und das OnPlayerConnect ist einfach der Name des Callbacks. Was das playerid dahinter bedeutet erkläre ich erstmal nicht.
    Dieser Callback gibt an, was passieren soll wenn ein Spieler den Server betritt.
    Wenn dann etwas passieren soll, so gibt man dies zwischen dem { und dem
    return 1 an.


    3. Definitionen und Includes

    Spoiler anzeigen
    Wenn du ein neues Script startest, siehst du in den ersten Zeilen immer etwas wie dies:
    //#define FILTERSCRIPT
    #include <a_samp>
    Jetzt zur Erklärung, ein #define definiert etwas, wie der Name schon sagt. In diesem Falle definiert es unser Script so, dass der Server es als sog. Filterscript ansieht. Da dies allerdings durch das // als Kommentar genutzt wird, kann man es löschen ohne das Script zu ändern. Möchte man also einen Gamemode erstellen ist es ratsam diese Zeile zu löschen, da sie ja eigentlich nichts bringt.
    Man kann ein #define auch für andere Dinge anwenden, wie zum Beispiel für Farben.
    #define COLOR_BLUE 0x0099FFAA
    Dies definiert die Farbe Blau (Mit dem Namen COLOR_BLUE) und der HEX-Farbe wie angegeben. Eine Liste mit Farben kann man per Google und evtl. hier im Forum finden.

    Spoiler anzeigen
    Nun zum #include, dies fügt ein Include zum Script hinzu. Beispielsweise wenn man sich ein Register/Login System erstellen möchte nutzt man dafür oft das sog. dini (oder dutils) welche auch Includes sind.


    4. Der Start

    Spoiler anzeigen
    Wenn wir nun mit dem Scripten anfangen wollen, so müssen wir uns erstmal mit ein paar simplen Dingen beschäftigen. Das nervt zwar, allerdings ist es immer notwendig um später das Komplexe in Anspruch zu nehmen. Man kommt in einer Scriptsprache nicht sehr weit, wenn man die Anfänge nicht kann, aber gleich mit schweren Dingen anfangen möchte.
    Wir starten mit simplen Variablen (Platzhaltern) die wir in der Konsole des Servers wiedergeben.
    Dazu öffnen wir uns ein Script und löschen alles zwischen main() { und dem nächsten }.
    Nun geben wir diesen Text ein:
    new variable = 15;
    printf("%d",variable);
    Jetzt zur Erklärung, das new sagt dem Script, dass wir nun eine neue Variable erstellen. Dass diese zufällig variable heißt ist irrelevant. wir könnten statt variable auch var1 oder sonstiges schreiben. Danach kommt ein = 15; was den Wert der Variable, hier also 15, definiert. Das ; ist nötig um dem Script zu sagen dass wir in dieser Zeile nichts mehr definieren oder ausführen.
    printf gibt eine Nachricht in die Konsole (Das schwarze Fenster in dem der Server läuft) an. Das, was nach den Klammern in Anführungszeichen steht, ist der Text (oder die Zahl) die wiedergegeben wird. Ein %d gibt an, dass man eine Zahl zurückgibt. Doch das %d alleine reicht ja nicht, das Script möchte ja wissen welche Zahl zurückgegeben werden soll. Also geben wir noch ein ,variable ein um dem Script zu sagen dass eben diese Variable zurückgegeben werden soll. Danach schließen wir die Klammern und setzen noch ein ; hintendran um diese Zeile zu beenden.

    Die Map an sich ist ganz gut.
    Allerdings sind kleine Logikfehler drinnen.
    Beispielsweise würde die Polizei niemals so viele Absperrungen hinstellen, sondern immer zwischendrin etwas frei lassen. Außerdem sind die Absperrungen nicht ganz im Halbkreis, sondern alle ein bisschen versetzt.


    Idee: 10/10
    Zeit: 7/10
    Umsetzung: 7/10
    Gesamt: 8/10

    Erstmal ist das der falsche Bereich.
    Hier wäre der richtige!
    Danach les erstmal das


    Es fehlen alle Informationen über dich, über das Projekt, warum, was als Gegenleistung, wie man dich erreichen kann, und und und.


    So wird dir niemand helfen!

    Hallo,
    ich habe mir eben ein Tutorial auf YouTube angesehen, auf dem erklärt wird wie man eine Enterpage über Cookies sperren kann, sodass sie nicht weiter angezeigt wird.
    Das habe ich dann bei meiner Enterpage ausprobiert, aber sie wird immer wieder angezeigt. In meinem Firefox Cookie-Ordner wird dieser Cookie zwar mit dem richtigen Wert angezeigt, allerdings funktioniert es trotzdem nicht.


    Hier der Code den ich über meine HTML-Enterpage gemacht habe:

    PHP
    <?php
    $cookie = $_COOKIE["enterpage_sprung"];
    
    
    if($cookie == "springen")
    {
    Header("Location: http://www.samp-reallife.nevakee.de/index.php"); exit();
    }
    ?>


    Und hier der Code den ich in der PHP-Datei die den Cookie erstellen soll habe. (Mit dem Namen: enterpage_sprung.php)

    PHP
    <?php
    setcookie ("enterpage_sprung","springen",time()+(3600*24));
    Header("Location: http://www.samp-reallife.nevakee.de/index.php"); exit();
    ?>


    In der HTML-Datei verlinkt das Bild auf die Datei enterpage_sprung.php, und diese leitet wie gewollt auf das Forum weiter, allerdings ohne dass der Cookie wirklich wirkt.


    Wer sich das ganze ansehen möchte kann dies hier tun:
    http://www.samp-reallife.nevakee.de
    Sorry falls ich den Link nicht posten darf, falls das zu Homepage-Werbung zählt


    Mit freundlichen Grüßen
    Padarom

    Von mir auch ein riesen Lob!
    Tolle Webseite, super Artikel die im richtigen Niveau geschrieben wurden.


    Woher du diese geilen Storys hast ist mir unklar, denn mir würde nie die Idee auf solche Storys kommen, da hat dein Gehirn einen Vorsprung ;)


    Habe auch schon viele Bekannte reingelegt, aber das mit lockerz.com hat mich auch geschockt, obwohl ich weiß dass es nur A FAIK ist


    Mit freundlichen Grüßen
    Padarom

    Happy Halloween an alle!
    Ich bin heute Abend zu 'ner Party eingeladen, da kommen noch etwa 15-20 Bekannte von mir.
    Wir werden wahrscheinlich die ganze Nacht irgendwelche Horrorfilme (like The Happening, SAW) und Southpark sehen. Wird wahrscheinlich eine geile Party.


    Deswegen bin ich auch in einer halben Stunde weg.


    Mit freundlichen Grüßen
    Padarom

    So. Ich habe für The_Gamer die Enterpage und ein neues Forenlayout erstellt, womit er wie ich sehe sehr zufrieden ist. Über Teamviewer noch ein bisschen abgestimmt und gleich nachdem ich es ihm geschickt habe hochgeladen.
    Gamer ist wirklich nett und zuverlässig, kam von selber zu den Gegenleistungen und hat mir einen 100 Slot Teamspeak & 500 Slot Gameserver spendiert und einiges erklärt. Ich bedanke mich bei ihm und wäre froh wenn es mehr zuverlässige Leute gibt.
    Wie die Enterpage und das Forum jetzt aussehen könnt ihr natürlich auf der Homepage http://www.prt-clan.com nachsehen.


    Mit freundlichen Grüßen
    Padarom