[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Das ist ja so blöd, da ich 2 Schleifen davor laufen lassen muss.

    Gibt hier 2 Möglichkeiten.


    ast2ufdyxkb1.png


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

  • Hab mich für die Schleifen entschieden.


    Code
    new vehicleid = GetPlayerVehicleID(playerid);
    if(IsInAorB(vehicleid))

    Was mache ich falsch?

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Haha :D



    C
    new vehicleid = GetPlayerVehicleID(playerid);
    if(IsInAorB(vehicleid))
    {
    //...
    }
    else
    {
    //Nachricht das er nicht im Fahrzeug ist
    }

    Es ist egal, ob ich zu Fuß unterwegs bin oder im richtigen Fahrzeug er zeigt mir immer das nach der if Abfrage nie den else Teil.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • if(IsInAorB(vehicleid))

    Achso, ja das wird nicht abgedeckt, schreibe die Funktion mal so:



    C
    stock IsInAorB(vehicleid)
    {
        if(!vehicleid) return 0;
        for(new i; i<sizeof(FahrzeugTypA); i++) if(vehicleid == FahrzeugTypA[i]) return 1;
        for(new i; i<sizeof(FahrzeugTypB); i++) if(vehicleid == FahrzeugTypB[i]) return 1;
        return 0;
    }

    Aber ist komisch, dass das geht...das bedeutet wohl, dass nicht alle Array-Felder Fahrzeugen zugewiesen wurden ;)

    ast2ufdyxkb1.png


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

  • Zitat von Kaliber

    das bedeutet wohl, dass nicht alle Array-Felder Fahrzeugen zugewiesen wurden

    Ja natürlich, die Einträge brauchen auch bisschen Platz.
    Nicht das die Einträge Klaustrophobie haben und mein ganzes System nicht mehr funktioniert. :whistling:

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Das hier kommt raus


    Code
    SFR3.pwn(2500) : error 017: undefined symbol "string"
    SFR3.pwn(2500) : error 017: undefined symbol "string"
    SFR3.pwn(2500) : error 029: invalid expression, assumed zero
    SFR3.pwn(2500) : fatal error 107: too many error messages on one line


    Bei folgendem Code


    Code
    SendMessageEx(-1, -1, "{B0E66A}%s {CCCCCC} joined the server","%d ha entrado al servidor","{B0E66A}%s {CCCCCC}ha entrado no servidor", PI[playerid][P_NAME]);
  • Jaaa da steht doch der Fehler...


    Musst einfach drüber:


    new string [128];


    schreiben...


    Oder eben anpassen je nach Länge ;)

    ast2ufdyxkb1.png


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

  • Ich habe ein Fahrzeug, dass hat Objekte attached.
    Wenn es explodiert, sollen die Objekte verschwinden.


    Ich finde nix dazu :D
    Bzw. das Public nicht.. :(

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Kann mir jemand helfen ein Blinker System mit Q (links) & E (rechts) in mein Script zu erstellen? Am besten sollte dann ein roter/orangenes Licht Objekt auftauchen.

    Gibts dafür nicht schon genug Systeme?


    https://breadfish.de/index.php?thread/71537-blinker-system/
    https://forum.sa-mp.com/showthread.php?t=72210
    https://forum.sa-mp.com/showthread.php?t=94122


    Einfach mal googeln? ^^

    ast2ufdyxkb1.png


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

  • Ich will nämlich herausfinden bzw. abfragen wem das Job-Fahrzeug gehört

    Das kannst du doch über die vehicleid herausfinden.


    Musst nur durch die Job-Fahrzeuge loopen und schauen, auf wen die Vehicleid zutrifft :)

    ast2ufdyxkb1.png


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

  • Ich speicher mir aber immer nur den Index, ich kann ja dann nicht abfragen ob "JobFahrzeug[playerid] == i" ist ?
    Da es ja noch andere Fahrzeuge mit dem Index gibt.


    Was passiert denn, wenn ich die VID speichere das Fahrzeug heißt Job1Fahrzeug[2], wenn ich das einer Variable gebe heißt die doch nicht auch Job1Fahrzeug[2] oder?

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • aber immer nur den Index

    Du kannst doch das rückwärts machen:



    Und dann bekommst du die playerid von dem Spieler, dem das Fahrzeug mit dem dazugehörigen index gehört :)

    ast2ufdyxkb1.png


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

  • Hö,
    ich wunder mich gerade, wie ich die Objekte destroye vom Fahrzeug?
    ObjektLkwJob1[1][/*Index*/]


    Der Index ist ja gleich pInfo[playerid][pJobVeh] (< -- das ist JobFahrzeug[i])
    Ist das nicht Riskant?


    Funktioniert der Code so auch, wenn ich nicht der Killer vom Fahrzeug bin, sollte es ja, kann es nur nicht testen :D

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Wie realisiere ich am cleversten ein "Runden" System in einem Gamemode mit mehreren Minigames?


    Weil bei einer Programmiersprache wie C oder PAWN wird sowas ja ziemlich sperrig, wenn ich in jedem public abfragen muss welcher Spielmodus aktuell aktiv ist, und ich dann immer fuer diesen Modus die Dinge definieren muss.
    Undzwar ich habe folgendes.
    Ich habe bspw. Spielmodi wie Deathmatch Rennen etc. und nachdem z.B. ein Deathmatch gespielt wurde, soll aus dem Pool der Minigames ein anderer ausgesucht werden, und dieser dann gestartet werden.
    Bisher habe ich das ziemlich doof geloest indem ich halt fuer jeden Mode ein eigenes Script habe, was vermutlich einfacher ist.
    Problem ist: Das Random aussuchen geht schwer, und der gmx ist ja auch nervig.


    Oder ist da der Weg ueber eine objektorientierte Sprache ueber APIs sinvoller?

    Einmal editiert, zuletzt von Sub Royal ()

  • Wieso wird der Code trotzdem jede Sekunde aufgerufen ??



    if(BeatUnix[i] > 0) { BeatUnix[i] --; }
    else if(BeatUnix[i] == 0 && SetPVarInt(i,"BeatUnix",1)) { UnfreezePlayer(i); SetPVarInt(i,"BeatUnix",0); }