Beiträge von KTP

    Also,
    Ich möchte gerne, dass ein Admin mit einem Befehl alle Cars respawnen kann.
    Mein Code funktioniert aber nicht, kann jemand helfen?


    Hallo,
    Wie die Überschrift schon sagt suche ich derzeit nach einem /tv Script für Admins.
    Könnte mir da vielleicht jemand aushelfen?
    Wäre nett.


    PS: Wen es der falsche Bereich ist sagt es mir bitte,dann verschieb ich es.

    Hallo,
    In diesem Tutorial werde ich euch zeigen wie ihr ganz einfach mit einem Befehl
    ein Auto in eure nähe spawnt.
    Der fertige Befehl wird am ende so aussehen: /v [VehicleID]


    Was brauchen wir?


    Wir benötigen für diesen Befehl einmal sscanf und denInclude ocmd.
    Diese findet ihr hier:
    [ SCRIPTING ] Game Text Script für Admins


    So nach den Vorbereitungen geht es nun endlich los.
    Ihr fügt einach irgendwo im Script (nicht in einem Plublic,Stock,ect.) diesen Blanko Code ein:


    Code
    ocmd:NameDesBefehls(playerid,params[])
    {
    	return 1;
    }


    Nun setzen wir den Namen des Befehls fest.
    Ändert einfach den Text da wo momentan noch NameDesBefehls steht in ein einfaches
    kleines v.


    Nun kommen ein paar Definitionen in Form eines News:


    Code
    new vehicleid,car;


    Dies definiert einfach die Vehicle ID.
    Nun kommt noch:


    Code
    new Float:X,Float:Y,Float:Z,Float:ZA;


    Damit können wir nachher die Position des Spielers dem Server geben.
    Float:X,Y,Z heißt einfach Position X,Y,Z.
    Float:ZA heißt in welche Richtung der Spieler blickt.


    Nun benötigen wir unser sscanf.
    Fügt diesen Code unter die News ein:


    Code
    if(sscanf(params,"i",vehicleid)) return SendClientMessage(playerid,ROT,"Nutze /veh [ID]");


    Wir sehen anders als im letzten Tutorial mit den Game Texten steht hier nun ein i in den ".
    Das i steht für eine Zahl, die eingegeben wird (i=Integer auf deutsch einfach Zahl).
    Das Vehicleid dahinter sagt dem Script für was das i bzw. die Zahl, die der Spieler später im Spiel eingibt
    steht.


    Um nun die Position und die Blickrichtung des Spielers zu bekommen, um dann nacher das Auto nicht
    an einem Punkt, sondern am Punkt des Spielers zu spawnen, geben wir dem Script
    die X,Y,Z und ZA Koordinate.


    Code
    GetPlayerPos(playerid,X,Y,Z);


    Damit währe schon die X,Y und Z Koordinate geklär, aber es fehlt immernoch die ZA Koordinate.
    Diese stellen wir so fest:


    Code
    GetPlayerFacingAngle(playerid,ZA);


    Die Blickrichtung des Spielers braucht gleich das CreateVehicle als Parameter, darum müssen wir sie auch fassen.
    Nun kommt der letzte Schritt.
    Wir spawnen das Auto an der Stelle des Spielers.
    Dies ist eigentlich ganz einfach, wir geben im Script ein:


    Code
    car= CreateVehicle(vehicleid,X,Y,Z,ZA,1,1,-1);


    Code
    Der Code besagt einfach: Erstelle ein Vehicel,
     das der Spieler aussuchte,
     das an der Position des Spielers gespawnt werden soll,
     das in die Richtung des Spielers stehen soll,
     dessen zwei Farben Farb ID 1 und 1 sind,
    dessen Respawnzeit -1 beträgt.


    Die Farbe und die Respawnzeit kann man natürlich noch ändern.
    Will man jetzt noch, dass der Spieler direkt in das Auto reingesetzt wird,schreibt man noch das:


    Code
    PutPlayerInVehicle(playerid,car,0);


    Die 0 am Ende ist der Autositz.
    0 ist Fahrer, 1ist Beifahrer und 3 und 4 sind Plätze hinten.


    So das wars wieder von mir.
    Ich hoffe ich konnte euch eingige Funktionen etwas näher bringen, besonders den Anfängern.
    :)


    //Edit Korrektur

    Hallo und Guten Tag,


    Ich möchte ihnen nun mit Hilfe eines Tutorials alles erklären, was man für einen Game Text dessen Inhalt man selbst bestimmen kann, braucht und wie man es aufbaut.
    Ich habe mich entschlossen diesen Befehl nicht wie üblich mit cmdtext zu machen sondern mit ocmd.
    Ocmd ist ein Include bzw. man muss ein Include besitzen um ocmd nutzen zu können. Der download dieses Includes befindet sich hier: [Include] OCMD


    Was brauchen wir noch?


    Als nächstes brauchen wir den sscanf stock. Dieser befindet sicher hier drunter. Einfach unten im Script einfügen und fertig.



    Das letzte was wir brauchen wäre dann noch der stock SpielerName. Den auch unten ins Script einfügen:

    Code
    stock SpielerName(playerid)
    {
    	new name[MAX_PLAYER_NAME];
    	GetPlayerName(playerid,name,sizeof(name));
    	return name;
    }


    So das waren die Vorbereitungen, nun kommt der eigentliche Teil:


    Ähnlich wie ein cmdtext wird auch ein ocmd erstellt.
    Der reine ocmd sieht so aus:


    Code
    ocmd:NameDesBefehls(playerid,params[])
    {
    	return 1;
    }


    Anders als bei cmdtext muss man den Namen des Befehls nicht mit / angeben sondern man muss nur den Namen angeben:


    Statt:

    Code
    /name


    Code
    name


    Wir nennen den Befehl nun: gt für GameText.


    Code
    ocmd:gt(playerid,params[])
    {
    	return 1;
    }


    Das erste was wir machen müssen/sollten ist den Befehl nur einem Admin bzw. in diesem Fall einen Rcon Admin zu erlauben.
    Darum fügen wir in die Klammern über return 1; dies ein:


    Code
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,ROT,"Du bist kein Admin.");


    Wenn das kein Script sondern eine normale Sprache wäre, hieße dies in deutsch:


    Ist der Spieler kein Admin, dann sende ihm die Nachricht"..."!
    Weiter gehts.
    Nun kommt eine Definition in Form eines new:


    Code
    new string[128],reason[128];


    Dies bedeutet einfach (meines wissens nach), dass string und reason maximal 128 Zeichen in Form von Buchstaben, Zahlen, ect. haben dürfen.


    Nun kommt unser eben eingeügtes sscanf zum Einsatz:


    Code
    if(sscanf(params,"s",reason)) return SendClientMessage(playerid,ROT,"Nutze /gt [TEXT]");


    Dies ist etwas komplexer.
    Das "s" was wir dort sehen steht für den Text, den der Spieler eingibt. Ich werde demnächst ein weiteres Tutorial dazu machen und den Link dann hier drunter stellen.


    Nun kommen wir doch zum nächsten Schritt.
    Nun legen wir fest, was letztendlich alles angezeigt werden soll.


    Code
    format(string,sizeof(string),"%s",reason);


    Der Text, der in den Klammern steht ist der Text der letztendlich angezeigt wird.
    Wir können ihn beliebig ändern. Das %s, dass im moment dort steht lässt den angegebenen Text des Spielers hinter /gt
    anzeigen.
    Nach den " sehen wir ein reason, diesed benutze ich dafür.
    Wahrscheinlich gibt es mehr Methoden. reason heißt jetzt einfach, dass in die erste %s Stelle der Text des Spielers kommt.
    Möchte ich angeben wer den Text geschriebn hat kann ich hinzufügen:


    Code
    format(string,sizeof(string),"%s schrieb: %s",SpielerName(playerid),reason);


    Zusammengefasst zeigt die erste Stelle hinter den " das erste %s an, das zweite die zweite usw.


    Kommen wir zum letzten Schritt.
    Bis jetzt weiß das Script alles nötige, aber es wird noch nichts angezeigt.
    Der einfache Mann denkt jetzt:
    "Ok ganz einfach! Ich mache einfach

    Code
    GameTextForAll(playerid,


    "
    Und schon steht ein Problem fest:
    Wir wissen nicht wie wir den eben verfassten Text in die Klammern bekommen.
    Das ist eigentlich ganz einfach.


    Code
    GameTextForAll(string,3000,6);


    Das string an der Stelle des Textes bedeutet, dass das Script den Text aus dem string nimmt.


    So das wars.
    Ich hoffe ich konnte euch ein paar Dinge näher bringen.
    :)


    //Edit Korrektur

    Hört sich gut an Mike, Fraps ist eigentlich nur für Gamer Pcs gedacht.
    Darum würde ich Fraps nicht empfehlen, weil ich auch immer arge Probleme mit dem Aufnahmeprogramm habe
    :)

    Hallo,
    Ich habe ein Problem und zwar: Der Adminlevel des Spielers wird wenn er offline geht nicht gespeichert.
    Hier der Code:


    Code
    stock SpielerSpeicher
    {
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    }


    Nicht wundern wenn bei dem Code etwas fehlt, es geht ja nur um dini_IntSet Adminlevel.
    Unter OnPlayerDisconnect steht:


    Code
    SpielerSpeichern(playerid);


    Das Geld und der Level wird abgespeichert, was ist das Problem?
    Jedes mal wenn ich mich dann wieder zum Admin machen will muss ich mich dann per rCon Admin einloggen.
    Bitte um Hilfe.

    Hallo, ich bin es nochmal:
    Und zwar gibt Pawno mir keinen Error/Warn, aber weder Waffe noch Munition werden im Spielerspeicher gespeichert und erst gar nicht im Spiel wieder gegeben.
    Was muss ich noch änderen?

    Hallo,
    ich habe ein Problem, undzwar möchte ich wenn der Spieler off geht, dass seine Waffen gespeichert werden.Im Script kommt aber immer


    Code
    J:\Server\gamemodes\Visual.pwn(1052) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    1 Warning.


    Wo ist das Problem?
    Hier ist der Code:


    Code
    GivePlayerWeapon(playerid,dini_Int(Spielerdatei,"Waffe"));