Beiträge von samu

    Ich habe ShowNameTags( 0 ); drin, soll das dann raus wenn ich SetNameTagDrawDistance(50.0); rein tue? Weil eig. wollte ich ja das man nicht den Namen über einen Spieler sieht


    EDIT: Habe jetzt SetNameTagDrawDistance(50.0); drin, der Marker auf der Karte verschwindet wieder nach so ca. 30 Metern :(


    Hast das vl was mit LimitGlobalChatRadius zutun? Weil das habe ich im script mit 20 ...

    Moin,


    if(strcmp(cmd, "/show", true) == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ORANGE, "Benutze: /show [ID]");
    return 1;
    }


    new giveplayerid = ReturnUser(tmp);
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s ist nun für dich sichtbar!", sendername);
    SendClientMessage(giveplayerid, GREY, string);
    format(string, sizeof(string), "Du bist nun für %s sichtbar!", giveplayername);
    SendClientMessage(playerid, GREY, string);
    SetPlayerMarkerForPlayer(giveplayerid, playerid, WHITE);
    }
    else if(giveplayerid == INVALID_PLAYER_ID)
    {
    format(string, sizeof(string), "ID nicht vergeben!");
    SendClientMessage(playerid, ORANGE, string);
    }
    return 1;
    }


    In diesem Cmd will ich das "giveplayerid" mich sieht, das funzt auch soweit nur wenn ich mich so ungefähr 30 - 40 Meter entferne verschwindet der Marker auf der Karte!
    Wenn der Player spawnt, stell ich die PlayerColor auf 0xAFAFAF00, also unsichtbar auf der Karte. Bei Show sollte es dann nur für giveplayerid weiß werden, aber bei 40 Meter entfernung verschwindet der Marker einfach.


    Die einzige Distanzeinstellung die ich im Script habe ist LimitGlobalChatRadius, die ist auf 20 Meter eingestellt sonst nichts.
    Was geht da vor sich?!


    Gruß
    samu

    public JobUpdate(playerid)
    {
    new File[128];
    new plyname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, plyname, sizeof(plyname));
    format(File, sizeof(File), "/sAccounts/%s.ini", plyname);
    JobInfo[playerid][Hjob] = dini_Int(File, "Hjob");
    JobInfo[playerid][HjobLevel] = dini_Int(File, "HjobLevel");
    JobInfo[playerid][Njob] = dini_Int(File, "Njob");
    JobInfo[playerid][NjobLevel] = dini_Int(File, "NjobLevel");
    JobInfo[playerid][Jobactive] = dini_Int(File, "Jobactive");
    JobInfo[playerid][Playersx] = dini_Float(File, "Playersx");
    JobInfo[playerid][Playersy] = dini_Float(File, "Playersy");
    JobInfo[playerid][Playersz] = dini_Float(File, "Playersz");
    JobInfo[playerid][Playersa] = dini_Float(File, "Playersa");
    return 1;
    }

    Moin,


    habe mal diesen Command zum speichern der Koordinaten des Spielers in einer .ini Datei erstellt, aber es wird zwar die Meldung mit "Koords. erfolgreich gespeichert" angezeigt, aber in der Datei steht dann immernoch 0.000000?!


    if(strcmp(cmd, "/savespawn", true) == 0)
    {
    new Float:Playerx;
    new Float:Playery;
    new Float:Playerz;
    new Float:Playera;
    new File[128];
    new plyname[MAX_PLAYER_NAME];
    format(File, sizeof(File), "/sAccounts/%s.ini", plyname);
    GetPlayerName(playerid, plyname, sizeof(plyname));
    if(JobInfo[playerid][Savespawnerlaubnis] == 1)
    {
    GetPlayerPos(playerid, Playerx, Playery, Playerz);
    GetPlayerFacingAngle(playerid, Playera);
    dini_FloatSet(File, "Playersx" , Playerx);
    dini_FloatSet(File, "Playersy" , Playery);
    dini_FloatSet(File, "Playersz" , Playerz);
    dini_FloatSet(File, "Playersa" , Playera);
    SendClientMessage(playerid, DARKGREEN, "Position erfolgreich gespeichert!");
    JobUpdate(playerid);
    JobInfo[playerid][Savespawnerlaubnis] = 0;
    return 1;
    }
    return 1;
    }


    Ist der Command falsch oder fehlt da was?


    Gruß
    samu


    //Edit: Hat keiner ne idee ? ;(

    Hi,


    ich möchte, dass wenn man aus einem Fahrzeug austeigt, die Carhealth vom Auto in eine Datei gespeichert wird. Alle fahrzeuge haben eine eigene Datei und darin sind zB die Farben, Koords und so gespeichert und das funktioniert auch. Aber wir kann ich die Carhealth speichern?


    Ich dachte mir bei OnPlayerExitVehicle das hier hinzumachen:



    new carid = GetPlayerVehicleID(playerid);
    new Float:CarHealth = GetVehicleHealth(carid, CarHealth);
    CarInfo[carid][carshp] = CarHealth;


    ... Da speichert er aber dann nur "1.000000" und das kann ja nicht stimmen :pinch:


    Hoffe ihr könnt mir weiterhelfen!
    Gruß


    samu

    Ok, jetzt läufts :thumbup:



    Gibts noch ne Möglichkeit, wenn man nicht der Besitzer ist und das Auto zu ist, das er vl garnichts macht wenn man dann ins Auto will oder an der Tür zieht oder so, betrifft dann den Teil bei RemovePlayerFromVehicle(playerid) ?

    Moin,



    in diesem Timer hier frage ich ab ob man der Besitzer des Fahrzeugs ist:



    public Autocheck(playerid)
    {
    new carid = GetPlayerVehicleID(playerid);
    new carids[10];
    new Car1s[10];
    format(carids, sizeof(carids), "%d CARID", carid);
    SendClientMessage(playerid, ORANGE, carids);
    format(Car1s, sizeof(Car1s), "%d CAR1", AccountInfo[playerid][Car1]);
    SendClientMessage(playerid, ORANGE, Car1s);
    if (strcmp(AccountInfo[playerid][Car1], carids, true) == 0)
    {
    if(CarInfo[carid][carslock] == 0)
    {
    SendClientMessage(playerid, ORANGE, "Dein Fahrzeug war nicht abgeschlossen!");
    }
    }
    else //if (!(strcmp(AccountInfo[playerid][Car1], carids, true) == 0))
    {
    if(CarInfo[carid][carslock] == 1)
    {
    RemovePlayerFromVehicle(playerid);
    }
    else if(CarInfo[carid][carslock] == 0)
    {
    SendClientMessage(playerid, ORANGE, "Dieses Fahrzeug gehört dir nicht!"); }
    }
    }



    Ich lasse mir vorsichtshalber die beiden strings die ich vergleiche mal Ig auslesen und bei beiden steht jetzt zB 2 da (Carid). Dann kommt die Meldung "Dieses Fahrzeug gehört dir nicht" obwohl dir Strings gleich sind ?(



    Ich versteh einfach nich wieso das nicht klappt :cursing:



    Gruß


    samu

    So, habe das ganz jetzt mal umgeschrieben:




    Zuerst die PoliceEinsatzName1 Variable, wo später die Playerid des Notrufgebers reinkommt: (ganz oben)




    new PoliceEinsatzName1;




    Dann bei OnGameModeInit() wird in die Variable 9999 reingeschrieben, bedeutet sozusagen "frei":




    PoliceEinsatzName1 = 9999;




    Dann wird in einem Timer die Playerid reingeschrieben:




    public PhonePoliceTimer(playerid)
    {
    new string[30];
    new string3[5];
    //*********************************
    new pdname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pdname, sizeof(pdname));
    format(string, sizeof(string), "[Zentrale] %s benötigt die Polizei!", pdname);
    SendClientMessageToPolice(0x375FFFFF, string, 1, 1);
    SendClientMessage(playerid, LIGHTRED, "Die Polizei wurde informiert und ist auf dem Weg zu dir!");
    //*********************************
    format(string3, sizeof(string3), "%d", playerid);
    if(PoliceEinsatzName1 == 9999)
    {
    PoliceEinsatzName1 = string3
    }
    return 1;
    }




    Zuletzt wird in einem weiteren Timer der gesetzt wird sobald man im Dienst ist jede Sekunde überprüft ob "PoliceEinsatzName1" frei ist, wenn nicht


    dann sollte eben Show kommen ...




    public Einsatz(playerid)
    {
    if(AccountInfo[playerid][Hjob] == 1)
    {
    if(PoliceEinsatzName1 == 9999)
    {
    return 1;
    }
    else
    {
    SetPlayerMarkerForPlayer(playerid , PoliceEinsatzName1, 0xFF0000FF );
    }
    }
    return 1;
    }




    Einzige Fehlermeldung:


    (8237) : error 006: must be assigned to an array


    Zeile:



    PoliceEinsatzName1 = string3;




    Der gesamte Code in dem bereich:


    if(PoliceEinsatzName1 == 9999)
    {
    PoliceEinsatzName1 = string3;
    }



    //EDIT: Kleine änderung Fehlermeldung ist aber immer noch gleich.

    Hi,



    ich möchte das nur der Spieler 1, Spieler 2 auf der Karte Blau sieht:


    public Einsatz(playerid)
    {
    if(AccountInfo[playerid][Hjob] == 1)
    {
    new giveplayerid[5];
    new string2[5];
    format(string2, sizeof(string2), "9999");
    if (strcmp(string2, PoliceEinsatzName1, true) == 0)
    {
    return 1;
    }
    else
    {
    format(giveplayerid, sizeof(giveplayerid), "%d", PoliceEinsatzName1);
    SetPlayerMarkerForPlayer(playerid , giveplayerid, 0xFF0000FF );
    }
    }
    return 1;
    }


    public Einsatz ist ein Timer und in der Variable "PoliceEinsatzName1" steht die playerid von dem Spieler, der den Notruf gegeben hat.
    Bei dem Code kommt dann immer die Fehlermeldung 'error 035: argument type mismatch (argument 2)'


    Die "fehlerhafte" Zeile : SetPlayerMarkerForPlayer(playerid , giveplayerid, 0xFF0000FF );

    Wie behebe ich das Problem?


    Gruß
    samu



    EDIT: Hat niemand eine Idee? :(

    Hi,


    habe ein paar Abfragen in einen Befehl eingebaut ...


    if(strcmp(cmd, "/job", true) == 0)
    {
    //LSPD
    if(PlayerToPoint(1.0, playerid, 1580.0464,-1635.0250,13.5613))
    {
    if(AccountInfo[playerid][Hjob] == 1)
    {
    if(AccountInfo[playerid][JobActive] == 0)
    {
    SetPlayerSkin(playerid, 280);
    SetPlayerColor(playerid, 0x375FFFFF);
    AccountInfo[playerid][JobActive] = 1;
    GivePlayerWeapon(playerid, 334, 1);
    GivePlayerWeapon(playerid, 348, 60);
    return 1;
    }
    else
    {
    SetPlayerSkin(playerid, AccountInfo[playerid][Skin]);
    SetPlayerColor(playerid, 0xFFFFFFFF);
    AccountInfo[playerid][JobActive] = 0;
    GivePlayerWeapon(playerid, 334, -1);
    GivePlayerWeapon(playerid, 348, -60);
    return 1;
    }
    }
    }
    //SFPD
    if(PlayerToPoint(1.0, playerid, -1593.1597,716.1147,-5.2422))
    {
    if(AccountInfo[playerid][Hjob] == 1)
    {
    if(AccountInfo[playerid][JobActive] == 0)
    {
    SetPlayerSkin(playerid, 281);
    SetPlayerColor(playerid, 0x375FFFFF);
    AccountInfo[playerid][JobActive] = 1;
    GivePlayerWeapon(playerid, 334, 1);
    GivePlayerWeapon(playerid, 348, 60);
    return 1;
    }
    else
    {
    SetPlayerSkin(playerid, AccountInfo[playerid][Skin]);
    SetPlayerColor(playerid, 0xFFFFFFFF);
    AccountInfo[playerid][JobActive] = 0;
    GivePlayerWeapon(playerid, 334, -1);
    GivePlayerWeapon(playerid, 348, -60);
    return 1;
    }
    }
    }
    //LVPD
    if(PlayerToPoint(1.0, playerid, 2282.1506,2424.4114,3.4692))
    {
    if(AccountInfo[playerid][Hjob] == 1)
    {
    if(AccountInfo[playerid][JobActive] == 0)
    {
    SetPlayerSkin(playerid, 282);
    SetPlayerColor(playerid, 0x375FFFFF);
    AccountInfo[playerid][JobActive] = 1;
    GivePlayerWeapon(playerid, 334, 1);
    GivePlayerWeapon(playerid, 348, 60);
    return 1;
    }
    else
    {
    SetPlayerSkin(playerid, AccountInfo[playerid][Skin]);
    SetPlayerColor(playerid, 0xFFFFFFFF);
    AccountInfo[playerid][JobActive] = 0;
    GivePlayerWeapon(playerid, 334, -1);
    GivePlayerWeapon(playerid, 348, -60);
    return 1;
    }
    }
    }


    Und so weiter ...


    Jedenfalls steht in der Datei genau die Zahlen die ich z.B für LSPD brauche, aber das in Dienst gehen funktioniert einfach nicht :cursing: :cursing: :cursing:


    Wenn ich per Befehl den Job definiere (das dann die Zahlen in der Datei stehen) kann ich in Dienst gehen, wenn ich dann wieder off und on gehe gehts nicht mehr ?(


    Ich verstehe absolut nicht warum der scheiß nicht geht ... ist vl der Befehl falsch?


    Gruß
    samu