Beiträge von AndyWalker

    Hey,
    ich hätte da mal wieder nen Problem.
    Und zwar ich ich schon in nem Anderen Problem-Thread erwähnt habe schreibe ich zur Zeit nen Script auf zcmd um.
    Nun ist mein Problem folgendes: Wie verwende ich einen Befehl den ich in zcmd umgeschrieben habe z.b. in nem Dialog oder in einer Tastenbelegung?



    Test CMD:
    CMD:test(playerid,params[]){
    SendClientMessage(playerid,-1,"Du hast /test eingegeben oder die Taste N gedrück.");
    return 1;
    }


    //Die Taste N
    if(newkeys == KEY_NO)
    {
    OnPlayerCommandPerformed(playerid,"/engine",true);
    }

    Als ich den Befehl noch in strcmp unter der
    Function OnPlayerCommandPerformed(playerid, cmdtext[], success)
    hatte funktionierte dies wunderbar.


    Gibt es dafür noch eine andere Möglichkeit? Oder muss ich die Funktion die der Befehl ausführt nun unter die Taste N legen?



    Beste Grüße
    Andy


    //EDIT:
    Nachdem ich diesen Thread erstellt habe wurde mir bei ähnlichen Themen dies angezeigt was ich gesucht habe.
    zcmd command

    Hey, ich habe mal wieder ein Problem, und zwar schreibe ich zur Zeit das DRP Script um.
    Nun bin ich bei dem Job Pilot und dort gib es ein Befehl "/waren" mit diesen kann man eine bestimmte Anzahl (selbst wählbar) an Waren kaufen, und Tauchen (Die komplette Ladung).
    Jetzt ist meine Frage wie ich das umsetze das bei "/waren kaufen" noch der Parameter für die Anzahl abgefragt wird.
    Mein bisheriger Versuch:
    CMD:waren(playerid,params[]){
    if(!IsPlayerConnected(playerid)||gPlayerLogged[playerid] == 0)return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht eingeloggt.");
    if(PlayerInfo[playerid][pJob] != 14)return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Pilot!");
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 553)return SendClientMessage(playerid, COLOR_GREY, "Du kannst nur mit einer Nevada Waren transportieren!");
    new aktion[10],string[128],string2[128],string3[128],menge,preis = menge*15,geld = Waren2Dabei[playerid] * 30+random(80),lohn = Waren3Verkauft[playerid] - 80;
    if(sscanf(params,"s",aktion)){
    SendClientMessage(playerid, COLOR_GOLD, "____________________________|Warenhilfe|____________________________");
    SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /waren [Aktion]");
    SendClientMessage(playerid, COLOR_WHITE, "Verfügbare Funktionen: kaufen, tauschen, verkaufen, abrechnen");
    SendClientMessage(playerid, COLOR_WHITE, "*Kaufen [SF], Tauschen [LS], Verkaufen [LV], Abrechnen [SF]");
    SendClientMessage(playerid, COLOR_GOLD, "__________________________________________________________________");
    return 1;
    }
    if(!strcmp(aktion,"kaufen",true))
    {
    print("Kaufen 1");
    if(!IsPlayerInRangeOfPoint(playerid, 90.0, -1233.6982,-88.1554,14.9228))return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht am Hangar am San Fiero Airport!");
    print("kaufen 2");
    if(WarenDabei[playerid] >= 75)return SendClientMessage(playerid, COLOR_GREY, "Du hast schon 75 Waren dabei!");
    print("kaufen 3");
    if(sscanf(params,"d",menge))return SendClientMessage(playerid, COLOR_GREY, "Benutzung: /waren kaufen [Anzahl] | *Preis pro Ware: 15$, Maximale Waren: 75");
    print("kaufen 4");
    if(menge < 5 || menge > 75)return SendClientMessage(playerid, COLOR_GREY, "Du musst mindestens 5 Waren und maximal 75 Waren kaufen!");
    print("kaufen 5");
    if(preis > GetPlayerMoney(playerid))return SendClientMessage(playerid, COLOR_GREY, "Kannst du dir nicht leisten!");
    print("kaufen 6");
    WarenDabei[playerid] += menge;
    GivePlayerMoney(playerid, -preis);
    format(string, sizeof(string), "*Du hast dir %d Waren im Wert von %d$ gekauft", menge, preis);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Fliege jetzt zum LS Airport (Roter Marker)");
    SetPlayerCheckpoint(playerid, 1888.6704,-2638.9941,13.5469, 8.0);
    return 1;
    }
    //Tauschen, Verkaufen, Abrechnen funktioniert alles, da kein weiterer Parameter benötigt wird.
    return 1;
    }
    Er führt den Befehl nur bis "print("kaufen 3") aus.


    ---
    Andy

    @Music4You: dies habe ich auch überlegt, aber da ja die User faul sind, wollte ich diese 4 Aktionen in einen Befehl packen und da mna bei "/waren Taschen" keine Anuahl benötigt, würde er ja ein weiteren Parameter von mir verlangen, obwohl ich diesen dann nicht benötige....

    Hey, ich habe mal wieder ein Problem, und zwar schreibe ich zur Zeit das DRP Script um.
    Nun bin ich bei dem Job Pilot und dort gib es ein Befehl "/waren" mit diesen kann man eine bestimmte Anzahl (selbst wählbar) an Waren kaufen, und Tauchen (Die komplette Ladung).
    Jetzt ist meine Frage wie ich das umsetze das bei "/waren kaufen" noch der Parameter für die Anzahl abgefragt wird.
    Mein bisheriger Versuch:
    CMD:waren(playerid,params[]){
    if(!IsPlayerConnected(playerid)||gPlayerLogged[playerid] == 0)return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht eingeloggt.");
    if(PlayerInfo[playerid][pJob] != 14)return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Pilot!");
    new aktion[10],menge,string[128];
    if(sscanf(params,"s",aktion)){
    SendClientMessage(playerid, COLOR_GOLD, "____________________________|Warenhilfe|____________________________");
    SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /waren [Aktion]");
    SendClientMessage(playerid, COLOR_WHITE, "Verfügbare Funktionen: kaufen, tauschen, verkaufen, abrechnen");
    SendClientMessage(playerid, COLOR_WHITE, "*Kaufen [SF], Tauschen [LS], Verkaufen [LV], Abrechnen [SF]");
    SendClientMessage(playerid, COLOR_GOLD,"__________________________________________________________________");
    return 1;
    }
    if(!strcmp(aktion,"kaufen",true))
    {
    print("Kaufen 1");
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 553)return SendClientMessage(playerid, COLOR_GREY, "Du kannst nur mit einer Nevada Waren kaufen!");
    if(!IsPlayerInRangeOfPoint(playerid, 90.0, -1233.6982,-88.1554,14.9228))return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht am Hangar am San Fiero Airport!");
    if(sscanf(params,"d",menge)){
    SendClientMessage(playerid, COLOR_GREY, "Benutzung: /waren kaufen [Anzahl]");
    SendClientMessage(playerid, COLOR_GREY, "*Preis pro Ware: 15$, Maximale Waren: 75");
    print("kaufen 2");
    return 1;
    }
    print("kaufen 3");
    new preis = menge*15;
    if(menge < 5 || menge > 75)return SendClientMessage(playerid, COLOR_GREY, "Du musst mindestens 5 Waren und maximal 75 Waren kaufen!");
    if(WarenDabei[playerid] >= 75)return SendClientMessage(playerid, COLOR_GREY, "Du hast schon 75 Waren dabei!");
    if(preis > GetPlayerMoney(playerid))return SendClientMessage(playerid, COLOR_GREY, "Kannst du dir nicht leisten!");
    WarenDabei[playerid] += menge;
    GivePlayerMoney(playerid, -preis);
    format(string, sizeof(string), "*Du hast dir %d Waren im Wert von %d$ gekauft", menge, preis);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Fliege jetzt zum LS Airport (Roter Marker)");
    SetPlayerCheckpoint(playerid, 1888.6704,-2638.9941,13.5469, 8.0);
    return 1;
    }
    return 1;
    }
    In der Konsole printet er mir bis einschließlich "Kaufen 2" und wenn ich die Anzahl dahinter schreibe macht er nicht weiter...


    Bitte um Hilfe.


    AndyWalker

    Ich hatte zwar vorhert gegooglet, aber wurde daraus nicht so schlau..
    aber danke für deine Hilfe :)


    //edit:
    Ich hab meist das Gefühl, die Menschen in der Hotline wissen meist selbst nicht was die sagen.. bzw. was man von denen will... z.b. so nen Typ bei 1&1 aus der Technikabteilung wusste nochnichtmal was IPv6 ist ._.

    HEy, und zwar ich habe ein Problem mit meiner Graka,
    ich habe ein Bildschirm über HDMI und einen über VGA. nur wenn ich jetzt beide anschließe will der einen deer beiden nicht erkennen und der Systemsteuerung von Nvidia wird der 2. Bildschirm auch nicht angezeigt...
    Weiß da wer zu helfe?


    Mit freundlichen Grüßen
    AndyWalker

    Wüsste ich auch gerne, da ich gerne eine Wand entfernen möchte, die im Mapeditor nicht existiert, aber Ingame schon.. diese wurde während des Singleplayers gesprengt oder was auch immer. Befindet sich in Los Santos nähe des PigPens.


    Mit freundlichen Grüßen
    AndyWalker

    Danke für den Tipp Beavis
    Also so müsste ich dann doch alle 4 Werte speichern oder?
    format(query, 128, "UPDATE `FrakVehicles` SET `posx` = '%.3f', `posy` = '%.3f', `posz` = '%.3f', `posa` = '%.3f' WHERE `id` = '%i'", X,Y,Z,A, FrakVehicle[idx][vID]);
    mysql_query(query);