[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
  • Ich hab nen kleines Problem
    Bei der Funktion zeigt er mir alles an.
    new Inhalt[60+sizeof(JobInfo)];
    for(new j = 0; j < sizeof(JobInfo); j ++)
    {
    if(JobInfo[j][JobID] == PlayerInfo[playerid][Job])
    {
    if(GetVehicleModel(vehicleid) == JobInfo[j][JobVehicle])
    {
    format(Inhalt,sizeof(Inhalt),"%s\n%s",Inhalt,JobInfo[j][JobText]);
    }
    }
    }
    ShowPlayerDialog(playerid,diaJobWahl,DIALOG_STYLE_LIST,"Welche Tour soll es sein?",Inhalt,"Wählen","Abbruch");
    Klick ich aber eins an, verschieben sich die werte und es wierden nur die ersten 2 auswählbar.
    case diaJobWahl:
    {
    if(response)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    for(new j = 0; j < sizeof(JobInfo); j ++)
    {
    if(JobInfo[j][JobID] == PlayerInfo[playerid][Job])
    {
    if(GetVehicleModel(vehicleid) == JobInfo[j][JobVehicle])
    {
    if(!strcmp(JobInfo[j][JobText],JobInfo[listitem][JobText],true))
    {
    format(query,128,"~> %s",JobInfo[listitem][JobText]);
    SendClientMessage(playerid,cGreen,query);
    SendClientMessage(playerid,cGreen,"~> Fahre zum Flughafen und besorge einen Container");
    PlayerInfo[playerid][JobRoute] = listitem;
    return 1;
    }
    }
    }
    }
    SendClientMessage(playerid,cWarn,"~> Fehler im System! Bitte wähle eine andere Route");
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    PlayerInfo[playerid][JobRoute] = 0;
    }
    return 1;
    }
    Ich habe schon einiges versucht aber es kommt immer das selbe bei raus
    Die Jobrouten werden hier alle eingetragen:
    new JobInfo[][JobEnum]=
    {
    {jTrucker, 578, "Die Baustelle", 2422.8518,1923.7631,5.7201},
    {jTrucker, 578, "Die Einkaufspassgae", 2831.9189,2395.0381,10.5249},
    {jTrucker, 560, "Test", 2244.7222,2230.9717,10.4690},
    {jTrucker, 578, "Das Holtel", 2244.7222,2230.9717,10.4690},
    {jTrucker, 578, "Das Autohaus", 2189.5784,1386.8009,10.5254}
    };
    Sobald er den wert Test im dialog anzeigen soll, verschieben sich die Jobs oder ich bekomm die Fehlermeldung angezeigt.
    Ich hoffe, das einr dazu eine idee hat

    All in all it's just another brick in the wall

  • Wie bekomm ich das weg?

    Code
    local variable "hunger" shadows a variable at a preceding level

    Spoiler anzeigen
    ocmd:sethunger(playerid,params[])
    {
    new hunger,pID,string1[256],string2[256]; //betroffene Zeile
    if(!IsPlayerAnAdmin(playerid,200)) return SendClientMessage(playerid,rot,"Du hast nicht das nötige Adminlevel!");
    if(sscanf(params,"ud",pID,hunger)) return SendClientMessage(playerid,rot,"Benutze: /sethunger [Name/ID] [0-100]");
    if(hunger<=0 || hunger>=100) return SendClientMessage(playerid,rot,"[Fehler]: Der Wert darf nicht weniger als 0 und nicht mehr als 100 betragen!");
    format(string1,sizeof(string1),"Dein 'Hunger' wurde von Admin %s auf %d gesetzt.",SpielerName(playerid),hunger);
    format(string2,sizeof(string2),"Du hast den 'Hunger' von %s auf %d gesetzt.",SpielerName(pID),hunger);
    SendClientMessage(pID,grau,string1);
    SendClientMessage(playerid,grau,string2);
    SpielerInfo[pID][pHunger] = hunger;
    ShowBedu(pID);
    return 1;
    }


    - Tomsen


  • Globale Variable mit der Bezeichnung "hunger" vorhanden? Könnte auch ein Public, Array o.ä. sein.


    Der Compiler sagt dir ja, dass es diese Variable schon irgendwo gibt, da du in deiner Funktion die Variable "hunger" nicht 2 mal deklariert hast, müsste sie auf jeden Fall global irgendwo sein. :)

  • Ich bekomme hier Fehler weiß aber nicht wodran es liegt :/


    Bread.pwn(2858) : error 029: invalid expression, assumed zero



    1 Error.


    dcmd_showpda(playerid,params[])
    {
    #pragma unused params
    if(PlayerInfo[playerid][PDA]== 1)
    {
    {
    for(new i=0;i<5;i++)
    TextDrawHideForPlayer(playerid, StatsDraw[playerid][i]);
    }
    else
    {
    for(new i=0;i<5;i++)
    TextDrawShowForPlayer(playerid, StatsDraw[playerid][i]);
    return 1;
    }


    }
    return 1;
    }


    Die zeile ist beim "else"

    ↓Das ist der Youtube Channel von mir und meinen Kollegen↓



    Sa-Mp Server [Im Aufbau/Beta]
    128.65.216.200:7777


  • Wo ist die if-Abfrage geblieben? 8|


    Probier mal folgendes:
    dcmd_showpda(playerid,params[])
    {
    #pragma unused params
    if(PlayerInfo[playerid][PDA]== 1)
    {
    for(new i=0;i<5;i++)
    ´ {
    TextDrawHideForPlayer(playerid, StatsDraw[playerid][i]);
    }
    }
    else
    {
    for(new i=0;i<5;i++)
    ´ {
    TextDrawShowForPlayer(playerid, StatsDraw[playerid][i]);
    }
    return 1;
    }
    return 1;
    }

  • hallo,


    mein problem ist ich möchte dem gekillten in einem PVarInt +1 gegeben.
    Hier Code:

    SetPVarInt(playerid,"deads","+1");


    Fehler:

    C:\Users\User\Desktop\MCAnims\gamemodes\selfmade.pwn(79) : error 035: argument type mismatch (argument 3)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


  • UPPPS sehe ich jetzt erst :/
    elyday
    public OnPlayerDeath(playerid, killerid, reason)
    {
    if(IsPlayerConnected(killerid) && killerid != playerid)
    {
    SendClientMessage(killerid,FARBE, "Du hast ein Verbrechen begangen");
    SetPVarInt(playerid,"kills","+1");
    SendClientMessage(playerid,FARBE,"Du bist Gestorben");
    SetPVarInt(playerid,"deads","+1");
    }
    return 1;
    }

    ↓Das ist der Youtube Channel von mir und meinen Kollegen↓



    Sa-Mp Server [Im Aufbau/Beta]
    128.65.216.200:7777



  • SetPVarInt(playerid,"deads",GetPVarInt(playerid,"deads") + 1);


    Du musst auch erstmal die aktuelle Anzahl der Tode auslesen, dann kannst du anschließend etwas dazu addieren.

  • danke an beide.


    //Edit:
    Macht das so sinn?

    if(GetPVarInt(playerid,"World") == 1)
    {
    SetPVarInt(playerid,"deads",GetPVarInt(playerid,"deads") + 1);
    SendClientMessage(playerid,ROT,"Du bist gestorben.");
    }
    else if(GetPVarInt(killerid,"World") == 1)
    {
    SetPVarInt(killerid,"kills",GetPVarInt(killerid,"kills") + 1);
    SendClientMessage(playerid,BLAU,"Du hast jemanden getötet.");
    }


  • __________________________________________________________________________________________________
    So muss das :)
    bei deinem Kamen Errors
    dcmd_showpda(playerid,params[])
    {
    #pragma unused params
    if(PlayerInfo[playerid][PDA]== 1) return SendClientMessage(playerid,Rot, "Du hast kein PDA");
    {
    for(new i=0;i<5;i++)
    TextDrawHideForPlayer(playerid, StatsDraw[playerid][i]);
    }
    else//Zeile2857
    {
    for(new i=0;i<5;i++)
    TextDrawShowForPlayer(playerid, StatsDraw[playerid][i]);
    return 1;
    }
    return 1; //Zeile 2863
    }


    jedoch bekomme ich wieder Errors :/
    diese Errors:
    Bread.pwn(2857) : error 029: invalid expression, assumed zero
    Bread.pwn(2863) : warning 225: unreachable code
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

    ↓Das ist der Youtube Channel von mir und meinen Kollegen↓



    Sa-Mp Server [Im Aufbau/Beta]
    128.65.216.200:7777

    Einmal editiert, zuletzt von EliteBread () aus folgendem Grund: 2xtext Errors

  • bin grad dabei das ganze am verfoständigen.
    Nun errors:

    C:\Users\User\Desktop\MCAnims\gamemodes\selfmade.pwn(339) : error 037: invalid string (possibly non-terminated string)
    C:\Users\User\Desktop\MCAnims\gamemodes\selfmade.pwn(339) : warning 215: expression has no effect
    C:\Users\User\Desktop\MCAnims\gamemodes\selfmade.pwn(339) : error 001: expected token: ";", but found ")"
    C:\Users\User\Desktop\MCAnims\gamemodes\selfmade.pwn(339) : error 029: invalid expression, assumed zero
    C:\Users\User\Desktop\MCAnims\gamemodes\selfmade.pwn(339) : 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.

    //Edit: Fehler gesehen ^^


    Code:

    ShowPlayerDialog(playerid,DIALOG_AUSWAHL,DIALOG_STYLE_LIST,"Auswahl","TDM Welt\nStunt Welt (In Bau!)\nGun Game (In Bau!)","Okay,"");

  • Du hast hinten 2 "" mach das mal so
    ShowPlayerDialog(playerid,DIALOG_AUSWAHL,DIALOG_STYLE_LIST,"Auswahl","TDM Welt\nStunt Welt (In Bau!)\nGun Game (In Bau!)","Okay,");



    PS: ^Mein Problem weiter oben ist auch noch nicht gelöst^ :)

    ↓Das ist der Youtube Channel von mir und meinen Kollegen↓



    Sa-Mp Server [Im Aufbau/Beta]
    128.65.216.200:7777

    Einmal editiert, zuletzt von EliteBread () aus folgendem Grund: Text

  • PS: ^Mein Problem weiter oben ist auch noch nicht gelöst^ :)


    Teste mal das hier
    dcmd_showpda(playerid,params[])
    {
    #pragma unused params
    if(PlayerInfo[playerid][PDA] != 1)
    {
    for(new i=0;i<5;i++)
    TextDrawHideForPlayer(playerid, StatsDraw[playerid][i]);
    return SendClientMessage(playerid,Rot, "Du hast kein PDA");
    }
    else
    {
    for(new i=0;i<5;i++)
    TextDrawShowForPlayer(playerid, StatsDraw[playerid][i]);
    }
    return 1;
    }
    Ich vermute mal wenn PDA 0 ist das er keins hat und dein Code ergab sowiso kein sinn
    Die einrückung nach der for schleife so lassen, sonst kommen die Fehler wieder

    All in all it's just another brick in the wall