Beiträge von SmD

    du müsstest RangNamen[8][8] zu RangNamen[9][8] machen und oben noch eine zeile mit z.b. NixName einfügen, da die array größe (also wie hier das da -> [8]) nicht bei 1 anfängt sondern bei 0
    also in deinem fall sehe das dann so aus:


    new RangNamen[9][8] = {
    {"NixName", "NixName", "NixName", "NixName", "NixName", "NixName", "NixName", "NixName"}
    {"Praktikant", "Auszubildender", "Fußgängerstreife", "Motorradstreife", "Streifenpolizist", "Spezialeinheit TS", "Stellv. Polizeidirektor", "Polizeidirektor"}, // Polizei - Hier ist der error
    {"Praktikant", "Auszubildender", "Hilfsarzt", "Assistenzarzt", "Notarzt", "Oberarzt", "Stellv. Direktor", "Direktor"}, // Notarzt
    {"Praktikant", "Auszubildender", "Hilfskraft", "Assistent", "Straßenräumdienst", "Allg. Räumdienst", "Stellv. Direktor", "Direktor"}, // Ordnungsamt
    {"Praktikant", "Auszubildender", "NixName", "NixName", "NixName", "NixName", "Stellv. Redaktionsleiter", "Redaktionsleiter"}, // Nachrichtendienst
    {"Praktikant", "Auszubildender", "NixName", "NixName", "NixName", "NixName", "Stellv. Direktor", "Direktor"}, // Fahrschule
    {"NixName", "NixName", "NixName", "NixName", "NixName", "NixName", "NixName", "NixName"}, // Mafia / Gang 1
    {"NixName", "NixName", "NixName", "NixName", "NixName", "NixName", "NixName", "NixName"}, // Mafia / Gang 2
    {"NixName", "NixName", "NixName", "NixName", "NixName", "NixName", "NixName", "NixName"} // Terroristen
    };

    du liest den spielernamen aus:

    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pname,MAX_PLAYER_NAME);


    dann überprüfst du mit strcmp ob der spielername, dem namen entspricht, dem der skin zugeordnet ist:



    if(classid == 167 && strcmp(name,"Atze_Cj",true))
    {
    return SendClientMessage(playerid,0xFFFFFFFF,"Du bist nicht Atze_Cj!");
    }


    MfG


    SmD

    du brauchst dafür keine pvar. Es gibt da die funktion ForceClassSelection die automatisch nach dem tod in die charakterauswahl geht

    Hi Community,
    ist es möglich, das "Zielscheiben-Objekt" mit der ID 1586, welches man aus der Ammunation Shooting-Range im Singleplayer kennt, zerbrechlich zu machen. Denn wenn ich das Objekt in die map einfüge und drauf schieße zerbricht es nicht, sondern ist nur als ganzes Objekt da. Hab ich das falsche Objekt? Geht das nur anders per Script? Oder geht es überhaupt nicht? Schon mal vielen Dank im Vorraus.


    Mit freundlichen Grüßen


    SmD

    also ich hab das jetzt mal so probiert:


    new deinstring[256],var1,var2,var3;
    format(deinstring,sizeof(deinstring),"05.04.2005");
    sscanf(deinstring,"p<.>iii",var1,var2,var3);
    printf("%i %i %i",var1,var2,var3);


    aber der output in der konsole hat immer gesagt, dass in den variablen "0" drin steht

    Hi zusammen,
    ich hätte eine frage zu sscanf und zwar ob es möglich ist z.b. bei einem datum, wie "05.04.2005", mit sscanf so zu spliten
    dass ich am ende die einzelnen zahlen hab.


    mfg


    SmD

    Versuch mal, indem du den freeze kurz wieder weg machst, ihn dann ins auto setzt und den freeze dann wieder an machst. bei mir hats gefunzt

    PlayerPlaySound(TargetID,5201,0,0,15);


    muss


    PlayerPlaySound(TargetID,5201,0,0,0);


    heißen, denn nur wenn alle coords 0 sind wird der sound abgespielt, egal wo der player ist

    oben ins script:


    new bool:finden[MAX_PLAYERS],
    findplayer[MAX_PLAYERS],
    findsek[MAX_PLAYERS];


    forward FindenTimer(playerid,zielid);


    der ocmd command und die public für den timer:


    ocmd:finde(playerid,params[])
    {
    if(finden[playerid] == true) return SendClientMessage(playerid,0xFF0000FF,"Du hast den Spieler schon gefunden!");
    new ziel;
    if(sscanf(params,"i",ziel)) return SendClientMessage(playerid,0xFFFFFFFF,"Info: /finde [playerid]");
    finden[playerid] == true;
    findsek[playerid] = 0;
    SetTimerEx("FindenTimer",1000,0,"ii",playerid,ziel);
    return 1;
    }


    public FindenTimer(playerid,zielid)
    {
    if(finden[playerid] == false) return 1;
    new Float:x,Float:y,Float:z;
    if(findsek[playerid] == 0)
    {
    GetPlayerPos(zielid,x,y,z);
    SetPlayerCheckpoint(playerid,x,y,z,6);
    SendClientMessage(playerid,0xFFFFFFFF,"Du hast den Spieler gefunden!");
    findsek[playerid]++;
    }
    else if(findsek[playerid] > 0 && findsek[playerid] < 10)
    {
    GetPlayerPos(zielid,x,y,z);
    SetPlayerCheckpoint(playerid,x,y,z,6);
    findsek[playerid]++;
    }
    else if(findsek[playerid] == 10)
    {
    DisablePlayerCheckpoint(playerid);
    findsek[playerid] = 0;
    finden[playerid] = false;
    }
    SetTimerEx("FindenTimer",1000,0,"ii",playerid,zielid);
    return 1;
    }

    Oben im Script:


    new adminveh[MAX_PLAYERS];


    bei onplayercommandtext:


    if(!strcmp(cmdtext,"/smobil",true))
    {
    if(Spieler[playerid][AdminLevel] < 1) return (playerid,0xFF0000FF,"Dein Admin-Level reicht nicht aus!");
    if(GetVehicleModel(adminveh[playerid]) > 0)
    {
    DestroyVehicle(adminveh[playerid]);
    SendClientMessage(playerid,0xFFFFFFFF,"Du hast dein Admin-Fahrzeug zerstört!");
    }
    else
    {
    new Float:posx, Float:posy, Float:posz, Float:angle;
    GetPlayerPos(playerid,posx,posy,posz);
    GetPlayerFacingAngle(playerid,angle);
    adminveh[playerid] = CreateVehicle(457,posx,posy,posz+1,angle,1,1);
    PutPlayerInVehicle(playerid,adminveh[playerid],0);
    SendClientMessage(playerid,0xFFFFFFFF,"Du hast dir ein Admin-Fahrzeug gespawnt!");
    }
    return 1;
    }


    und unter onplayerdisconnect:


    DestroyVehicle(adminveh[playerid]);



    das ganze muss natürlich noch an dein admin-system angepasst werden

    bei punkt 1 solltest du jeweils das:


    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt");


    durch das ersetzen:


    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);


    du hast zwar gesagtt, dass er dort eine variable einsetzen soll, aber nicht welche

    du kannst den command auch in 2 zeilen schreiben, also z.b. so:


    format(ahelpstring,sizeof(ahelpstring),
    "{C0C0C0}Ab Supporter Lv.1 :\n\n{FFF2F2}/tickets\n{FFF2F2}/accepteinweisung\n{FFF2F2}/saveall\n{FFF2F2}/settutorial\n{FFF2F2}/deleteallnagelband\n{FFF2F2}/acceptsupport\n{FFF2F2}/closesupport\n{FFF2F2}/deletesupport\n{FFF2F2}/vehinfo\n{FFF2F2}/warn\n{FFF2F2}/kick\n{FFF2F2}/mute\n{FFF2F2}/say\n{FFF2F2}/fixveh\n{FFF2F2}/goto\n{FFF2F2}/gethere\n{FFF2F2}/tele\n{FFF2F2}/veh\n{FFF2F2}/aduty\n{FFF2F2}/noooc\n{FFF2F2}/clearchat\n{FFF2F2}/rcar\n{FFF2F2}/website\n{FFF2F2}/destroyveh");


    ich hoffe die zeile ist dann kurz genug.

    ich denke du kannst das auch unter OnVehicleRespray machen.
    du überprüfst ob der spieler 100$ auf der hand hat, wenn ja dann schreibt er in der spielerdatei -100$ wenn nicht dann nicht