[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
  • also musst ich bestimmt noch bei tInfo[][ENUMDATA] eine Zahl einfügen: tInfo[50][VEHDATA] oder?

    Stehen die Werte fest im Code im Array, oder lädst du diese irgendwo extern her?
    Wenn sie fest drin stehen, dann brauchst du keine Zahl eintragen.


    Hast du eventuell eine Meldung bezüglich stack/heap size im Compiler (oder Warnungen)?

  • Stehen die Werte fest im Code im Array, oder lädst du diese irgendwo extern her?Wenn sie fest drin stehen, dann brauchst du keine Zahl eintragen.


    Hast du eventuell eine Meldung bezüglich stack/heap size im Compiler (oder Warnungen)?

    Naja ich lade die Tankstellen für jeden Spieler unter OnPlayerConnect:


    Code
    new query[1024];
    	mysql_format(handle, query, sizeof(query), "SELECT * FROM tankstellen");
    	mysql_pquery(handle, query, "loadTankstellen", "i", playerid);
    	loadTankstellenIcons(playerid);

    Ich meine durch die 50 im tInfo funktioniert es nun ... Vielleicht gibts aber auch eine andere lösung :D


    MfG
    XonarZ

  • ich lade die Tankstellen für jeden Spieler unter OnPlayerConnect

    Dann musst du die Anzahl eintragen, da der Code ja nicht weiß, wie viele Tankstellen du lädst. Der Speicher muss vorher (beim Compilen) reserviert werden.


    Außerdem musst du es bei OnGameModeInit laden, sonst werden die Pickups etc für jeden Spieler nochmal erstellt.


    Die Schleife dann so:
    for(new i = 0; i < sizeof(tInfo); i++)


  • if(strcmp(cmdtext,"/nimmdrogen", true) == 0)
    {
    if(Drugs[playerid] == <1)
    {
    GetPlayerArmour(playerid,armour);
    SetPlayerArmour(playerid,armour+30);
    ApplyAnimation(playerid,"FOOD","EAT_Burger",4.1,1,1,1,0,4000,1);
    Drugs[playerid] -= 1;
    SendClientMessage(playerid, 0x9ACD32AA, "Du hast 1 Droge genommen.");
    return 1;
    }
    else if(Drugs[playerid] == >1)
    {
    SendClientMessage(playerid, COLOR_RED, "Du hast kein Drogen dabei!");
    return 1;
    }
    }
    [b][/b][i][/i][u][/u][sub][/sub][sup][/sup][s][/s]





    Zeile (20569) : error 001: expected token: ";", but found ")" Dieser ERROR Besteht in " if(Drugs[playerid] == <1)"

  • Kurze frage zum thema switch & case


    Code
    ocmd@2:ahelp, ah(playerid, params[]){
    	switch(pInfo[playerid][pAlevel]){
    	    new string[128];
    	    case 0: SCM(playerid, COLOR_RED, "[FEHLER] {FFFFFF}Du bist kein Teammitglied, daher hast du auch keine Commands :D");
    	    case 1:
    	        format(string, sizeof(string), "%sProbe Supporter: {FFFFFF});
    	        SCM(playerid, COLOR_WHITE, string);
    	}
    }

    Leider wirft das ja errors aus, geht das iwie? oder muss ich mit if(pInfo[playerid][pAlevel] == 1) usw arbeiten ?


    //EDIT mal abgesehen davon, dass ich einmal ein " zeichen vergessen habe^^


    MfG
    XonarZ

  • Du musst die Codes unter den jeweiligen cases auch in gschweifte klammern packen, gleich wie bei einem if zum Beispiel.


    Das new string darf nicht zwischen switch und case stehen. Entweder in einem case oder vor dem switch.


    Beim format fehlt hinten noch das Anführungszeichen.

  • Code
    ...selfmade.pwn(584) : error 033: array must be indexed (variable "Kraftstoff")
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    1 Error.

    Ich stehe ganz schön oft auf dem schlauch -.-

  • Komische Reihenfolge zu zählen, 0,1,2,4 ^^


    Strings vergleicht man mit [wiki]strcmp[/wiki].


    Also:


    if(!strcmp(mInfo[vModel][fuelTyp], Kraftstoff))

    ast2ufdyxkb1.png


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

  • Beitrag von Jeffry ()

    Dieser Beitrag wurde vom Autor gelöscht ().

  • Jetzt hab ich noch nen Warning:


    PS: Ja ich habe mein SetPVarInt mit listitem als inhalt ^^ listitem fängt ja bei 0 an^^


    //EDIT



    if(mInfo[vModel][fuelTyp] == Kraftstoff){
    Zu
    if(mInfo[vModel][fuelTyp] == GetPVarInt(playerid, "Kraftstoff")){

    Wird glaube nicht gehen oder? fuelTyp ist kein Integer sondern ein String fuelTyp[16]


    MfG

  • listitem fängt ja bei 0 an^^

    Ja, aber da fehlt die 3.


    Bei deinem strcmp sind die Klammern völlig falsch gesetzt und die if-Abfrage geht ins Leere...


    Machs doch 1:1 so, wie ich den Code gepostet habe, falls das überhaupt Strings sind.


    Falls es sich um Integer handelt, nutze Jeffrys Code ^^

    ast2ufdyxkb1.png


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

  • Ja, aber da fehlt die 3.
    Bei deinem strcmp sind die Klammern völlig falsch gesetzt und die if-Abfrage geht ins Leere...


    Machs doch 1:1 so, wie ich den Code gepostet habe, falls das überhaupt Strings sind.


    Falls es sich um Integer handelt, nutze Jeffrys Code ^^

    WoW ich muss noch eine menge lernen *facepalm* alter schwede ... bin ich dumm ... Danke euch beiden @Jeffry & @Kaliber

  • Hat jemand von euch Objekte die an den Spieler gesetzt werden wenn man als COP in den Dienst geht?
    Bsp. Gürtel mit Schlagstock/Waffe oder so..

    https://dev.prineside.com/en/g…model_id/search/?q=police


    Da findeste alle Items für Polizisten :)


    Wobei das eher hier rein kommt: [SAMMELTHREAD] Suche ObjektID/Textur ^^

    ast2ufdyxkb1.png


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

  • Warum kriege ich hier folgende ERRORS?


    Zeile (20641) : error 017: undefined symbol "Willkommen"
    Zeile (20641) : error 017: undefined symbol "am"




    Ganzer Befehl:


  • Warum kriege ich hier folgende ERRORS?

    Poste doch alle Errors ^^


    Einer davon ist bestimmt: error 075: input line too long (after substitutions)


    Und genau das ist das Problem, die Zeile ist zu lang. Das liegt am Compiler, der kann damit nicht umgehen.


    Hier musst du ein Work-Around machen, indem du das in Strings packst:


    C
    new dialogString[550] = "Willkommen am Verwahrplatz, Allgemein werden hier Fahrzeuge abgestellt die vom Ordnungsamt abgeschleppt wurden.\nUm dein Fahrzeug freizukaufen musst du einsteigen und dann bestätigen.Das Freikaufen von Fahrzeugen kostet 5.000$";
    strcat(dialogString,"\nWenn du der Meinung bist das, dass Fahrzeug richtig stand, kannst du dich an den Ordnungsamt Leader wenden. Wer das ist erfährst du unter /leader.");
    strcat(dialogString,"\nBei weiteren Fragen kannst du auch die Ordnungsamt Leaderschaft kontaktieren oder einen Admin per /sup fragen.\n\nViel Spaß bei der Weiterfahrt!");
    ShowPlayerDialog(playerid,DIALOG_Verwahrplatz,DIALOG_STYLE_MSGBOX,"Verwahrplatz Information:",dialogString,"Ok","");

    ast2ufdyxkb1.png


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

  • Habe der Feuerwehr nun Aufträge usw. zugeteilt, die laufen durch einen Timer, und dann kriegt man einen Checkpoint usw. , aber jetzt wie kann ich einen Brand durchs Script legen?
    Das an der Stelle sagen wir jetzt einfach mal 0.0 1.1 2.2 Feuer gelegt wird, was die Feuerwehr löschen kann?

  • Mit CreateDynamicObject erstellst du einfach das Feuer, da gibt es verschiedene modelids.


    https://dev.prineside.com/en/g…p_model_id/search/?q=fire


    Und joa, da gibst du halt die Koordinaten an und dann prüfst du ob wer in der Nähe ist mit was zum löschen und dann DestroyDynamicObject einfach :)


    Allerdings ist es nicht ganz soo einfach, da ja geguckt werden muss, da auch wirklich auf das Feuer gezielt wird usw.


    Meta hat da mal n System released gehabt, was ganz gut war: https://forum.sa-mp.com/showthread.php?t=226953


    Kannst da ja mal n bisschen schauen :)

    ast2ufdyxkb1.png


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

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen