[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
  • An welchen stellen im GF kann ich bestimmen wieviel Liter Tank ein Car hat?
    weil jedesmal wenn ich mir ein Car kaufe sind nur 1l im Tank


    //e


    nocheine frage


    wie muss ich das scripten dass, das Jetpack gelöscht wird wenn man ihn verlässt?


    if(strcmp("/jetpack", cmd, true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] >= 2001)
    {
    SetPlayerSpecialAction(playerid,2);
    format(string,sizeof(string),"%s hat jetpack gemacht.",sendername);
    return 1;
    }
    }
    }

    Einmal editiert, zuletzt von maax97 ()

  • Hey,


    Wie hies nochmal die linke Steuerungtaste komme mit der Flat net aufs Wiki ^^


    Danke


    Was meinste mit Steuerungstaste??
    KEY_JUMP ??

  • Mal so ne Frage:


    Ich habe einen Radius (sagen wir mal 400 Meter) und ich möchte diesen auf der Minimap visuell sichtbar machen. Dann müsste ich ja mehrere GangZones nutzen und diese so anordnen, dass in etwa ein Kreis bei rauskommt (mit vielen kleinen Kanten, aber besser gehts halt nicht).


    Hat da jemand eine Funktion parat, die genau das macht? Ich meine ich hätte vor einiger Zeit mal was bezüglich dieses Problems gelesen, bin mir aber nicht mehr ganz sicher.

  • new PlayerText:TD1[MAX_PLAYERS];


    //GamemodeInit


    TD1 = CreatePlayerTextDraw(3.666702, 281.659332, "/god:");
    PlayerTextDrawLetterSize(TD1, 0.285999, 1.371851);
    PlayerTextDrawAlignment(TD1, 1);
    PlayerTextDrawColor(TD1, -1);
    PlayerTextDrawSetShadow(TD1, 2);
    PlayerTextDrawSetOutline(TD1, 0);
    PlayerTextDrawBackgroundColor(TD1, 51);
    PlayerTextDrawFont(TD1, 2);
    PlayerTextDrawSetProportional(TD1, 1);


    //PlayerConnect


    new text[32];
    switch(God[playerid])
    {
    case 0: format(text, sizeof(text), "/god: AUS");
    case 1: format(text, sizeof(text), "/god: AN");
    }
    PlayerTextDrawSetString(playerid,text,TD1);
    PlayerTextDrawShow(playerid, TD1[playerid]);



    Warum bekomme ich:


  • C:\Users\Performer\Desktop\Legendary Stunting\gamemodes\mainscript.pwn(164) : error 017: undefined symbol "playerid"
    C:\Users\Performer\Desktop\Legendary Stunting\gamemodes\mainscript.pwn(165) : error 017: undefined symbol "playerid"
    C:\Users\Performer\Desktop\Legendary Stunting\gamemodes\mainscript.pwn(166) : error 017: undefined symbol "playerid"
    C:\Users\Performer\Desktop\Legendary Stunting\gamemodes\mainscript.pwn(167) : error 017: undefined symbol "playerid"
    C:\Users\Performer\Desktop\Legendary Stunting\gamemodes\mainscript.pwn(168) : error 017: undefined symbol "playerid"
    C:\Users\Performer\Desktop\Legendary Stunting\gamemodes\mainscript.pwn(169) : error 017: undefined symbol "playerid"
    C:\Users\Performer\Desktop\Legendary Stunting\gamemodes\mainscript.pwn(170) : error 017: undefined symbol "playerid"
    C:\Users\Performer\Desktop\Legendary Stunting\gamemodes\mainscript.pwn(171) : error 017: undefined symbol "playerid"
    C:\Users\Performer\Desktop\Legendary Stunting\gamemodes\mainscript.pwn(172) : error 017: undefined symbol "playerid"
    C:\Users\Performer\Desktop\Legendary Stunting\gamemodes\mainscript.pwn(208) : error 035: argument type mismatch (argument 2)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    10 Errors.



    ;)

  • OnGameModeInit hat keinen Parameter playerid. Also entweder du erstellst das TextDraw wenn ein Spieler Connected (OnPlayerConnect) und zerstörst es wenn er disconnected (OnPlayerDisconnect)


    oder


    du lässt bei OnGameModeInit eine for loop mit Maximum MAX_PLAYERS laufen.


    new PlayerText:TD1[MAX_PLAYERS];


    //GamemodeInit
    for(new playerid = 0;playerid<MAX_PLAYERS;playerid++)
    {
    TD1[playerid] = CreatePlayerTextDraw(3.666702, 281.659332, "/god:");
    PlayerTextDrawLetterSize(TD1[playerid] , 0.285999, 1.371851);
    PlayerTextDrawAlignment(TD1[playerid] , 1);
    PlayerTextDrawColor(TD1[playerid] , -1);
    PlayerTextDrawSetShadow(TD1[playerid] , 2);
    PlayerTextDrawSetOutline(TD1[playerid] , 0);
    PlayerTextDrawBackgroundColor(TD1[playerid] , 51);
    PlayerTextDrawFont(TD1[playerid] , 2);
    PlayerTextDrawSetProportional(TD1[playerid] , 1);
    }
    //PlayerConnect


    new text[32];
    switch(God[playerid])
    {
    case 0: format(text, sizeof(text), "/god: AUS");
    case 1: format(text, sizeof(text), "/god: AN");
    }
    PlayerTextDrawSetString(playerid,text,TD1[playerid] );
    PlayerTextDrawShow(playerid, TD1[playerid]);


    Besser wäre es aber wohl wirklich das beim Connected zu erstellen.


  • das wird nicht funktionieren ;) Wenn du PlayerTextDraws erstellst während die playerid Offline ist, passiert rein gar nichts :whistling:


    Eine frage, benutze die PlayerTextdraws mit "new PlayerText:tScore" nicht wie im Wiki mit "new PlayerText:tScore[MAX_PLAYERS]" aber alles klappt super ohne fehler, weißt du villeicht wieso?


  • Eine frage, benutze die PlayerTextdraws mit "new PlayerText:tScore" nicht wie im Wiki mit "new PlayerText:tScore[MAX_PLAYERS]" aber alles klappt super ohne fehler, weißt du villeicht wieso?


    das funktioniert nur solange ALLE textdraws in der GLEICHEN Reihenfolge für JEDEN Spieler erstellt werden.


    TextDraw A -> id 0
    TextDraw B -> id 1
    TextDraw C -> id 2


    sofern alle PlayerTextDraws nur in OnPlayerConnect erstellt werden ist das mit der gleichen Reihenfolge gegeben... wenn jetzt aber einzelne PlayerTextDraws für Spieler später durch Commands( etc. ) erstellt werden ist die gleiche Reihenfolge der IDs in Gefahr


    deshalb verwendet man lieber [MAX_PLAYERS] und ist auf der sicheren Seite

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