Angepinnt [SAMMELTHREAD] Kleine Scripting Fragen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Dr. Frauenarzt schrieb:

    Kurze frage kann man den Spieler irgendwie mit fahren lassen?
    Was meinst du mit fahren?

    Wenn du langsame Bewegung meinst, dann so:

    PAWN-Quellcode

    1. InterpolateCameraPos(playerid, 2039.615722, 1712.241210, 15.445195, 2039.757934, 951.170471, 30.502363, 50000, CAMERA_MOVE);


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/
  • Dr. Frauenarzt schrieb:

    Gibt es eine Möglichkeit das man das Forum und den Teamspeak mit den Server verdindet? gibt es da eventuell ein Filterscript?
    Hier Ts: Ts3 mit Samp Server verbinden

    Und bei Forum, kommt darauf an, welche Software du nutzt, ob WBB 3 oder WBB 4 oder what ever :)


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/
  • Fernandez_ schrieb:

    Meine Frage wäre jetzt: Es gibt ja bereits in der Welt von SA Mülltonnen und Müllsäcke.
    Wäre es möglich abzufragen, ob der Spieler an einer der Mülltonnen ist, ohne dass diese extern von mir gemappt werden?
    Brauchst halt die Positionen der Mülltonnen und die findest du bestimmt nicht so einfach.
    Einzige Lösung wäre selbst zu gucken wo die Mülltonnen sind oder im Internet mal nach Positionen gucken ^^

  • @Dr. Frauenarzt das ist keine Scriptingfrage.
    Das wird Kaliber auch sicherlich nicht machen.
    Versuch es doch einfach erstmal selber und wenn du nicht weiter kommst, frag hier nach Hilfe.
    Ich helfe zu allen Fragen bezüglich PAWN Scripting gerne weiter.
    Ich biete auch einen Scripting Service an: Scripting Service

    Konversation: Konversation starten

    Discord: LeonMrBonnie#2251

  • Dr. Frauenarzt schrieb:

    einfach nur an die Wand sprayn kann
    Jaaa, wenn das so "einfach" wäre ;)

    Also sowas kann man nicht wirklich dynamisch machen, da du ein Objekt ja erstellen musst und du nicht die Position von der Wand ermitteln kannst, außer du nutzt ColAndreas o.ä.

    Das heißt im Endeffekt musst du vorgeben, wo die Objekte erstellt werden und quasi vor mappen und dann erst anzeigen, wenn man sie gesprayt hat :)


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/

    Beitrag von Fernandez_ ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • LoRiX schrieb:

    Moin Leute,

    ich hab ein kleines Problem undzwar hatte das Script das ich benutze davor eine Geldanzeige aus Textdraw´s diese hab ich entfernt aber die Standart Geldanzeige zeigt ganze Zeit 0$ an.
    Könnte mir da jemand helfen :P

    Mit freundlichen Grüßen,

    LoRiX
    vermutlich wurde das Geld nur per enum gesetzt und das textdraw immer aktualisiert. Überall wo das passiert musst du nun mit GivePlayerMoney arbeiten

    PS: haut mich nicht wenns falsch ist

    MfG
    XonarZ
  • LoRiX schrieb:

    Moin Leute,

    ich hab ein kleines Problem undzwar hatte das Script das ich benutze davor eine Geldanzeige aus Textdraw´s diese hab ich entfernt aber die Standart Geldanzeige zeigt ganze Zeit 0$ an.
    Könnte mir da jemand helfen :P

    Mit freundlichen Grüßen,

    LoRiX
    Du könntest es auch so lösen, dass du den Spielern über einen Timer einfach den aktuellen Geldstand wissen lässt, wenn du ihnen das Geld vom Enum setzt.

    z.B.
    GivePlayerMoney(i,0);
    GivePlayerMoney(i,PlayerInfo[pMoney]);

    Das ganze natürlich in einer Schleife, damit das Geld regelmäßig "geupdated" wird.
  • Neu

    Spoiler anzeigen

    Quellcode

    1. if((RELEASED(KEY_FIRE) && GetPlayerWeapon(playerid) == 41))
    2. {
    3. for(new fc = 1;fc<MAX_SPRAYTAGS;fc++)
    4. {
    5. if(SprayTagInfo[fc][stErstellt] == false)continue;
    6. if(IsPlayerInRangeOfPoint(playerid, 8.0, SprayTagInfo[fc][stPos_X], SprayTagInfo[fc][stPos_Y], SprayTagInfo[fc][stPos_Z]))
    7. {
    8. new gstring[128], mainQuery[248];
    9. if(SprayTagInfo[fc][stFactionID] == Spieler[playerid][pFraktion])return 1;
    10. if(SprayTagInfo[fc][stSprayed] > gettime())
    11. {
    12. new resttime = SprayTagInfo[fc][stSprayed]-gettime();
    13. format(gstring, sizeof(gstring),"[Info]: {FFFFFF}Dieses SprayTag kann erst in %i:%02d Minuten gecrosst werden!", resttime/60, resttime%60);
    14. return SendClientMessage(playerid, COLOR_WHITE, gstring);
    15. }
    16. if(Spieler[playerid][pFraktion] == 9)
    17. {
    18. DestroyDynamicObject(SprayTagInfo[fc][stObjectID]);
    19. SprayTagInfo[fc][stObjectID] = CreateDynamicObject(18659, SprayTagInfo[fc][stPos_X], SprayTagInfo[fc][stPos_Y], SprayTagInfo[fc][stPos_Z], SprayTagInfo[fc][stRot_X], SprayTagInfo[fc][stRot_Y], SprayTagInfo[fc][stRot_Z]);
    20. format(gstring, sizeof(gstring), "{00FF00}Graffiti\n\n{FFFFFF}Mitglieder einer Gang,\nkönnen hier ihr Graffiti sprühen\n\n{00FF00}Besitzer {FFFFFF}%s", GetFraktionName(SprayTagInfo[fc][stFactionID]));
    21. Update3DTextLabelText(SprayTagInfo[fc][Spray3D], COLOR_WHITE, gstring);
    22. }
    23. if(Spieler[playerid][pFraktion] == 10)
    24. {
    25. DestroyDynamicObject(SprayTagInfo[fc][stObjectID]);
    26. SprayTagInfo[fc][stObjectID] = CreateDynamicObject(18667, SprayTagInfo[fc][stPos_X], SprayTagInfo[fc][stPos_Y], SprayTagInfo[fc][stPos_Z], SprayTagInfo[fc][stRot_X], SprayTagInfo[fc][stRot_Y], SprayTagInfo[fc][stRot_Z]);
    27. format(gstring, sizeof(gstring), "{00FF00}Graffiti\n\n{FFFFFF}Mitglieder einer Gang,\nkönnen hier ihr Graffiti sprühen\n\n{00FF00}Besitzer {FFFFFF}%s", GetFraktionName(SprayTagInfo[fc][stFactionID]));
    28. Update3DTextLabelText(SprayTagInfo[fc][Spray3D], COLOR_WHITE, gstring);
    29. }
    30. SprayTagInfo[fc][stSprayed] = (gettime()+(30*60));
    31. format(gstring, sizeof(gstring), "UPDATE `server_graffitis` SET `FactionID`='%d' WHERE `ID`='%d'",
    32. SprayTagInfo[fc][stFactionID], fc);
    33. strcat(mainQuery, gstring);
    34. printf(mainQuery);
    35. mysql_function_query(MySqlConnection, mainQuery, false, "", "");
    36. strdel(mainQuery, 0, sizeof(mainQuery));
    37. }
    38. }
    39. return 1;
    40. }
    Alles anzeigen


    Hey,

    Ich habe eine frage...
    Wen ich eine SprayTag übersprühe wird die Fraktion nicht geupdatet und auch nicht in der Datenbank kann mir einer sagen warum?
    Es bleibt beim alten besitzer?


    //E: Den Fehler mit den Label habe ich jetzt behoben habe nur mehr den fehler mit der Fraktions ID.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Dr. Frauenarzt ()

  • Neu

    Wieso schreibst du das immer so unordentlich und wieso startest du Schleifen immer ab 1?

    Indizes beginnen in C ähnlichen Sprachen immer ab 0.


    C-Quellcode

    1. if((RELEASED(KEY_FIRE) && GetPlayerWeapon(playerid) == 41))
    2. {
    3. new fc = GetClosestSprayTag(playerid);
    4. if(fc == -1) return 1;
    5. if(SprayTagInfo[fc][stFactionID] == Spieler[playerid][pFraktion]) return 1;
    6. new gstring[128];
    7. if(SprayTagInfo[fc][stSprayed] > gettime())
    8. {
    9. new resttime = SprayTagInfo[fc][stSprayed]-gettime();
    10. format(gstring, sizeof(gstring),"[Info]: {FFFFFF}Dieses SprayTag kann erst in %i:%02d Minuten gecrosst werden!", resttime/60, resttime%60);
    11. return SendClientMessage(playerid, COLOR_WHITE, gstring);
    12. }
    13. if(Spieler[playerid][pFraktion] == 9 || Spieler[playerid][pFraktion] == 10)
    14. {
    15. new model = (Spieler[playerid][pFraktion] == 9) ? 18659 : 18667;
    16. DestroyDynamicObject(SprayTagInfo[fc][stObjectID]);
    17. SprayTagInfo[fc][stObjectID] = CreateDynamicObject(model, SprayTagInfo[fc][stPos_X], SprayTagInfo[fc][stPos_Y], SprayTagInfo[fc][stPos_Z], SprayTagInfo[fc][stRot_X], SprayTagInfo[fc][stRot_Y], SprayTagInfo[fc][stRot_Z]);
    18. format(gstring, sizeof(gstring), "{00FF00}Graffiti\n\n{FFFFFF}Mitglieder einer Gang,\nkönnen hier ihr Graffiti sprühen\n\n{00FF00}Besitzer {FFFFFF}%s", GetFraktionName(SprayTagInfo[fc][stFactionID]));
    19. Update3DTextLabelText(SprayTagInfo[fc][Spray3D], COLOR_WHITE, gstring);
    20. SprayTagInfo[fc][stSprayed] = (gettime()+(30*60));
    21. format(gstring, sizeof(gstring), "UPDATE `server_graffitis` SET `FactionID`='%d' WHERE `ID`='%d'", Spieler[playerid][pFraktion], fc);
    22. mysql_function_query(MySqlConnection, gstring, false, "", "");
    23. }
    24. return 1;
    25. }
    26. stock GetClosestSprayTag(playerid,Float:range=8.0)
    27. {
    28. new Float:m=3000.0,idx = -1;
    29. for(new fc,Float:tmp; fc<MAX_SPRAYTAGS; fc++)
    30. {
    31. if(!SprayTagInfo[fc][stErstellt]) continue;
    32. tmp = GetPlayerDistanceFromPoint(playerid,SprayTagInfo[fc][stPos_X], SprayTagInfo[fc][stPos_Y], SprayTagInfo[fc][stPos_Z]);
    33. if(tmp < m) m=tmp,idx=fc;
    34. }
    35. return (m > range) ? -1 : idx;
    36. }
    Alles anzeigen
    Dein Fehler war, dass du auch immer nur die alte Fraktion wieder eingetragen hast und nicht die aktuelle Fraktion vom Spieler.

    Zudem wenn jemand von der Fraktion z.B. 1 gesprayt hätte..würde der da drinnen stehen, obwohl gar kein Graffiti gesetzt worden wäre...


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/