[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
  • Copyright = TextDrawCreate(27.000000, 424.000000, "PayDay in : %d/60");
    TextDrawAlignment(Copyright[playerid],0);
    TextDrawBackgroundColor(Copyright[playerid],0x000000FF);
    TextDrawFont(Copyright[playerid], 3);
    TextDrawLetterSize(Copyright[playerid], 0.340000, 1.600000);
    //TextDrawColor(Copyright[playerid], 0xEB0000FF);
    TextDrawSetOutline(Copyright[playerid], 1);
    TextDrawSetProportional(Copyright[playerid], 1);
    TextDrawShowForAll(Copyright[playerid]);


    so war es vorher.


    Wenn ich es ohne die Playerid mache.


    Kommen 8x Diese errors in den zeilen oben^^.


    error 033: array must be indexed (variable "Copyright")
    error 035: argument type mismatch (argument 1)

  • Wie soll man dir denn helfen wenn du die Fehler und die Zeile dazu Nicht schickst?

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

  • @Intelcore: Füg es so ein , du hattest nämlich wieder globale Textdraws erstellt und PlayerTextDrawSetString verwendet.. Das geht nicht


    Füg das ganze einfach ein :)


  • Da sind die errors wie gesagt von allem ein bisschen, aber nur verursacht davon:


    dcmd_a(playerid,params[])
    {
    if(sSpieler[playerid][Adminlevel] < 1) return SendClientMessage(playerid,Weiß,"Du bist kein Admin!");
    {
    new text[256];
    new spielername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,spielername,sizeof(spielername));
    if(sscanf(params,"s",text))
    return SendClientMessage(playerid,Weiß,"Info: /a (text)");
    format(text,sizeof(text),"Adminchat %s: %s",spielername,text);
    SendAdminMessage(Weiß,text);
    return 1;
    }


    adminchat
    und der stock dazu:


    //ADMINNACHRICHTEN
    stock SendAdminMessage(farbe,string[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(sSpieler[i][Adminlevel] >= 1)
    {
    SendClientMessage(i, farbe, string);
    }
    }
    }


    und das gleiche für fraktionen


    dcmd_f(playerid,params[])
    {
    if(sSpieler[playerid][Fraktion] = 1)
    {
    new text[256];
    new spielername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,spielername,sizeof(spielername));
    if(sscanf(params,"s",text))
    return SendClientMessage(playerid,Weiß,"Info: /f (text)");
    format(text,sizeof(text),"Fraktionschat %s: %s",spielername,text);
    SendAdminMessage(Weiß,text);
    return 1;
    }


    //FRAKTIONSNACHRICHTEN
    stock SendFraktionMessage(farbe,string[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(sSpieler[i][Fraktion] >= 1 || <= 2)
    {
    SendClientMessage(i,farbe,string);
    }
    }
    }


    er meckert aber auch ohne das mit der fraktion.
    wenn ich den command /a lösche gibt es keine errors, also kann meiner meinung nach nur was daran falsch sein

  • also ansich funktioniert es, nur das bei den Fraktionen nicht unterschieden wird welche frak er ist -> jeder kann den fraktionschat lesen
    außerdem buggt mein /makeleader jetzt rum und leadert nur den, der den befehl eingibt. der spieler der geleadert werden soll, bekommt nur die Messages davon.

    Einmal editiert, zuletzt von NoxiZ ()

  • So wie ich das sehe willst du Fraktion 1 und 2 die Nachricht senden. Dann schreibe es so:
    //FRAKTIONSNACHRICHTEN
    stock SendFraktionMessage(farbe,string[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(sSpieler[i][Fraktion] >= 1 && sSpieler[i][Fraktion] <= 2)
    {
    SendClientMessage(i,farbe,string);
    }
    }
    }


    Außerdem musst du im /f Befehl SendFraktionMessage machen, anstatt SendAdminMessage.

  • Na die abfrage soll bloß dafür sein wer welchen chat sehen kann.
    Also grovechat nur für spieler in fraktion 1
    Ballaschat nur für spieler von fraktion 2



    //FRAKTIONSNACHRICHTEN
    stock SendFraktionMessage(fraktion,farbe,string[]){
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(sSpieler[i][Fraktion] == fraktionid )SendClientMessage(i,farbe,string);
    }
    }

  • Jeffry: @[MRPG]AyKut:


    Also zu Jeffry seiner frage. Die Errors kommen hier.


    Copyright = CreatePlayerTextDraw(playerid,27.000000, 424.000000, "Payday : 0/60");
    PlayerTextDrawAlignment(playerid,Copyright,0);
    PlayerTextDrawBackgroundColor(playerid,Copyright,0x000000FF);
    PlayerTextDrawFont(playerid,Copyright, 3);
    PlayerTextDrawLetterSize(playerid,Copyright, 0.340000, 1.600000);
    PlayerTextDrawColor(playerid,Copyright, 0xEB0000FF);
    PlayerTextDrawSetOutline(playerid,Copyright, 1);
    PlayerTextDrawSetProportional(playerid,Copyright, 1);
    PlayerTextDrawShow(playerid,Copyright);


    Und zu dir Aykut das funktioniert nicht ganz. Kommen die selben errors.