Beiträge von grauerhase

    Da ich einen Motorsystem habe, und er auch funktioniert, man aber /m schreiben muss um ihn anzumachen, möchte ich gern das wenn man auf die "N" Taste drückt er an geht.
    Nun zur meiner Frage, wie mache ich soetwas, das man jeder belibige Taste benutzen kann ?


    Es sollte in etwa so aussehen:



    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys == N)
    {
    if(GetPlayerVehicleSeat(playerid) == 0)
    {
    new car = GetPlayerVehicleID(playerid);
    if(GetVehicleModel(car) == 509 || GetVehicleModel(car) == 481 || GetVehicleModel(car) == 510)
    {
    SendClientMessage(playerid, ROT, "Du sitzt auf einem Fahrrad. Das hat keinen Motor!");
    }
    else if (Tank[car] < 1)
    {
    SendClientMessage(playerid, ROT, "Der Tank ist leer. Du musst erst /tanken.");
    }
    else if (Motor[car] == false )
    {
    GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(car,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    Motor[car] = true;
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~r~an!", 2000, 5);
    }
    else
    {
    GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(car,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Motor[car] = false;
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~r~aus!", 2000, 5);
    }
    }
    }
    return 1;
    }


    if(strcmp(cmdtext, "/tanken", true) == 0)
    {
    else if (GetPlayerVehicleSeat(playerid) != 0) return SendClientMessage(playerid,ROT,"Du bist in keinem Fahrzeug (oder kein Fahrer).");
    new car = GetPlayerVehicleID(playerid);
    else if (TanktGerade[car]) return SendClientMessage(playerid,ROT,"Du tankst schon!");
    else if (Motor[car] == true) return SendClientMessage(playerid,ROT,"Du musst vor dem Tanken den Motor ausschalten.");
    new ZuTanken = 100-Tank[car];
    new preis = ZuTanken * BENZINPREIS;
    if (GetPlayerMoney(playerid)-preis < 0) return SendClientMessage(playerid,GELB,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -preis);
    SendClientMessage(playerid, ARMYGRUN, "Tanken wird gestartet.");
    SetCameraBehindPlayer(playerid);
    TogglePlayerControllable(playerid,0);
    TanktGerade[car] = true;
    tanktimer[playerid] = SetTimerEx("Auftanken",500,true,"i",playerid);
    return 1;
    }


    Da kommen mir mehrere Fehler:


    C:\Users\David\Desktop\SERVER SAMP 0.3e\filterscripts\MotorTankSystem.pwn(144) : error 029: invalid expression, assumed zero
    C:\Users\David\Desktop\SERVER SAMP 0.3e\filterscripts\MotorTankSystem.pwn(144) : warning 215: expression has no effect
    C:\Users\David\Desktop\SERVER SAMP 0.3e\filterscripts\MotorTankSystem.pwn(144) : error 001: expected token: ";", but found "if"
    C:\Users\David\Desktop\SERVER SAMP 0.3e\filterscripts\MotorTankSystem.pwn(146) : error 029: invalid expression, assumed zero
    C:\Users\David\Desktop\SERVER SAMP 0.3e\filterscripts\MotorTankSystem.pwn(146) : warning 215: expression has no effect
    C:\Users\David\Desktop\SERVER SAMP 0.3e\filterscripts\MotorTankSystem.pwn(146) : error 001: expected token: ";", but found "if"


    Jemand ne Idee ?



    //EDIT
    Ein bisschen neu geschrieben und funkt alles



    {
    if(GetPlayerVehicleSeat(playerid) != 0)
    {
    return SendClientMessage(playerid,ROT,"Du bist in keinem Fahrzeug (oder kein Fahrer).");
    }
    new car = GetPlayerVehicleID(playerid);
    if (TanktGerade[car])
    {
    return SendClientMessage(playerid,ROT,"Du tankst schon!");
    }
    if (Motor[car] == true)
    {
    return SendClientMessage(playerid,ROT,"Du musst vor dem Tanken den Motor ausschalten.");
    }
    new ZuTanken = 100-Tank[car];
    new preis = ZuTanken * BENZINPREIS;
    if (GetPlayerMoney(playerid)-preis < 0)
    {
    return SendClientMessage(playerid,GELB,"Du hast nicht genug Geld!");
    }
    GivePlayerMoney(playerid, -preis);
    SendClientMessage(playerid, ARMYGRUN, "Tanken wird gestartet.");
    SetCameraBehindPlayer(playerid);
    TogglePlayerControllable(playerid,0);
    TanktGerade[car] = true;
    tanktimer[playerid] = SetTimerEx("Auftanken",500,true,"i",playerid);
    return 1;
    }

    SpielerInfo[playerid][pGeld] = SetPlayerMoney(playerid,mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName])); //Wir holen uns den wert der unter "Geld" eingetragen ist und Speichern ihn in unserer Variable.


    und bei SavePLayer


    mysql_SetInt("accounts", "Geld", GetPlayerMoney(playerid), "Name", SpielerInfo[playerid][pName]);

    Vielen dank :)

    p.s. Es ist GivePlayerMoney ^^

    Ja, es ist möglich, sagen wir z.b. du hast 3 Sultans


    Dies ist ein Beispiel für die Autos

    PHP
    new lspdrank3;


    PHP
    lspdrank3[0] = AddStaticVehicleEx(MODEL,X,Y,Z,A,0,0,1000);
    lspdrank3[1] = AddStaticVehicleEx(MODEL,X,Y,Z,A,0,0,1000);


    Hier wird nachgeschaut ob der Spieler den Rank dafür besitzt


    Hier der Stock für die Abfrage ob der Spieler Rank 3 hat


    PHP
    stock IfSpielerRank(playerid, rankid){	if(sSpieler[playerid][Rank] == rankid) return 1;	return 0;}

    Ich weiß bisschen grob erklärt aber naja :D



    /EDIT Mein Problem wurde immer noch net gelöst :/

    Ich benutze keine Plugins, und wenn ich nun die 120 wegmachen, kann ich garkein Text mehr versenden.
    Bei /sms 0 Text kommt nun dass es /sms [id] [Text] heißen soll. Wenn ich nur ID schreibe kommt dann halt:


    [SMS][Von: Grauerhase]:


    Wenn ich die 120 hinmache dann kann ich da noch 1wort hinzufügen

    Mein SMS System funktioniert nur bei mir ist das Problem sobald ich den text schreibe, schickt er nur das erste wort ab und nicht die nach der Leertaste



    PHP
    dcmd(sms, 3,cmdtext);



    Bitte um Hilfe