[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

  • Hey,


    Kurze frage habe es eingestellt das der Spieler ab Rang 4 ernten kann warum kann er es nicht ernten?

  • Hallo nochmal.


    Habe nun auch Pawnfox installiert. Compiliert ohne Fehler, aber quasi direkt. Und der Gamemode kann entsprechend nicht geladen werden, weil er nichtmal die Includes compiliert.
    Kann komischerweise auch ALLE #inludes rausnnehmen und trotzdem keine Fehler..


    Jetzt kommt beim starten wenigstens:


    Code
    Script[gamemodes/robada.amx]: Run time error 17: "Invalid/unsupported P-code file format"
    Failed to load 'gamemodes/robada.amx' script.


    Hab oben im Gamemode mal folgendes eingefügt(Ohne Erfolg):

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Zeig mal die server log
    füg mal Crashdetect oder Nativcheker ein
    das plugin aber als erstes laden.

  • Es scheint eher so als würde Pawnfox garnicht richtig compilen.
    Hast du deine Includes auch bei Pawnfox in den PawnStuff Ordner unter Includes reinkopiert?
    Was erhältst du als Output wenn du mit Pawnfox deinen Gamemode compilest? (Falls du nichts erhältst, ändere deine Compileoptionen auf -d3)

  • Es scheint eher so als würde Pawnfox garnicht richtig compilen.
    Hast du deine Includes auch bei Pawnfox in den PawnStuff Ordner unter Includes reinkopiert?
    Was erhältst du als Output wenn du mit Pawnfox deinen Gamemode compilest? (Falls du nichts erhältst, ändere deine Compileoptionen auf -d3)

    Includes eingefügt, Ja.
    Gamemode wird compiliert..
    Option steht bereits auf -d3..


    Vorallem habe ich in Zeile 1 bereits ein Klammerfehler, welchen er nichteinmal meldet.

  • Hey,
    So öffne ich eine Tür

    C
    new i = GetDoorPos(playerid);
    if(i == -1) return 1;



    Code
    stock GetDoorPos(playerid)
    {
    	if(IsPlayerInRangeOfPoint(playerid,2.0,/*...*/)) return 0;
    	if(IsPlayerInRangeOfPoint(playerid,2.0,/*...*/)) return 1;
    	if(IsPlayerInRangeOfPoint(playerid,2.0,/*...*/)) return 1;
    	return -1;
    }
    C
    case 0:
    			{
    			    new Float:x,Float:y,Float:z;
    			    GetDynamicObjectPos(Door[i],x,y,z);
    			    MoveDynamicObject(Door[i], x-1.6816,y,z,1);
    				DoorOpen[i] = 1;
    			}


    Das funktioniert ja. ich habe immer eine Tür und kriege sie auf.
    Jetzt ist das Problem, dass ich zwei Türen öffnen muss (doppeltür)



    C
    case 2: //doppeltür
    			{
    			    new Float:x,Float:y,Float:z;
    			    GetDynamicObjectPos(Door[2],x,y,z);
    				MoveDynamicObject(Door[2], x+1,092,y,z,1);
    			    GetDynamicObjectPos(Door[3],x,y,z);
    				MoveDynamicObject(Door[3], x-1,092,y,z,1);
    				DoorOpen[i] = 1;
    			}

    http://prntscr.com/ne52ug


    Das ganze passiert nur, wenn ich bei Case 2 nicht i sondern die richtigen Zahlen von der Tür eintrage.



    Ist nur eine kleiner Fehler wahrscheinlich den ich nicht finde... :D

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

  • Irgendwie sagt er mich, dass die Tür bereits geöffnet ist, aber nur bei Case 2. Heißt er sagt mir nur, dass die Tür auf ist und es passiert nichts.


    Kann ich irgendwie abfragen, ob der Spieler in der Range von allen GetDoorPos is, damit ich eine return message mit einbauen kann, ansonsten kriege ich Errors, wenn ich nicht in der nähe die Sachen abfrage.


    C
    stock GetDoorPos(playerid)
    {
    	if(IsPlayerInRangeOfPoint(playerid,2.0,/*...*/)) return 0;
    	if(IsPlayerInRangeOfPoint(playerid,2.0,/*...*/)) return 1;
    	if(IsPlayerInRangeOfPoint(playerid,2.0,/*...*/)) return 1;
    	return -1;
    }


    Code
    new i = GetDoorPos(playerid);
    	if(DoorOpen[i] == 1)
    	{
            SendClientMessage(playerid,-1,"tür ist bereits auf");
    	}
    C
    else
    	{
    		if(i == -1) return 1;
    		switch(i)
    		{

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

  • rgendwie sagt er mich, dass die Tür bereits geöffnet ist, aber nur bei Case 2.

    Du hast im GetDoorPos zwei mal return 1 stehen.



    Kann ich irgendwie abfragen, ob der Spieler in der Range von allen GetDoorPos is, damit ich eine return message mit einbauen kann, ansonsten kriege ich Errors, wenn ich nicht in der nähe die Sachen abfrage.

    Warum bekommst du sonst Errors? Der Spieler kann ja eigentlich nur im Umkreis einer Tür sein.

  • Beitrag von Abbas ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: ---- ().
  • C
    stock GetDoorPos(playerid)
    {
    	if(IsPlayerInRangeOfPoint(playerid,2.0,/*...*/)) return 0;
    	if(IsPlayerInRangeOfPoint(playerid,2.0,/*...*/)) return 1;
    	if(IsPlayerInRangeOfPoint(playerid,2.0,/*...*/)) return 1;
    	return -1;
    }

    Wie geht das denn anders @Jeffry. Irgendwie versteh ich die returns nicht. So hat es funktioniert bei den ersten beiden, trage ich in Zeile 4. return 0; ein habe ich das Problem an einer anderen Tür



    Zitat von Jeffry

    Warum bekommst du sonst Errors? Der Spieler kann ja eigentlich nur im Umkreis einer Tür sein.

    http://prntscr.com/ne6avq, ich will halt dazu noch abfrage ob er halt in der Nähe von einer dieser Türen ist, wenn nicht soll halt eine SendClientMessage kommen die sagt, dass er nicht in der Nähe von einer Tür ist. Ich würde halt richtig Stumpf alle Koordinaten in ein Array packen, es ist halt nicht der Sinnvollste Weg, deswegen frage ich :D

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