[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

  • 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



  • wie kann ich hier rein bauen mit else "Du bist nicht in der nähe"

  • 3 Dinge zu dem Code:


    • IsPlayerConnect(playerid) das brauchst du nicht abfragen, da der Spieler ja online sein muss, um den Befehl einzugeben ^^ bzw kannst es 1x im Callback oben abfragen, aber nicht im jeden Befehl xD
    • Diese *then Notation ist zwar lustig, aber sollte man nicht verwenden, da das der Übersicht schadet.
    • PlayerToPoint ist schon sehr veraltet, einfach IsPlayerInRangeOfPoint nutzen. Oder die Funktion stock PlayetToPoint löschen und ein Makro oben im Skript machen: #define PlayerToPoint(%0,%1,%2,%3,%4) IsPlayerInRangeOfPoint(%1,%0,%2,%3,%4)


    C
    if(strcmp(cmdtext,"/towopen", true) == 0)
    {
    	if(!PlayerToPoint(5,playerid,1106.0683,-1691.4707,12.9108)) return SendClientMessage(playerid,-1,"Du befindest dich nicht in der Nähe!");
    	DestroyObject(OamtTor);
    	OamtTor2=CreateObject(968, 1106.07, -1691.47, 12.91,   0.00, -4.00, -90.00);
    	SendClientMessage(playerid,0x00C5FFFF,"Das Tor schließt in 5 Sekunden.");
    	SetTimerEx("oamtzu",5000,0,"i",playerid);
    	return 1;
    }

    ast2ufdyxkb1.png


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

  • Danke, habe das aber jetzt so


    if(IsPlayerInRangeOfPoint(playerid,5.0,1106.0683,-1691.4707,12.9108)) return SendClientMessage(playerid,COLOR_RED,"Du befindest dich nicht in der Nähe!");


    Und kann mein Tor sogar vom Dach oder 100 Meter weit weg aufmachen ..

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