Beiträge von robbi2304

    Okay. Dann muss ich wohl mit den 100$ klar kommen.


    Dann will ich Ihm mal 100$ abziehen lassen. Aber irgendwas passt mit den Koordinaten nicht o.o ?
    Ich weiß die Abfrage fehlt ob der Spieler in einem Fahrzeug sitzt. Aber erstmal soll der Befehl ansatzweise funktionieren

    public OnPlayerEnterCheckpoint(playerid)
    {
    if(IsPlayerInRangeOfPoint(playerid,5,487.6605,-1741.7686,10.8587))
    {
    PlayerInfo[playerid][pMoney]-=100; // 100$ abziehen
    MoneyUpdate(playerid);
    SendClientMessage(playerid,-1,"Dein Fahrzeug wurde erfolgreich repariert. Preis: 100 $");
    }
    }

    Was heißt für dich günstig ? Und darf es auch gebraucht sein oder Neu ?


    Ich besitze selber das Note 3 und bin damit sehr zufrieden. Ich habe lange Zeit meine Handys gewechselt bis ich auf das Note 3 gestoßen bin.


    Daher empfehle ich Persönlich dir dieses Handy. Preis liegt gebraucht bei 140€ ca und neu 350€

    PnS ist fest im GTA SA Script drin, daran kannst du nichts ändern. Egal was PnS kostet, es wird dir nichts abgezogen, weil du ja intern im eigenem GM mit dem Geld arbeitest. Wenn also ein Spieler bei dir im PnS Geld bezahlen soll, musst du das im Callback (meine Empfehlung ist lieber im Timer und IsPlayerInRange abfragen) selber tun. Wie gesagt, Geld und Text werden standardmäßig vom Spiel so angezeigt. Teste das mal aus, auch wenn dort steht, PnS kostet dich 100$, dir wird nichts abgezogen, weil dein angezeigtes Bargeld immer synchron mit dem internen Geldwert gesetzt wird.


    Nachtrag:
    Du kannst aber folgendes tun. Entfern das Tor vom PnS, setz einen Checkpoint rein und wenn Spieler in CP fährt, automatisch in PnS Interiors porten samt Auto. Dort ein eigenes Menü anzeigen lassen und fertig. Nennt sich auch die Luxusvariante ^^

    Wo erstelle ich denn die Abfrage ob der Spieler in einem PaynSpray ist ?
    Hinzu nur Tore entfernen, entfernt ja noch nicht die Funktion das dass Fahrzeug nicht repariert wird.


    if (strcmp("/shpark",cmdtext, true, 10) == 0)
    {
    if (IsPlayerInRangeOfPoint(playerid,7.0,1561.33008, -1792.06274, 13.36100))
    {
    if (!Shpark[playerid])
    {
    MoveDynamicObject(shpark,1561.33008, -1792.06274, 13.36100-10,2.0);
    GivePlayerMoney(playerid,-50);
    SetTimer("parksh",5000,false);
    Shpark[playerid] = 1;
    return SendClientMessage(playerid,GELB,"Du hast dir ein Parkticket für 50$ gekauft.");
    }
    MoveDynamicObject(shpark,1561.33008, -1792.06274, 13.36100,2.0);
    SetTimer("parksh",5000,false);
    Shpark[playerid] = 0;
    return SendClientMessage(playerid,GELB,"Fahre schnell durch sonst kostet es dich weiter 50$.");
    }
    return SendClientMessage(playerid,ROT,"Du bist nicht in der nähe des Tors´s");
    }
    return SendClientMessage(playerid,ROT,"Dieser Befehl konnte nicht gefunden werden!");
    }

    Kleiner Tipp schau dir mal den Code von @Woozie an und dann mal dein alten Code.


    Es fehlt ein Teil.


    Hier



    if (strcmp("/shpark",cmdtext, true, 10) == 0)
    {
    if (IsPlayerInRangeOfPoint(playerid,7.0,1561.33008, -1792.06274, 13.36100))
    {
    if (!Shpark[playerid])
    {
    MoveDynamicObject(shpark,1561.33008, -1792.06274, 13.36100-10,2.0);
    GivePlayerMoney(playerid,-50);
    SetTimer("parksh",5000,false);
    Shpark[playerid] = 1;
    return SendClientMessage(playerid,GELB,"Du hast dir ein Parkticket für 50$ gekauft.");
    }
    MoveDynamicObject(shpark,1561.33008, -1792.06274, 13.36100-10,2.0);
    Shpark[playerid] = 0;
    return SendClientMessage(playerid,GELB,"Fahre schnell durch sonst kostet es dich weiter 50$.");
    }
    return SendClientMessage(playerid,ROT,"Du bist nicht in der nähe des Tors´s");
    }
    return 1;
    }
    return SendClientMessage(playerid,ROT,"Dieser Befehl konnte nicht gefunden werden!");
    }

    Code
    public OnPlayerUpdate(playerid)
    {
    	if (IsPlayerNPC(playerid)) return 1;
    	if (GetPlayerMoney(playerid) != pmoney[playerid])
    	{
    		ResetPlayerMoney(playerid); GivePlayerMoney(playerid, pmoney[playerid]);
    	}
    	return 1;
    }

    Bin jetzt davon ausgegangen, daß deine pmoney so lautet. Ansonsten änder pmoney[playerid] in den Namen, wie deine pmoney korrekt heisst. Das behebt dein Geldproblem und Bargeld wird beim Spieler ebenfalls korrekt angezeigt. Geldcheating ist so auch nicht möglich, da du intern mit einer eigenen Definition arbeitest und der Wert immer beim Spieler aktualisiert wird, sollte dieser nicht gleich sein.

    Okay funktioniert soweit. Kann ich nun noch anpassen was der PaynSpray Kosten soll und einen Text anzeigen lassen der nicht Standardmäßig definiert ist ?

    Hallo liebe Leute,


    wie mache ich es möglich das er mir aus meiner Variable pMoney ausließt wieviel Geld der Spieler hat ?
    Jedesmal wenn ich in den PaynSpray reinfahre, heißt es ich habe nicht genug Geld weil ich ohne


    GivePlayerMoney


    arbeite.


    Ich habe schon etwas gegooglet aber nur das hier gefunden was mich nicht weiter bringt



    public OnVehicleRespray(playerid, vehicleid)
    {
    new string[48];
    format(string, sizeof(string), "You resprayed vehicle %d to colors %d and %d!", vehicleid);
    SendClientMessage(playerid, COLOR_GREEN, string);
    return 1;
    }

    Änderer


    new Shpark[playerid][MAX_PLAYERS];


    zu


    new Shpark[MAX_PLAYERS];


    Zu Nummer 2



    if (strcmp("/shpark",cmdtext, true, 10) == 0)
    {
    if(Shpark[playerid]== 0 && IsPlayerInRangeOfPoint(playerid,7.0,1561.33008, -1792.06274, 13.36100))
    {
    SendClientMessage(playerid,GELB,"Du hast dir ein Parkticket für 50$ gekauft.");
    MoveDynamicObject(shpark,1561.33008, -1792.06274, 13.36100-10,2.0);
    GivePlayerMoney(playerid,-50);
    SetTimer("parksh",5000,false);
    Shpark[playerid] = 1;
    }
    if(Shpark[playerid]== 1 && IsPlayerInRangeOfPoint(playerid,7.0,1561.33008, -1792.06274, 13.36100))
    {
    SendClientMessage(playerid,GELB,"Fahre schnell durch sonst kostet es dich weiter 50$.");
    MoveDynamicObject(shpark,1561.33008, -1792.06274, 13.36100-10,2.0);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist nicht in der nähe des Tors´s");
    }
    return 1;
    }
    return SendClientMessage(playerid,ROT,"Dieser Befehl konnte nicht gefunden werden!");
    }


    //Edit Code fehler

    Die Verbindung wird vom PC auf Wamp mit dem Verbinsungsziel localhost übertragen.


    Sobald ich die IP - Adresse als Verbindungsziel angebe, sind die Daten angeblich falsch.


    Portmäßig ist alles Richtig. Hab ein einfaches Login System erstellt was mit der gleichen Datenbank zusammen arbeitet. Da passt alles auch mit der IP - Adresse. Also der Login mit den SAMP Daten ist möglich.


    Daher vermute ich das es irgendwo im Plugin oder Script einen Fehler gibt.



    Von wo nach wo wird die Verbindung herstellt (PC -> Host, Host -> PC, Host -> Host) ?


    Was meinst du damit genau ? Steh gerade aufm Schlauch

    Übernehme den Code hier mal



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/pd", cmdtext, true, 10) == 0)
    {
    SetPlayerPos(playerid,1533.0509,-1654.7891,13.3828);
    return 1;
    }
    if (strcmp("/alca", cmdtext, true, 10) == 0)
    {
    SetPlayerPos(playerid,-331.959686, 4091.781982, 32.690872);
    return 1;
    }
    if (strcmp("/buydeagle",cmdtext, true, 10) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,2.0,129.8496,-81.9238,1.4297))
    {
    SendClientMessage(playerid,GREEN,"Du hast dir eine Deagle für 3000$ mit 30 Schuss gekauft!");
    GivePlayerWeapon(playerid,24,30);
    GivePlayerMoney(playerid,-3000);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist in keinem Waffenladen!");
    }
    return 1;
    }
    if (strcmp("/keypadknacken",cmdtext, true, 10) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,2.0, 440.25568, -3225.82935, 2.95733))
    {
    SendClientMessage(playerid,GREEN,"Du hast das Knacken des Keypads begonnen warte 30 Sekunden am Keypad!");
    SetTimer("keypadknacken",1000*30,false);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist nicht in der nähe des Keypads!");
    }
    return 1;
    }
    if (strcmp("/mv",cmdtext, true, 10) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,15.0,1544.59851, -1626.71655, 12.31279))
    {
    SendClientMessage(playerid,GREEN,"Du hast das Tor geöffnet es schließt in 5 Sekunden");
    MoveDynamicObject(sapdtor1,1544.59851, -1626.71655, 12.31279-10,2.0);
    SetTimer("torsapd1",5000,false);
    }
    else if(IsPlayerInRangeOfPoint(playerid,5.0, 1588.95044, -1638.03967, 12.31597))
    {
    SendClientMessage(playerid,GREEN,"Du hast das Tor geöffnet es schließt in 5 Sekunden");
    MoveDynamicObject(sapdtor2,1588.95044, -1638.03967, 12.31597-10,2.0);
    SetTimer("torsapd2",5000,false);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist nicht in der nähe des Tor´s");
    }
    return 1;
    }
    if (strcmp("/shpark",cmdtext, true, 10) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,7.0,1561.33008, -1792.06274, 13.36100))
    {
    SendClientMessage(playerid,GELB,"Du hast dir ein Parkticket für 50$ gekauft.");
    MoveDynamicObject(shpark,1561.33008, -1792.06274, 13.36100-10);
    GivePlayerMoney(playerid,-50);
    SetTimer(parksh,5000,false);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist nicht in der nähe des Tors´s");
    }
    }
    return SendClientMessage(playerid,ROT,"Dieser Befehl konnte nicht gefunden werden!");
    }


    der funktioniert. :D hab den selbst gerade getestet

    So wie ich es sehe liegt der Fehler nicht in OnPlayerCommandText nach dem ich es dir nochmal umgeschrieben habe. Irgendwo scheinst du noch einen klammer Fehler zu haben vermute ich mal ganz stark.


    if (strcmp("/mv",cmdtext, true, 10) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,15.0,1544.59851, -1626.71655, 12.31279))
    {
    SendClientMessage(playerid,GREEN,"Du hast das Tor geöffnet es schließt in 5 Sekunden");
    MoveDynamicObject(sapdtor1,1544.59851, -1626.71655, 12.31279-10,2.0);
    SetTimer("torsapd1",5000,false);
    }
    else if(IsPlayerInRangeOfPoint(playerid,5.0, 1588.95044, -1638.03967, 12.31597))
    {
    SendClientMessage(playerid,GREEN,"Du hast das Tor geöffnet es schließt in 5 Sekunden");
    MoveDynamicObject(sapdtor2,1588.95044, -1638.03967, 12.31597-10,2.0);
    SetTimer("torsapd2",5000,false);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist nicht in der nähe des Tor´s");
    }
    return 1;
    {
    if (strcmp("/shpark",cmdtext, true, 10) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,7.0,1561.33008, -1792.06274, 13.36100))
    {
    SendClientMessage(playerid,GELB,"Du hast dir ein Parkticket für 50$ gekauft.");
    MoveDynamicObject(shpark,1561.33008, -1792.06274, 13.36100-10);
    GivePlayerMoney(playerid,-50);
    SetTimer(parksh,5000,false);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist nicht in der nähe des Tors´s");
    }
    return 1;
    }


    ersetzen durch



    if (strcmp("/mv",cmdtext, true, 10) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,15.0,1544.59851, -1626.71655, 12.31279))
    {
    SendClientMessage(playerid,GREEN,"Du hast das Tor geöffnet es schließt in 5 Sekunden");
    MoveDynamicObject(sapdtor1,1544.59851, -1626.71655, 12.31279-10,2.0);
    SetTimer("torsapd1",5000,false);
    }
    else if(IsPlayerInRangeOfPoint(playerid,5.0, 1588.95044, -1638.03967, 12.31597))
    {
    SendClientMessage(playerid,GREEN,"Du hast das Tor geöffnet es schließt in 5 Sekunden");
    MoveDynamicObject(sapdtor2,1588.95044, -1638.03967, 12.31597-10,2.0);
    SetTimer("torsapd2",5000,false);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist nicht in der nähe des Tor´s");
    }
    return 1;
    }
    if (strcmp("/shpark",cmdtext, true, 10) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,7.0,1561.33008, -1792.06274, 13.36100))
    {
    SendClientMessage(playerid,GELB,"Du hast dir ein Parkticket für 50$ gekauft.");
    MoveDynamicObject(shpark,1561.33008, -1792.06274, 13.36100-10);
    GivePlayerMoney(playerid,-50);
    SetTimer(parksh,5000,false);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist nicht in der nähe des Tors´s");
    }
    return 1;
    }


    Du hattest einen klammer fehler


    if (strcmp("/shpark",cmdtext, true, 10) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,7.0,1561.33008, -1792.06274, 13.36100))
    {
    SendClientMessage(playerid,GELB,"Du hast dir ein Parkticket für 50$ gekauft.");
    MoveDynamicObject(shpark,1561.33008, -1792.06274, 13.36100-10);
    GivePlayerMoney(playerid,-50);
    SetTimer(parksh,5000,false);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist nicht in der nähe des Tors´s");
    }
    return 1;
    }


    Du wofür brauchst du folgende Abfrage ?


    return SendClientMessage(playerid,ROT,"Befehl nicht gefunden.");

    ...diese Zahlen sind dein Geld...und doch...das ist das eigentliche TextDraw...^^


    Der erstellst nicht random irgendwo TextDraws mit irgendwelchen Zahlen drinnen..ahahha xD


    Sondern...dann prüf nochmal wo und wie du dein TextDraw erstellst..und ob das alles halt richtig ist :D

    In dem gleichen Moment wo du den Thread geschrieben hast, hatte ich vermutlich den Fehler auch schon gesehen gehabt.


    Ich habe 2 TextDraws mit gleichem Namen gehabt. Dadurch konnte er also nicht Richtig Updaten,


    Danke für eure Mühe =)

    Mach doch mal einen debug:


    printf("Autohaus-Geld: %d",ahCars[id][c_preis]);


    und wenn der 0 printet, dann weißt du, dass du einen Fehler in der Zuweisung von der Variable gemach hast :)

    Das Problem liegt nicht im abzug in der Variable. Lediglich das Updaten des TextDraw Geldes funktioniert nicht.


    Was mich aber wundert, sobald ich Connecte Updatet er das Geld. Aber nicht beim Autokauf oder ähnlichen wie ich gerade merkte