Beiträge von bad_company

    aus "ud" "udd" machen sind ja 3 parameter und nicht 2 ^^


    das else musste auch wegnehmen


    und wenn dan "SERVER: Unknown Command" kommt weißte das irgendwas von dem hier :
    adrugs[pID]=ddrugs;
    dprice[pID]=price;
    dplayer[pID]=playerid;
    new name[MAX_PLAYER_NAME], string[256];
    GetPlayerName(pID, name, sizeof(name));
    new aname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, aname, sizeof(aname));
    format(string, sizeof(string), "%s hat dir %d Gramm Drogen für $%d angeboten!",aname, ddrugs, price);
    SendClientMessage(pID,COLOR_GREEN,string);
    SendClientMessage(pID,COLOR_GREEN,"Tippe /accept um das sie anzunehmen oder /cancel um das Angebot zurückzuweisen!");
    format(string, sizeof(string), "Du hast %s %d Gramm Drogen für $%d angeboten!",name, ddrugs, price);
    SendClientMessage(playerid,COLOR_GREEN,string);

    vom system nicht verstanden wird...
    hast du adrugs[pID],dprice[pID], dplayer[pID] den schon definiert ?


    //außerdem kann man aus dem hier:
    new name[MAX_PLAYER_NAME], string[256];
    GetPlayerName(pID, name, sizeof(name));
    new aname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, aname, sizeof(aname));
    //das hier machen wieso 2x new
    new name[MAX_PLAYER_NAME], aname[MAX_PLAYER_NAME], string[256];
    GetPlayerName(pID, name, sizeof(name));
    GetPlayerName(playerid, aname, sizeof(aname));


    Also bei mir würde dein Befehl so hier aussehen:
    dcmd_deal(playerid,params[])
    {
    new pID, ddrugs, price;
    if(SpielerInfo[playerid][Job]!=3)
    {
    if(sscanf(params, "udd", pID,ddrugs,price))
    {
    return SendClientMessage(playerid,COLOR_RED,"Benutzung: /deal [Playerid] [Menge] [Preis]");
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,COLOR_RED,"Kein Spieler mit angegebener ID Online");
    }
    if(SpielerInfo[playerid][drugs]<ddrugs)
    {
    return SendClientMessage(playerid,COLOR_RED,"Soviele Drogen hast du nicht!");
    }
    {
    adrugs[pID]=ddrugs;
    dprice[pID]=price;
    dplayer[pID]=playerid;
    new name[MAX_PLAYER_NAME],aname[MAX_PLAYER_NAME], string[256];
    GetPlayerName(playerid, aname, sizeof(aname));
    GetPlayerName(pID, name, sizeof(name));
    format(string, sizeof(string), "%s hat dir %d Gramm Drogen für $%d angeboten!",aname, ddrugs, price);
    SendClientMessage(pID,COLOR_GREEN,string);
    SendClientMessage(pID,COLOR_GREEN,"Tippe /accept um das sie anzunehmen oder /cancel um das Angebot zurückzuweisen!");
    format(string, sizeof(string), "Du hast %s %d Gramm Drogen für $%d angeboten!",name, ddrugs, price);
    SendClientMessage(playerid,COLOR_GREEN,string);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Drogendealer!");
    }
    }
    return 1;
    }




    MfG bad_company

    So hab ein Problem. Hab ein Tut gelesen zu Checkpoints usw. und habe da nen Befehl um geschrieben aber mein Compiler crasht...
    Hier der Befeh:
    dcmd_liniestarten
    {
    #pragma unused params
    if(!busfahrer[playerid][pmi_bAktiv])
    {
    new
    vehicleid = GetPlayerVehicleID(playerid),
    model = GetVehicleModel(vehicleid);
    if(model == 408)
    {
    busfahrer[playerid][pmi_Checkpoint]=0;
    busfahrer[playerid][pmi_bAktiv]=true;
    SendClientMessage(playerid, COLOR_LIGHTGREEN, "Linie gestartet.");
    SetPlayerCheckpoint(playerid,Bus_Stationen[0][B_fX],Bus_Stationen[0][B_fY],Bus_Stationen[0][B_fZ],Bus_Stationen[0][B_fRad]);
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist in keinem Bus.");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du hast schon eine Mission!");
    }
    return 1;
    }


    Wen einer den Fehler weiß pls posten und sagen wieso damit ich den Fehler versteh..Danke schonmal..


    MfG bad_company

    Ich wollte so eine CarHeahlthAnzeige machen habe aber dieses Warning:
    warning 202: number of arguments does not match definition


    Hier paar der Zeilen:
    [...]
    /*--->*/ if(GetVehicleHealth(GetPlayerVehicleID(i))>83)
    {
    TextDrawSetString(banzeige[i], "~g~------");
    }
    /*--->*/ else if(GetVehicleHealth(GetPlayerVehicleID(i))>=66)
    {
    TextDrawSetString(banzeige[i], "~g~-----");
    }
    [...]


    weiß einer wie es richtig ist ???


    MfG bad_company

    danke dir habe das problem aber grade gefunden und zwar hier:
    if((vEngine[GetPlayerVehicleID(i)])==1)
    {
    if(Tankmenge[GetPlayerVehicleID(i)] > 1)format(string, sizeof(string), "TANK: %d/100~n~KM/H: %0.0f~n~MOTOR: ~g~AN~w~", Tankmenge[GetPlayerVehicleID(i)],Num[i],(vEngine[GetPlayerVehicleID(i)]));
    else format(string, sizeof(string), "TANK: ~r~LEER~w~~n~KM/H: 0~n~MOTOR: ~r~AUS~w~", Tankmenge[GetPlayerVehicleID(i)]);
    TextDrawSetString(Tankanzeige[i], string);

    }
    else
    {
    TogglePlayerControllable(playerid,0);
    }

    zu
    if((vEngine[GetPlayerVehicleID(i)])==1)
    {
    if(Tankmenge[GetPlayerVehicleID(i)] > 1)
    {
    format(string, sizeof(string), "TANK: %d/100~n~KM/H: %0.0f~n~MOTOR: ~g~AN~w~", Tankmenge[GetPlayerVehicleID(i)],Num[i],(vEngine[GetPlayerVehicleID(i)]));
    TextDrawSetString(Tankanzeige[i], string);

    }
    else
    {
    TogglePlayerControllable(playerid,0);
    TextDrawSetString(Tankanzeige[i], "TANK: ~r~LEER~w~~n~KM/H: 0~n~MOTOR: ~r~AUS~w~");
    }


    und das andere hab ich nur schreibfehler gehabt damit wärs das dann ^^ close

    wenn du ein enum hast also:
    enum blubb/*blubb als beispiel*/ {
    skin
    }


    //dan Speicher das so:
    dini_IntSet(accFormat,"skin",blubb[playerid][skin]);


    //und lade es dan so wie bei EDIT ^^


    dan schau mal nach ob der skin gespeichert wurde wenn ja schau ob er geladen wird...


    //EDIT: hab vergessen zu sagen du musst den skin nicht bei den anderen dinis laden sonder bei OnePlayerSpawn:
    public OnPlayerSpawn(playerid)
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    dini_IntSet(accFormat,"skin",GetPlayerSkin(playerid));
    if(dini_Isset(accFormat,"skin"))
    {
    SetPlayerSkin(playerid,dini_Int(accFormat, "skin"));
    }
    return 1;
    }

    Frage: Wie kann ich den Healthstatus des autos herausfinden und in ein textdraw übertragen ??


    Also ich habe ein tacho gemacht mit Tank Km/h und Motor aber ich
    habe aber ein Problem wenn ich den Motor ausmache und dan austeige bin ich gefreezed aber nur wenn ich den Motor aus mache... und wenn der tank alle ist kann man trotzdem weiterfahren hier:
    public TankTimer()
    {
    new string[128],i = 0;
    for(; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i) && vEngine[GetPlayerVehicleID(i)] == 1)
    {
    GetPlayerPos(i, Xneu[i], Yneu[i], Zneu[i]);
    Num[i] = (Xneu[i] - Xalt[i]) - (Yneu[i] - Yalt[i]) - (Zneu[i] - Zalt[i]);
    Xalt[i] = Xneu[i]; Yalt[i] = Yneu[i]; Zalt[i] = Zneu[i];
    Num[i] = Num[i] * 4;
    if(Num[i] < 0)
    {
    Num[i] = Num[i] - Num[i] - Num[i];
    }
    if((vEngine[GetPlayerVehicleID(i)])==1)
    {
    if(Tankmenge[GetPlayerVehicleID(i)] > 1)format(string, sizeof(string), "TANK: %d/100~n~KM/H: %0.0f~n~MOTOR: ~g~AN~w~", Tankmenge[GetPlayerVehicleID(i)],Num[i],(vEngine[GetPlayerVehicleID(i)]));
    else format(string, sizeof(string), "TANK: ~r~LEER~w~~n~KM/H: 0~n~MOTOR: ~r~AUS~w~", Tankmenge[GetPlayerVehicleID(i)]);
    TextDrawSetString(Tankanzeige[i], string);

    }
    else
    {
    TogglePlayerControllable(playerid,0);
    //hier sollte er gefreezed werden wenn der tank alle ist ...
    }
    }
    }
    return true;
    }


    Und hier das ganze weil ich dn Fehler net finde(mit dem motor aus und austeigen)
    also man macht /motor der motor ist aus man wird gefreezed steigt aus und ist immer noch gefreezed:
    dcmd_motor(playerid,params[])
    {
    #pragma unused params
    new vehicleid = GetPlayerVehicleID(playerid);
    if(vEngine[vehicleid] == 0)
    {
    vEngine[vehicleid] = 1;
    TogglePlayerControllable(playerid,1);
    SendClientMessage(playerid,COLOR,"Du hast den Motor angeschaltet ");


    }
    else
    {
    new string[128];
    vEngine[vehicleid] = 0;
    TogglePlayerControllable(playerid,0);
    SendClientMessage(playerid,COLOR,"Du hast den Motor ausgeschaltet ");
    format(string, sizeof(string), "TANK: %d/100~n~KM/H: 0~n~MOTOR: ~r~AUS~w~", Tankmenge[GetPlayerVehicleID(playerid)],(vEngine[GetPlayerVehicleID(playerid)]));
    TextDrawSetString(Tankanzeige[playerid], string);
    }
    return 1;
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if((newstate == PLAYER_STATE_DRIVER) && vEngine[GetPlayerVehicleID(playerid)] == 0)
    {
    TogglePlayerControllable(playerid,0);
    }
    if(newstate == PLAYER_STATE_DRIVER)
    {
    new tankstring[128];
    if((vEngine[GetPlayerVehicleID(playerid)])==1)format(tankstring, sizeof(tankstring), "TANK: %d/100~n~KM/H: %d~n~MOTOR: ~g~AN~w~", Tankmenge[GetPlayerVehicleID(playerid)],Num[playerid]);
    else format(tankstring, sizeof(tankstring), "TANK: %d/100~n~KM/H: 0~n~MOTOR: ~r~AUS~w~", Tankmenge[GetPlayerVehicleID(playerid)]);
    Tankanzeige[playerid] = TextDrawCreate(142.000000, 363.000000, tankstring);
    TextDrawFont(Tankanzeige[playerid], 1);
    TextDrawLetterSize(Tankanzeige[playerid], 0.340000,1.300000);
    TextDrawColor(Tankanzeige[playerid], 0xCCCCCCFF);
    TextDrawSetOutline(Tankanzeige[playerid], 0);
    TextDrawShowForPlayer(playerid, Tankanzeige[playerid]);
    TextDrawTextSize(Tankanzeige[playerid],242.000000,-7.000000);
    }
    if(newstate == PLAYER_STATE_ONFOOT)TextDrawDestroy(Tankanzeige[playerid]);
    //ab hier komm die cars für fraktionen:
    new vehicleid = GetPlayerVehicleID(playerid);
    if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new j = 0;j<sizeof sfpdauto;j++)
    {
    if(vehicleid == sfpdauto[j])
    {
    if(pInfo[playerid][team] == TEAM_SFPD)
    {
    }
    else if(pInfo[playerid][admin]>= 1)
    {
    }
    else
    {
    SendClientMessage(playerid,COLOR_LIGHTRED,"Du besitzt keinen Schlüssel für dieses Fahrzeug!");
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,1);
    }
    }
    }
    }
    if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new j = 0;j<sizeof mau;j++)
    {
    if(vehicleid == mau[j])
    {
    if(pInfo[playerid][team] == TEAM_SFMEDIC)
    {
    }
    else if(pInfo[playerid][admin]>= 1)
    {
    }
    else
    {
    SendClientMessage(playerid,COLOR_LIGHTRED,"Du besitzt keinen Schlüssel für dieses Fahrzeug!");
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,1);
    }
    }
    }
    }
    if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new j = 0;j<sizeof hau;j++)
    {
    if(vehicleid == hau[j])
    {
    if(pInfo[playerid][team] == TEAM_HITMAN)
    {
    }
    else if(pInfo[playerid][admin]>= 1)
    {
    }
    else
    {
    SendClientMessage(playerid,COLOR_LIGHTRED,"Du besitzt keinen Schlüssel für dieses Fahrzeug!");
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,1);
    }
    }
    }
    }
    if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new j = 0;j<sizeof fau;j++)
    {
    if(vehicleid == fau[j])
    {
    if(pInfo[playerid][team] == TEAM_FAHRS)
    {
    }
    else if(pInfo[playerid][admin]>= 1)
    {
    }
    else if(pfahrstunde[playerid]== 1)
    {
    }


    else
    {
    SendClientMessage(playerid,COLOR_LIGHTRED,"Du besitzt keinen Schlüssel für dieses Fahrzeug!");
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,1);
    }
    }
    }
    }
    return 1;
    }


    MfG bad_company

    wenn das auto hochgeht und neu gespawnt wird soll der tank wieder 100 sein und der motor aus wie ??


    und zu 2. naja wenn ich ne kmh anzeige hab will ich das die darüber oder darunter ist einfach nen neuen textdraw dafür erstellen ?? und die koordinaten so setzen das es darüber ist ???


    Danke ^^^^:thumbup::thumbup:


    //edit: wo muss ich die if abfrage einfügen ?

    jo thx ^^


    1. wie geh ich mit dem textdrweditor um ??
    2. wenn ich noch km/h hab wie füge ich das ein das es die gleichzeitig anzeigt ??
    3. wie mach ich das das es wen der tank leer ist das net in der mitte steht sondern hinter tank einfach: LEER steht

    ne hab ich nicht danke dir ^^ bist super :thumbup:


    aber kannste mir schnell mal sagen wie ich das mache das wenn der motor aus ist das der tank net abgezogen wird weil jetz bei allen der tank abgezogen wir und erst wenn man einsteigt und noch nicht /motor gemacht hat zieht es kein tank aber und wenn motor dan an is zieht es tank ab kurz gesagt es zieht überall tank ab :P


    //edit müsstes mir nur sagen wie ich den editor zum funzen bringe bei filterscripts einbringen und einschreiben und dann ?

    bin erst dooof xD nen timer für die anzeige aber net fürn tank alter xDDDD aber sag mir ruhig wie es schöner ist isch mag die anzeige nich ich will das es wenn ich alles dan hab für die anzeige wie die ausm gf aussieht ^^

    ich hatte gar kein public Tank() xD


    aber hier kommen 2 Errors
    GameTextForPlayer(playerid,"Dein Tank ist leer. ~n~Gebe /exit ein um aus deinem Wagen zu kommen.",90000,4);
    TogglePlayerControllable(playerid,0);


    undefined symbol "playerid"


    wieso ??


    //Edit: ich poste jetz alles da ich kp hab wieso es net geht -.-*
    #define TANK_ZEIT (12000)


    new vEngine[MAX_VEHICLES];
    new Tankmenge[MAX_VEHICLES];
    new Text:Tankanzeige[MAX_PLAYERS];


    forward Tank();
    forward TankTimer();


    //public OnGameModeInit()
    {
    for(new i=0;i<MAX_VEHICLES;i++)
    {
    Tankmenge[i] = 100;
    }
    SetTimer("TankTimer", TANK_ZEIT, 1)


    //############### MOTOR ##############
    dcmd_motor(playerid,params[])
    {
    #pragma unused params
    new vehicleid = GetPlayerVehicleID(playerid);
    if(vEngine[vehicleid] == 0)
    {
    vEngine[vehicleid] = 1;
    TogglePlayerControllable(playerid,1);
    SendClientMessage(playerid,COLOR,"Du hast den Motor angeschaltet ");


    }
    else
    {
    vEngine[vehicleid] = 0;
    TogglePlayerControllable(playerid,0);
    SendClientMessage(playerid,COLOR,"Du hast den Motor ausgeschaltet ");
    }
    return 1;
    }


    public OnPlayerKeyStateChange(playerid,newkeys,oldkeys)
    {


    if(IsPlayerInAnyVehicle(playerid) && (newkeys & 16) && !(oldkeys & 16) && (vEngine[GetPlayerVehicleID(playerid)] == 0 || Tankmenge[GetPlayerVehicleID(playerid)] < 1))
    {
    TogglePlayerControllable(playerid, 1);
    RemovePlayerFromVehicle(playerid);
    }


    return 1;
    }


    //public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if((newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) && vEngine[GetPlayerVehicleID(playerid)] == 0)
    {
    TogglePlayerControllable(playerid,0);
    }
    if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
    new tankstring[128];
    format(tankstring, sizeof(tankstring), "Tank: %d", Tankmenge[GetPlayerVehicleID(playerid)]);
    Tankanzeige[playerid] = TextDrawCreate(518, 431, tankstring);
    TextDrawFont(Tankanzeige[playerid], 3);
    TextDrawLetterSize(Tankanzeige[playerid], 0.6, 1.8);
    TextDrawColor(Tankanzeige[playerid], 0xCCCCCCFF);
    TextDrawSetOutline(Tankanzeige[playerid], 2);
    TextDrawShowForPlayer(playerid, Tankanzeige[playerid]);
    }
    if(newstate == PLAYER_STATE_ONFOOT) TextDrawDestroy(Tankanzeige[playerid]);
    }


    public Tank()
    {
    for(new i = 0;i<MAX_VEHICLES;i++)
    {
    if(Tankmenge[i] >= 1) Tankmenge[i]--;
    }
    return 1;
    }


    public TankTimer()
    {
    new string[128], i = 0;
    for(; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i) && vEngine[GetPlayerVehicleID(i)] == 1)
    {
    if(Tankmenge[GetPlayerVehicleID(i)] > 0)
    {
    format(string, sizeof(string), "Tank: %d", Tankmenge[GetPlayerVehicleID(i)]);
    TextDrawSetString(Tankanzeige[i], string);
    }
    else
    {
    GameTextForPlayer(playerid,"Der Tank ist LEER.",90000,4);
    TogglePlayerControllable(playerid,0);
    }
    }
    }
    return true;
    }


    HIer Errors:
    GameTextForPlayer(playerid,"Der Tank ist LEER.",90000,4);
    TogglePlayerControllable(playerid,0);
    C:\PROGRA~1\GTASAN~1\GTASAN~1\SAMP03~1\GAMEMO~1\Sample.pwn(1696) : error 017: undefined symbol "playerid"
    C:\PROGRA~1\GTASAN~1\GTASAN~1\SAMP03~1\GAMEMO~1\Sample.pwn(1697) : error 017: undefined symbol "playerid"
    Wo is der Fehler ?? ;( mensch komm net weiter :(

    ich will das der tank weiter leer geht wenn er den motor nicht ausstellt sondern nur enter zum aussteigen drückt verstehste da hab ich das so gemacht :
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(BrowsingCar == 0)
    {
    TogglePlayerControllable(playerid,0);
    }
    Problem wenn er bei einem Auto den Motor net aus mact muss er ihn bei einem ander Auto net anmachen weil die Variable für den Spieler BrowsingCar noch 1 ist aber wie mach ich das das die variable für das jedes car einzeln gilt ?? ?(


    //EDIT: habs nu so :
    if((newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) && vEngine[vehicleid] == 0)
    {
    TogglePlayerControllable(playerid,0);
    }[
    Kommt aber Error: Das vehicleid von && vEngine[vehicleid] == 0) nicht definiert ist...
    //EDIT2: habs nachmal geändert jetz gibts keine errors ich schau klei nach obs funzt ^^
    if((newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) && vEngine[GetPlayerVehicleID(playerid)] == 0)
    {
    TogglePlayerControllable(playerid,0);
    }