Beiträge von pwnfl4sh

    Du musst engine, lights etc deinem Motorsystem anpassen.
    Bei den Meisten sind diese Variablen lokal definiert.


    LG



    // Edit: Dann hast du wahrscheinlich engine,lights etc bei deinen Befehlen zum EIn/Ausschalten des Motors nochmal definiert, entfern' sie da wenn du sie lokal definiert hast.

    for (new i=0; i< MAX_VEHICLES; i++)
    {
    GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objectives);
    SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objectives);
    }


    Das Ganze unter OnGameModeInit,
    falls VEHICLE_PARAMS_OFF bei dir nicht klappen sollte, ersetz es durch 0.


    LG

    ocmd:fwagen(playerid,params[])
    {
    for(new i=0;i<sizeof(FeuerwehrCars);i++)
    {
    new Float:vx,Float:vy,Float:vz;
    GetVehiclePos(FeuerwehrCars[i],vx,vy,vz);

    if(IsPlayerInRangeOfPoint(playerid, 10.0,vx,vy,vz))
    {
    if(SpielerInfo[playerid][Fraktion] == 13)
    {
    ShowPlayerDialog(playerid,DIALOG_FEUERWEHRWAGEN,DIALOG_STYLE_LIST,"Feuerwehrwagen","Feuerlöscher[1000]\nFeuerlöscher[1500]\nFeuerlöscher[2000]\nFeuerlöscher[2500]\nFeuerlöscher[10000]\nFeuerlöscher[20000]","Wählen","Verlassen");
    }
    else SendClientMessage(playerid,COLOR_RED,"Du bist nicht bei der Feuerwehr");
    }
    else SendClientMessage(playerid,COLOR_RED,"Du bist nicht in der nähe eines Feuerwehr wagens");
    }
    return 1;
    }



    Sollte funktionieren.


    LG

    Heeyooo ^^


    Hier ein ziemlich schlicht gehaltenes, jedoch nützliches Filterscript.
    Ingame können RCON-Admins mit Hilfe des Commands /cport (Code) einen Teleportcode erstellen und sich zu diesem bei /gotoport (Code) hinporten. Es wird die X, Y & Z Koordinate sowie die Facingangle und Interior & Virtuelle Welt des Spielers in die Datei eingetragen.


    Funktionen:


    CreateTeleportCode(code,Float:x,Float:y,Float:z,Float:angle,interior,world)


    Erstellt einen Teleportcode.


    Anleitung:


    Ihr braucht Include Dini, ZCMD & Das Plugin SSCANF2 oder SSCANF.
    Fügt das Filterscript in den Ordner "filterscripts" ein, erstellt den Ordner "Teleports" im "scriptfiles" Verzeichnis und fügt das Filterscript eurer server.cfg hinzu. Nun könnt ihr Ingame mit /cport Teleports erstellen und euch zu diesen mit /gotoport hinporten.


    Ihr könnt euch auch den Beispielordner runterladen.
    Dieser enthält 7 Teleports:


    1: BSN (LS)
    2: PD (LS)
    3: Grove Street (LS)
    4: Pay'n'Spray (LS)
    5: PD Tanke (LS)
    6: Alhambra (LS)
    7: Stadthalle (LS)


    Beispiel-Teleports Ordner Download


    Und hier das Filterscript:


    [ Download ]
    [ Pastebin ]


    Wie gesagt, es ist kein sehr großes Filterscript, aber derjenige der es gebrauchen kann kann es sich ja downloaden ;)




    LG & Viel Spaß

    :O Das ist ja mein MOTD System^^


    Hier:


    #include <a_samp>


    public OnPlayerCommandText(playerid,cmdtext[])
    {


    if(strcmp(cmd, "/cmsg", true) == 0)
    {


    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' ')) {
    idx++;
    }
    new offset = idx;
    new result[128];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid,COLOR_SYSTEM,"Benutze /cmsg (Text)");
    return 1;
    }
    if(!dini_Exists(msg_datei))
    {
    dini_Create(msg_datei);
    dini_Set(msg_datei,"Nachricht",result);
    }
    else
    {
    dini_Set(msg_datei,"Nachricht",result);


    }
    new str[128];
    format(str,sizeof str,"* INFO: Spawnnachricht erstellt! [ %s ]",result);
    SendClientMessage(playerid,neongelb,str);
    return 1;
    }
    return 1;
    }


    Sollte klappen, nicht getestet.


    Und schön die Credits drinnenlassen >:D


    LG

    Ne, Dini ist korrekt <3 Aber MySQL ist besser :D


    Die maximale Länge von einem Namen ist 25 :O also drück STRG+H im Script und ersetz Name[68]; mit Name[MAX_PLAYER_NAME]; oder Name[25];


    Und die Strings, tja, den wirst du wohl für jede Nachricht anpassen müssen ;)

    ForEachPlayers, MySQL, kleine Strings, Strings recyclen (wiederverwenden) & nicht tausende Variablen mit [MAX_PLAYERS]; lieber pVars verwenden, nicht tausende Abfragen, lieber switch & case :P - Und das sind nur einige kleine Sachen die ein Script effizienter machen.



    Ein kleines Beispiel:


    Fail:


    new String[256];
    format(String,sizeof String,"Hallo %s.",name);
    SendClientMessage(playerid,Farbe,String);


    Gut:
    new String[16];


    format(String,sizeof String,"Hallo %s.",name);


    SendClientMessage(playerid,Farbe,String);


    Noch ein Beispiel:


    Fail:


    public OnPlayerDeath(playerid, killerid, reason)
    {
    if(gTeam[killerid] == 0 && gTeam[playerid] == 0)
    {
    SendClientMessage(killerid,farbe,"Teamkill ist verboten.");
    }
    if(gTeam[killerid] == 1 && gTeam[playerid] == 1)
    {
    SendClientMessage(killerid,farbe,"Teamkill ist verboten.");
    }
    //...


    Gut:


    public OnPlayerDeath(playerid, killerid, reason)


    {
    if(gTeam[killerid] == gTeam[playerid])
    {
    SendClientMessage(killerid,farbe,"Teamkill ist verboten.");
    }


    Und wo wir bei gTeam[MAX_PLAYERS] sind, gilt das für oben - lieber pVars.



    LG :D


    // Edit: Etwas effizientes Hinzugefügt <3

    Als Beispiel - /healme - ein Befehl ohne Parameter


    Und - /heal (ID) - ein Befehl mit Parameter


    diese Parameter kann man mit Hilfe von sscanf splitten.


    new ID; // nötig
    if(sscanf(params,"i",ID)) ...


    Das "i" steht für Integer, weil ID eine Nummer ist. Da du bei deinem Befehl (/name (text)) einen String ausgeben willst, benötigst du "s".


    Also:


    new string[128];
    if(sscanf(params,"s",string)) ...
    Params = Parameter
    In diesem Fall ist String unser Parameter ( String = Der text, den der Spieler nach /name eingibt.


    Es gibt hier im Forum übrigens gut erklärte Tutorials zu Befehlen mit Parametern^^

    Zu 1.:


    • Schleife für alle Spieler
    • Spielerposition rausfinden
    • Abfragen ob die Spieler sich im Radius der ID befinden (IsPlayerInRangeOfPoint)


    Zu 2.:


    (in zcmd)


    COMMAND:name(playerid,params[])
    {
    if(isnull(params)) return SendClientMessage(playerid,farbe,"/name (Text)");


    format(params,128,"Du hast /name (%s) eingegeben!",params);
    SendClientMessage(playerid,farbe,params);
    return 1;
    }


    LG

    Huhu Community!


    Hier ein kleines System, was ich heute aus Lust&Laune
    zusammengebastelt hab. Sowas ähnliches gibt es auch schon hier im Breadfish,
    aber hier ist meine eigene kleine Version (Effizienter+mit zcmd) :)


    Das System ist dynamisch, das heißt man kann Ingame als RCON-Admin eine
    Spawnnachricht erstellen mit /cmsg (Text). Diese wird daraufhin in der
    Datei msg.txt gespeichert und dem Spieler beim ersten Spawn angezeigt.




    Pastebin:
    #include <a_samp> #include <dini> #include <zcmd> #define FILTERSCRIPT # - Pastebin.com


    Download: (Filterscript+Includes+Anleitung)
    File-Upload.net - MotDSystem-Filterscript.rar


    Screen:


    http://imageshack.us/f/5/samp847o.png/



    Viel Spaß damit :D

    Erklär mal etwas genauer welches Problem du hast.
    Wenn du deine gespeicherten Cars im public OnGameModeInit auslesen willst, kannst du eine Funktion erstellen, die beispielsweise LoadVehicles(); heißt und dann den String printet.


    stock LoadVehicles()
    {
    //
    //
    //
    return printf("Fahrzeug geladen, X: %f, Y: %f, Z: %f, Rotation: %f, Model: %d",x,y,z,rotation,model); // usw
    }


    LG

    Naja, was soll denn eingebaut sein? Den Grund hab ich doch bereits genannt, auf Wunsch zeig ich die PWN sogar per TeamViewer (vertrauenswürdigen Leuten only).


    Ausserdem gabs die PWN sogar im pastebin Format-somit habe ich nichts zu verschweigen.