[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
  • Kriege Errors:

    .pwn(8364) : error 017: undefined symbol "string"
    .pwn(8364) : error 017: undefined symbol "string"
    .pwn(8364) : error 029: invalid expression, assumed zero
    .pwn(8364) : fatal error 107: too many error messages on one line


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




    4 Errors.


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    ForAllPlayers(i)
    {
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(i, sendername, sizeof(sendername));
    if(newstate == PLAYER_STATE_DRIVER)
    {
    PlayerEnterTime[playerid] = GetTickCount();
    }
    else if(oldstate == PLAYER_STATE_DRIVER)
    {
    if((GetTickCount()-PlayerEnterTime[playerid]) < 220)//player entered and exited vehicle faster than 220 ms.
    {
    format(string, sizeof(string), "SERVERGUARD: %s wurde gebannt. Grund: Vehicle Teleport", sendername);
    SendClientMessageToAll(COLOR_LIGHTRED, string);
    SendClientMessage(i,COLOR_GRAD3, "Du wurdest vom Serverguard gebannt, sollte es sich hierbei um ein Versehen handeln,");
    SendClientMessage(i,COLOR_GRAD3, "erstelle hiervon ein Screen (F8) und Erstelle im Forum einen Entbannantrag.");
    BanSelfmade(i, -1, "Vehicle Teleport", -1, 1);
    }
    }
    }

  • Diese ForAllPlayers Loop macht da irgendwie keinen Sinn.


    Machs mal so:


    ast2ufdyxkb1.png


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

  • Hey,


    ich kann auch etwas Scripten und ich habe eine Frage, wenn man auf meinem Server betreten sollten die "Spieler" 10 Sekunden warten und dann in einer andere Virtuelle Welt spawn. Wie macht man sowas ?

  • Hey,


    ich kann auch etwas Scripten und ich habe eine Frage, wenn man auf meinem Server betreten sollten die "Spieler" 10 Sekunden warten und dann in einer andere Virtuelle Welt spawn. Wie macht man sowas ?

    Wurde doch schon beantwortet...


    Du freezt alle Spieler..und dann setzt du diese mit SetPlayerVirtualWorld alle in deine gewünschte Welt..

    ast2ufdyxkb1.png


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

  • Kann mir jemand sagen warum die == 1 abfrage nicht geht.



  • public OnPlayerText(playerid, text[])
    {
    new Float:x, Float:Y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    new string[128]
    format(string,sizepf(string), "%s sagt: %s",
    getPlayerName(playerid), text);


    new chat_color;


    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!IsPlayerInRangeOfPoint(i, CHAT_RADIUS, x, y, z))continue;
    new Float:distance = GetPlayerDistanceFromPoint(i, x, y, z);
    if(distance < CHAT_RADIUS / CHAT_FADES)
    {
    chat_color = COLOR_CHAT;
    }
    else if(distance < CHAT_RADIUS / CHAT_FADES * 2)
    {
    chat_color = COLOR_CHAT1;
    }
    else if(distance < CHAT_RADIUS / CHAT_FADES * 3)
    {
    chat_color = COLOR_CHAT2;
    }
    else if(distance < CHAT_RADIUS / CHAT_FADES * 4)
    {
    chat_color = COLOR_CHAT3;
    }
    else if(distance <= CHAT_RADIUS / CHAT_FADES * 4)
    {
    chat_color = COLOR_CHAT4;
    }
    SendClientMessage(i, chat_color, string);
    }
    return 0;
    }




    C:\Users\User\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1773) : error 035: argument type mismatch (argument 2)


    C:\Users\User\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1780) : error 017: undefined symbol "y"


    C:\Users\User\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1783) : error 001: expected token: ";", but found "-identifier-"


    C:\Users\User\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1783) : error 017: undefined symbol "sizepf"


    C:\Users\User\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1791) : error 017: undefined symbol "y"


    C:\Users\User\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1792) : error 017: undefined symbol "GetPlayerDistanceFromPoint"


    C:\Users\User\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1799) : error 017: undefined symbol "COLOR_CHAT1"


    C:\Users\User\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1803) : error 017: undefined symbol "COLOR_CHAT2"


    C:\Users\User\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1807) : error 017: undefined symbol "COLOR_CHAT3"


    C:\Users\User\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1811) : error 017: undefined symbol "COLOR_CHAT4"


    C:\Users\User\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1779) : warning 203: symbol is never used: "Y"

    2 Mal editiert, zuletzt von PHP-Typ ()

  • C:\Users\Unbekannt\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1773) : error 035: argument type mismatch (argument 2)C:\Users\Unbekannt\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1780) : error 017: undefined symbol "y"C:\Users\Unbekannt\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1783) : error 001: expected token: ";", but found "-identifier-"C:\Users\Unbekannt\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1783) : error 017: undefined symbol "sizepf"C:\Users\Unbekannt\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1791) : error 017: undefined symbol "y"C:\Users\Unbekannt\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1792) : error 017: undefined symbol "GetPlayerDistanceFromPoint"C:\Users\Unbekannt\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1799) : error 017: undefined symbol "COLOR_CHAT1"C:\Users\Unbekannt\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1803) : error 017: undefined symbol "COLOR_CHAT2"C:\Users\Unbekannt\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1807) : error 017: undefined symbol "COLOR_CHAT3"C:\Users\Unbekannt\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1811) : error 017: undefined symbol "COLOR_CHAT4"C:\Users\Unbekannt\Desktop\Fade-Copchase\gamemodes\Fade-Copchase .pwn(1779) : warning 203: symbol is never used: "Y"


    public OnPlayerText(playerid, text[]){new Float:x, Float:Y, Float:z;GetPlayerPos(playerid, x, y, z);new string[128]format(string,sizepf(string), "%s sagt: %s",getPlayerName(playerid), text);new chat_color;for(new i=0; i<MAX_PLAYERS; i++){if(!IsPlayerConnected(i))continue;if(!IsPlayerInRangeOfPoint(i, CHAT_RADIUS, x, y, z))continue;new Float:distance = GetPlayerDistanceFromPoint(i, x, y, z);if(distance < CHAT_RADIUS / CHAT_FADES){chat_color = COLOR_CHAT;}else if(distance < CHAT_RADIUS / CHAT_FADES * 2){chat_color = COLOR_CHAT1;}else if(distance < CHAT_RADIUS / CHAT_FADES * 3){chat_color = COLOR_CHAT2;}else if(distance < CHAT_RADIUS / CHAT_FADES * 4){chat_color = COLOR_CHAT3;}else if(distance <= CHAT_RADIUS / CHAT_FADES * 4){chat_color = COLOR_CHAT4;}SendClientMessage(i, chat_color, string);}return 0;}


    • Was habe ich falsch gemacht? :D Außer Chat Color^^

    es falsch eingefügt hier ^^
    Mach es mal Leserlich

  • Beitrag von PHP-Typ ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Habs ().
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Hey,
    hab gerade paar Textdraws eingefügt:

    new Text:paydaygehalt[MAX_PLAYERS];
    new Text:paydaysteuern[MAX_PLAYERS];
    new Text:paydaymiete[MAX_PLAYERS];
    new Text:paydaystrom[MAX_PLAYERS];
    new Text:paydayzinsen[MAX_PLAYERS];
    new Text:paydayzinsenerhalten[MAX_PLAYERS];
    new Text:paydayversicherung[MAX_PLAYERS];
    new Text:paydayrespekt[MAX_PLAYERS];
    new Text:paydayalterkontostand[MAX_PLAYERS];
    new Text:paydayneuerkontostand[MAX_PLAYERS];

    Habs bei den anderen (paydaysteuern, paydaymiete etc. auch so gemacht:

    paydaygehalt[i] = TextDrawCreate(403.000000, 150.080017, "Gehalt:");
    TextDrawLetterSize(paydaygehalt[i], 0.319499, 1.348000);
    TextDrawAlignment(paydaygehalt[i], 1);
    TextDrawColor(paydaygehalt[i], -1);
    TextDrawSetShadow(paydaygehalt[i], 0);
    TextDrawSetOutline(paydaygehalt[i], 1);
    TextDrawBackgroundColor(paydaygehalt[i], 51);
    TextDrawFont(paydaygehalt[i], 1);
    TextDrawSetProportional(paydaygehalt[i], 1);


    //Gehalt
    TextDrawShowForPlayer(i, paydaygehalt[i]);
    format(string, sizeof(string), "Gehalt: %s~g~$", GetPoint(GehaltCheck));
    TextDrawSetString(paydaygehalt[i], string);
    GetPlayerName(i, playername, sizeof(playername));
    TextDrawShowForPlayer(i, paydaysteuern[i]);

    Es funktioniert alles aber andere Textdraws wie zum Beispiel Uhrzeit, Datum etc. werden wiederum nicht angezeigt. Woran könnte das liegen?


  • Wie kann man abfragen das der Admin online ist? Kann mir das jemand machen bitte? :D

  • Einfach prüfen:


    ast2ufdyxkb1.png


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

  • Dies ist mein aktueller /giverank Befehl für alle Fraktionen.
    Habe momentan 5 im Script. Funktioniert soweit alles gut.
    Wie gebe ich nun aber Jeder Ziffer 1 - 6 einen Namen und das für jede Fraktion?


    dcmd_giverank(playerid,params[])
    {
    new pid, rang, spieler[256], leader[256];
    new spielername[MAX_PLAYER_NAME];
    new leadername[MAX_PLAYER_NAME];
    GetPlayerName(pid,leadername,sizeof(leadername));
    GetPlayerName(playerid,spielername,sizeof(spielername));
    if(sscanf(params,"ud",pid,rang)) return SendClientMessage(playerid,Weiß,"Info: /giverank (playerid)(rang)");
    if(pid == INVALID_PLAYER_ID) return SendClientMessage(playerid,Weiß,"Der Spieler mit dieser ID ist nicht Online!");
    if(sSpieler[playerid][Leader] < 1) return SendClientMessage(playerid,Weiß,"Du bist kein Leader!");
    if(pid == playerid) return SendClientMessage(playerid,Weiß,"Du kannst dir nicht selbst einen Rang geben!");
    if(rang < 1 || rang > 6) return SendClientMessage(playerid,Weiß,"Der Rang muss zwischen 1 und 6 liegen!");
    if(sSpieler[playerid][Leader] >= 1)
    {
    sSpieler[pid][Rang] = rang;
    format(spieler,sizeof(spieler),"Du wurdest von %s zum Rang %d gemacht",leadername,rang);
    format(leader,sizeof(leader),"Du hast %s Rang %d gegeben.",spielername,rang);
    SendClientMessage(pid,Weiß,spieler);
    SendClientMessage(playerid,Weiß,leader);
    }
    return 1;
    }
    ich glaub nicht das, das klappt.. ^^ weil du rang ja setzen willst.. und du schon Rang vorher definiert hast mit new rang = sSpieler[playerid][Rang];
    Mach das mal soo


    Mit einer if Abfrage kannst du das machen
    z.B.
    [pwn]if(sSpieler[playerid][Rang] == 1 && sSpieler[playerid][Member] == 1){ SendClientMessage(playerid, -1, "Rang 1"); }
    [/pwn]


    Mehr transparents zu der Community!
    Aber bitte künftig: Transparenz und nicht Transparents

  • Fade-Copchase .pwn(1798) : error 010: invalid function or declaration

    Einfach prüfen:


    stock IsPlayerOnline(const name[])
    {
    for(new i=GetPlayerPoolSize(),n[MAX_PLAYER_NAME]; i!=-1; i--)
    {
    if(GetPlayerName(i,n,MAX_PLAYER_NAME) && !strcmp(n,name)) return 1;
    }
    return 0;
    }
    //Und dann so prüfen:
    if(IsPlayerOnline("Nicorow"))
    {
    SendClientMessage(playerid,WEIß,"ONLINE");
    }

    Einmal editiert, zuletzt von PHP-Typ ()

  • Also diesen Fehler bekomme ich nicht..


    Ich weiß nicht worein du das kopiert hast..und was genau in dieser Zeile steht..aber es liegt nicht an meinem Code...

    ast2ufdyxkb1.png


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

  • Da du alle Textdraws für alle Spieler (auch wenn die playerid niemals online sein wird) erstellst, sprengst du das Limit von 2048 Textdraws.http://wiki.sa-mp.com/wiki/Limits


    Nutze für ein solches Vorhaben PlayerTextDraws, dafür sind diese da.
    http://wiki.sa-mp.com/wiki/CreatePlayerTextDraw

    Habs jetzt so:
    new PlayerText:paydaygehalt[MAX_PLAYERS];
    In OnGameModeInit:

    for(new i = 0; i < MAX_PLAYERS; i++){
    paydaygehalt[i] = CreatePlayerTextDraw(i, 403.000000, 150.080017, "Gehalt:");
    PlayerTextDrawLetterSize(i, paydaygehalt[i], 0.319498, 1.348000);
    PlayerTextDrawAlignment(i, paydaygehalt[i], 1);
    PlayerTextDrawColor(i, paydaygehalt[i], -1);
    PlayerTextDrawSetShadow(i, paydaygehalt[i], 0);
    PlayerTextDrawSetOutline(i, paydaygehalt[i], 1);
    PlayerTextDrawBackgroundColor(i, paydaygehalt[i], 51);
    PlayerTextDrawFont(i, paydaygehalt[i], 1);
    PlayerTextDrawSetProportional(i, paydaygehalt[i], 1);
    }

    Funktioniert, kriege aber das darauffolgende warning:

    //Gehalt
    TextDrawShowForPlayer(i, paydaygehalt[i]); //Hier ein warning
    format(string, sizeof(string), "Gehalt: %s~g~$", GetPoint(GehaltCheck));
    TextDrawSetString(paydaygehalt[i], string); //und hier ein warning
    GetPlayerName(i, playername, sizeof(playername));


    warning 213: tag mismatch
    warning 213: tag mismatch

  • Da du PlayerTextDraws nutzt, musst du auch dessen Funktionen verwenden.


    Also:


    C
    PlayerTextDrawShow(i, paydaygehalt[i]); //Hier ein warning
    format(string, sizeof(string), "Gehalt: %s~g~$", GetPoint(GehaltCheck));
    PlayerTextDrawSetString(i, paydaygehalt[i], string); //und hier ein warning
    GetPlayerName(i, playername, sizeof(playername));

    ast2ufdyxkb1.png


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

  • Da du PlayerTextDraws nutzt, musst du auch dessen Funktionen verwenden.


    Also:


    C
    PlayerTextDrawShow(i, paydaygehalt[i]); //Hier ein warning
    format(string, sizeof(string), "Gehalt: %s~g~$", GetPoint(GehaltCheck));
    PlayerTextDrawSetString(i, paydaygehalt[i], string); //und hier ein warning
    GetPlayerName(i, playername, sizeof(playername));

    Warnings sind weg, nur werden die Textdraws nicht angezeigt.

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