[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
  • Daher nun meine Frage: Wie kann man einem Array(bspw. ist der höchste besetzte Index 9) den 10. Index zu belegen, quasi dem Array einen Eintrag hinzuzufügen?


    Nun...das kannst du so nicht direkt machen, da du eine bestimmte Größe vorgeben musst, damit der dann auch den Speicherplatz belegen kann...


    Es gäbe hier zwar die Möglichkeit Dynamische Arrays zu nutzen, durch malloc, aber das brauchst du eigentlich nicht.


    Du könntest doch einfach sowas machen:


    new test[20]; //hast 20 Plätze frei von 0-19


    test[0] = 1; //hier kannst du dann die Werte eintragen
    test[1] = 3; //usw


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Zitat

    Doch? Den Code musst du nur noch einfügen.
    Welchen Textdraw Editor nutzt du denn? iTD ?



    ja itd. da kommt bei mir raus :


    641.531494|427.916687|0.000000|2.016664|-2.000000|0.000000|1|0|1|102|0|0|0|0|0|0|1|usebox
    6.559257|427.583282|0.449999|1.600000|0.000000|0.000000|1|503382015|0|503382015|0|-1|51|1|1|0|0|ReaL-Deathmatch



    zb.


  • Textdraw0 = TextDrawCreate(6.559257, 427.583282, "ReaL-Deathmatch");
    TextDrawLetterSize(Textdraw0, 0.449999, 1.600000);
    TextDrawAlignment(Textdraw0, 1);
    TextDrawColor(Textdraw0, 503382015);
    TextDrawSetShadow(Textdraw0, 0);
    TextDrawSetOutline(Textdraw0, -1);
    TextDrawBackgroundColor(Textdraw0, 51);
    TextDrawFont(Textdraw0, 1);
    TextDrawSetProportional(Textdraw0, 1);


    //Player Textdraws:

    Textdraw1[playerid] = CreatePlayerTextDraw(playerid, 641.531494, 427.916687, "usebox");
    PlayerTextDrawLetterSize(playerid, Textdraw1[playerid], 0.000000, 2.016664);
    PlayerTextDrawTextSize(playerid, Textdraw1[playerid], -2.000000, 0.000000);
    PlayerTextDrawAlignment(playerid, Textdraw1[playerid], 1);
    PlayerTextDrawColor(playerid, Textdraw1[playerid], 0);
    PlayerTextDrawUseBox(playerid, Textdraw[playerid], true);
    PlayerTextDrawBoxColor(playerid, Textdraw1[playerid], 102);
    PlayerTextDrawSetShadow(playerid, Textdraw1[playerid], 0);
    PlayerTextDrawSetOutline(playerid, Textdraw1[playerid], 0);
    PlayerTextDrawFont(playerid, Textdraw1[playerid], 0);




    Error:


    C:\Users\NB\Desktop\DMSERVER\scriptfiles\TD_1.pwn(6) : error 010: invalid function or declaration
    C:\Users\NB\Desktop\DMSERVER\scriptfiles\TD_1.pwn(8) : warning 219: local variable "Textdraw0" shadows a variable at a preceding level
    C:\Users\NB\Desktop\DMSERVER\scriptfiles\TD_1.pwn(8) : error 010: invalid function or declaration
    C:\Users\NB\Desktop\DMSERVER\scriptfiles\TD_1.pwn(9) : warning 219: local variable "Textdraw0" shadows a variable at a preceding level
    C:\Users\NB\Desktop\DMSERVER\scriptfiles\TD_1.pwn(9) : error 010: invalid function or declaration
    C:\Users\NB\Desktop\DMSERVER\scriptfiles\TD_1.pwn(10) : warning 219: local variable "Textdraw0" shadows a variable at a preceding level
    C:\Users\NB\Desktop\DMSERVER\scriptfiles\TD_1.pwn(10) : error 010: invalid function or declaration
    C:\Users\NB\Desktop\DMSERVER\scriptfiles\TD_1.pwn(11) : warning 219: local variable "Textdraw0" shadows a variable at a preceding level
    C:\Users\NB\Desktop\DMSERVER\scriptfiles\TD_1.pwn(11) : error 010: invalid function or declaration
    C:\Users\NB\Desktop\DMSERVER\scriptfiles\TD_1.pwn(11) : error 010: invalid function or declaration
    C:\Users\NB\Desktop\DMSERVER\scriptfiles\TD_1.pwn(11 -- 13) : warning 219: local variable "Textdraw0" shadows a variable at a preceding level
    C:\Users\NB\Desktop\DMSERVER\scriptfiles\TD_1.pwn(11 -- 13) : error 010: invalid function or declaration
    C:\Users\NB\Desktop\DMSERVER\scriptfiles\TD_1.pwn(11 -- 13) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    8 Errors.

  • Hey, also ich habe das in meinem Enum: SpielerInfo[playerid][sPos][3]
    Wie kann ich das jetzt machen, das Sscanf beim laden xpos in [sPos][0] y in [sPos][1] u. z in [sPos][2] ?
    Bis jetzt sieht das so aus: sscanf(str, "e<p<|>iis[25]s[16]iis[25]s[64]iifff>",SpielerInfo[playerid]); //Die fff stehen für die position
    mfg

  • Du hast TextDraw0 schonmal deklariert. Nimm einen anderen Variablen-Bezeichner


    ?


    C:\Users\NB\Desktop\DMSERVER\gamemodes\DM.pwn(94) : warning 217: loose indentation
    C:\Users\NB\Desktop\DMSERVER\gamemodes\DM.pwn(109) : error 017: undefined symbol "playerid"
    C:\Users\NB\Desktop\DMSERVER\gamemodes\DM.pwn(110) : error 017: undefined symbol "playerid"
    C:\Users\NB\Desktop\DMSERVER\gamemodes\DM.pwn(111) : error 017: undefined symbol "playerid"
    C:\Users\NB\Desktop\DMSERVER\gamemodes\DM.pwn(112) : error 017: undefined symbol "playerid"
    C:\Users\NB\Desktop\DMSERVER\gamemodes\DM.pwn(113) : error 017: undefined symbol "playerid"
    C:\Users\NB\Desktop\DMSERVER\gamemodes\DM.pwn(114) : error 017: undefined symbol "playerid"
    C:\Users\NB\Desktop\DMSERVER\gamemodes\DM.pwn(115) : error 017: undefined symbol "playerid"
    C:\Users\NB\Desktop\DMSERVER\gamemodes\DM.pwn(116) : error 017: undefined symbol "playerid"
    C:\Users\NB\Desktop\DMSERVER\gamemodes\DM.pwn(117) : error 017: undefined symbol "playerid"
    C:\Users\NB\Desktop\DMSERVER\gamemodes\DM.pwn(118) : error 017: undefined symbol "playerid"
    C:\Users\NB\Desktop\DMSERVER\gamemodes\DM.pwn(146) : warning 217: loose indentation
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    10 Errors.

  • Da brauchen wir dann jetzt schon den Code. (Scheint sich laut Zeilenangaben um etwas anderes zu handeln)




    Textdraw33 = TextDrawCreate(6.559257, 427.583282, "ReaL-Deathmatch");
    TextDrawLetterSize(Textdraw33, 0.449999, 1.600000);
    TextDrawAlignment(Textdraw33, 1);
    TextDrawColor(Textdraw33, 503382015);
    TextDrawSetShadow(Textdraw33, 0);
    TextDrawSetOutline(Textdraw33, -1);
    TextDrawBackgroundColor(Textdraw33, 51);
    TextDrawFont(Textdraw33, 1);
    TextDrawSetProportional(Textdraw33, 1);


    //Player Textdraws:

    Textdraw32[playerid] = CreatePlayerTextDraw(playerid, 641.531494, 427.916687, "usebox");
    PlayerTextDrawLetterSize(playerid, Textdraw32[playerid], 0.000000, 2.016664);
    PlayerTextDrawTextSize(playerid, Textdraw32[playerid], -2.000000, 0.000000);
    PlayerTextDrawAlignment(playerid, Textdraw32[playerid], 1);
    PlayerTextDrawColor(playerid, Textdraw32[playerid], 0);
    PlayerTextDrawUseBox(playerid, Textdraw32[playerid], true);
    PlayerTextDrawBoxColor(playerid, Textdraw32[playerid], 102);
    PlayerTextDrawSetShadow(playerid, Textdraw32[playerid], 0);
    PlayerTextDrawSetOutline(playerid, Textdraw32[playerid], 0);
    PlayerTextDrawFont(playerid, Textdraw32[playerid], 0);


  • Ja genau aber wo? Weil in OnGameModeInit ist playerid nicht deklariert.


    so nun unter onplayer connect


    error
    C:\Users\NB\Desktop\DMSERVER\gamemodes\DM.pwn(133) : error 035: argument type mismatch (argument 2)
    C:\Users\NB\Desktop\DMSERVER\gamemodes\DM.pwn(202) : warning 217: loose indentation
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.




    Zeile:


    TextDrawShowForPlayer(playerid,Textdraw32);



    Oben:


    new PlayerText:Textdraw32[MAX_PLAYERS];



    Was falsch?