[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
  • Super! Danke. Jetzt muss ich nur noch die Koordinaten durch ausprobieren rausbekommen.


    TextDrawLetterSize kann ich weglassen, kann das sein? habs mal ohne probiert, geht genauso.


    Das heißt ich muss jetzt bei TextDrawTextSize mit den Koordinaten spielen oder ?

  • Was bedeutet es eigentlich, wenn man continue verwendet?


    beispielsweise if(SpielerInfo[playerid][pAdmin]) continue;


    Was bedeutet es dann? Und muss man beim verwenden was beachten?



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • if (strcmp("/maehen", cmdtext, true, 10) == 0)
    {
    if(IsPlayerInVehicle(playerid, 572))
    {
    new rand = random(sizeof(CheckpointInfo));
    SetPlayerCheckpoint(playerid, CheckpointInfo[rand][X], CheckpointInfo[rand][Y], CheckpointInfo[rand][Z], 3.0);
    }
    else
    {
    SendClientMessage(playerid, rot, "Du bist nicht in einem Rasenmaeher!");
    }
    return 1;
    }


    Kann mir jemand sagen was ich falsch gemachte?
    Ich bekomme die Meldung "Du bist nicht in einem Rasenmaeher!" obwohl ich in einem bin.

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


    Da ich seit gestern mit den 3DLabels Krieg habe und das Problem nicht lösen kann, wende ich mich mal an euch.


    Weiß jemand, warum die ganzen 3DTexte nicht erstellt werden?

    if(step){
    for(new i=0; i<cache_get_row_count(); i++){
    if(MarkerData[i][Label] != Text3D:INVALID_3DTEXT_ID){
    Delete3DTextLabel(Text3D:MarkerData[i][Label]);
    MarkerData[i][Label] = Text3D:INVALID_3DTEXT_ID;
    }
    MarkerData[i][ID] = cache_get_field_content_int(i,"ID",db_H);
    MarkerData[i][MX] = cache_get_field_content_float(i,"X",db_H);
    MarkerData[i][MY] = cache_get_field_content_float(i,"Y",db_H);
    MarkerData[i][MZ] = cache_get_field_content_float(i,"Z",db_H);
    cache_get_field_content(i, "fwort", MarkerData[i][Wort],db_H,20);
    cache_get_field_content(i, "solution", MarkerData[i][Loesung],db_H,20);
    MarkerData[i][Gewinn] = cache_get_field_content_int(i,"cash",db_H);
    MarkerData[i][status] = cache_get_field_content_int(i,"state",db_H);
    new string[55];format(string,sizeof(string),"{0087FF}[Event]\n{FFFFFF}Gesucht:\n%s",MarkerData[i][Wort]);
    MarkerData[i][Label] = Create3DTextLabel(string,0xFFFFFFFF,MarkerData[i][MX],MarkerData[i][MY],MarkerData[i][MZ],45.0,0,1);
    MarkerData[i][timestamp] = tsp;
    printf("%d",i);
    m_count++;
    }

    Es hängt auf jeden Fall mit dem Löschen zusammen, sonnst gäbe es das Problem nicht. Zudem überschreiben sich die ganzen IDs auch. ._.
    E: Änderung im code




    E: Keine Hilfe mehr benötigt, gerade einen Lösungsweg gefunden nach Stunden...

    Einmal editiert, zuletzt von Andosius ()

  • Ja aber dies hier ist doch wohl kein Enum:

    if(step){
    for(new i=0; i<cache_get_row_count(); i++){
    if(MarkerData[i][Label] != Text3D:INVALID_3DTEXT_ID){
    Delete3DTextLabel(Text3D:MarkerData[i][Label]);
    MarkerData[i][Label] = Text3D:INVALID_3DTEXT_ID;
    }
    MarkerData[i][ID] = cache_get_field_content_int(i,"ID",db_H);
    MarkerData[i][MX] = cache_get_field_content_float(i,"X",db_H);
    MarkerData[i][MY] = cache_get_field_content_float(i,"Y",db_H);
    MarkerData[i][MZ] = cache_get_field_content_float(i,"Z",db_H);
    cache_get_field_content(i, "fwort", MarkerData[i][Wort],db_H,20);
    cache_get_field_content(i, "solution", MarkerData[i][Loesung],db_H,20);
    MarkerData[i][Gewinn] = cache_get_field_content_int(i,"cash",db_H);
    MarkerData[i][status] = cache_get_field_content_int(i,"state",db_H);
    new string[55];format(string,sizeof(string),"{0087FF}[Event]\n{FFFFFF}Gesucht:\n%s",MarkerData[i][Wort]);
    MarkerData[i][Label] = Create3DTextLabel(string,0xFFFFFFFF,MarkerData[i][MX],MarkerData[i][MY],MarkerData[i][MZ],45.0,0,1);
    MarkerData[i][timestamp] = tsp;
    printf("%d",i);
    m_count++;
    }


    Schreibe es so:

    if(step){
    for(new i=0; i<cache_get_row_count(); i++){
    if(MarkerData[i][Label] != INVALID_3DTEXT_ID){
    Delete3DTextLabel(MarkerData[i][Label]);
    MarkerData[i][Label] = INVALID_3DTEXT_ID;
    }
    MarkerData[i][ID] = cache_get_field_content_int(i,"ID",db_H);
    MarkerData[i][MX] = cache_get_field_content_float(i,"X",db_H);
    MarkerData[i][MY] = cache_get_field_content_float(i,"Y",db_H);
    MarkerData[i][MZ] = cache_get_field_content_float(i,"Z",db_H);
    cache_get_field_content(i, "fwort", MarkerData[i][Wort],db_H,20);
    cache_get_field_content(i, "solution", MarkerData[i][Loesung],db_H,20);
    MarkerData[i][Gewinn] = cache_get_field_content_int(i,"cash",db_H);
    MarkerData[i][status] = cache_get_field_content_int(i,"state",db_H);
    new string[55];format(string,sizeof(string),"{0087FF}[Event]\n{FFFFFF}Gesucht:\n%s",MarkerData[i][Wort]);
    MarkerData[i][Label] = Create3DTextLabel(string,0xFFFFFFFF,MarkerData[i][MX],MarkerData[i][MY],MarkerData[i][MZ],45.0,0,1);
    MarkerData[i][timestamp] = tsp;
    printf("%d",i);
    m_count++;
    }

  • Zudem überschreiben sich die ganzen IDs auch.


    Weiß jemand, warum die ganzen 3DTexte nicht erstellt werden?


    Bitte erst lesen bevor man antwortet.
    Deine Antworten waren bis jetzt reiner Push deiner Aktivität.
    Durch das vorherige Löschen erstellen sich die 3DLabels nicht.


    Weiß jemand vielleicht weiter?
    Kaliber: Jeffry: @BlackAce: :)?

  • Hey, ich bin gerade dabei ein Wahlsystem für Parteien zu machen.
    Leider ist mir ein Fehler unterlaufen:
    Im Dialog, wenn ich eine Partei wählen möchte, kann ich immer nur die Partei mit der ID 1 wählen. Und das ist egal, welches ich anklicke.
    Jeffry: :love:
    Befehl:



    COMMAND:wahl(playerid,params[])
    {
    #pragma unused params
    if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
    if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
    if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
    if(Spieler[playerid][pInPrison] == 1)return SendClientMessage(playerid,GRAU,"Du bist im Prison.");
    if(Spieler[playerid][pFriedhof] == 1)return SendClientMessage(playerid,GRAU,"Du bist Tot.");
    if(Spieler[playerid][pDeath] == 1)return SendClientMessage(playerid,GRAU,"Du bist verletzt.");
    if(Spieler[playerid][pJailed] != 0)return SendClientMessage(playerid,GRAU,"Du bist im Gefängnis.");
    if(Spieler[playerid][pTazerd] == 1)return SendClientMessage(playerid,GRAU,"Du bist K.O/getazert.");
    if(Spieler[playerid][pCuffed] == 1)return SendClientMessage(playerid,GRAU,"Du bist gefesselt.");
    if(WahlenOffen == 0)return SendClientMessage(playerid, GRAU, "Es sind keine Wahlen offen.");
    new string[612],count;
    for(new p=1;p<MAX_PARTEI;p++)
    {
    if(PartInfo[p][ParteiCreatet] != 0 && PartInfo[p][ParteiAusgeschlossen] == 0)
    {
    format(string,sizeof(string),"Partei: %s | Gründer: %s\n%s",PartInfo[p][ParteiName],PartInfo[p][ParteiOwner],string);
    ShowPlayerDialog(playerid,DIALOG_PARTEIWAEHLEN,DIALOG_STYLE_LIST,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Parteien",string,"Verlassen","");
    count++;
    }
    }
    if(count == 0)return SendClientMessage(playerid, GRAU, "Es existieren keine Parteien zum wählen.");
    return 1;
    }



    Dialog:

    case DIALOG_PARTEIWAEHLEN:
    {
    new string[128], query[128];
    if(response == 0)
    {
    return 1;
    }
    else
    {
    for(new p=1;p<MAX_PARTEI;p++)
    {
    if(Spieler[playerid][pParteiGewaehlt] == 1)return SendClientMessage(playerid, GRAU, "Du hast bereits eine Partei gewählt.");
    Spieler[playerid][pParteiGewaehlt] = 1;
    PartInfo[p][ParteiStimmen]++;
    format(string,sizeof(string),"Du hast für die Partei '%s' gewählt.",PartInfo[p][ParteiName]);
    SendClientMessage(playerid,WEISS,string);
    format(query,sizeof(query),"UPDATE "#SQL_TAG"_partei SET ParteiStimmen = %d WHERE ParteiName= '%s'",PartInfo[p][ParteiStimmen],PartInfo[p][ParteiName]);
    mysql_function_query(MySqlConnection,query,false,"","");
    return 1;
    }
    }
    return 1;
    }

    Einmal editiert, zuletzt von aytef ()

  • Hey in der Zeile SendClientMessage kommen 2 Warnings...

    Code
    C:\Users\Patrick\Desktop\IRP-City\gamemodes\T2R.pwn(43836) : warning 202: number of arguments does not match definition
    C:\Users\Patrick\Desktop\IRP-City\gamemodes\T2R.pwn(43836) : warning 202: number of arguments does not match definition


    if(strcmp(cmd,"/contracts",true)==0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] == 8)
    {
    SendClientMessage(playerid, 0xCDB221FF, "Contracts");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pContractSumme] > 1)
    SendClientMessage(playerid, COLOR_GOLD, "Name: %s Premie: %d$",i,PlayerInfo[i][pContractSumme]);
    }
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Du bist kein Hitman !");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Du bist nicht eingeloggt !");
    }
    }

  • SendClientMessage(playerid, COLOR_GOLD, "Name: %s Premie: %d$",i,PlayerInfo[i][pContractSumme]);
    zu:
    new str[145];
    format(str, sizeof(str), "Name: %s Premie: %d$",SpielerName(i),PlayerInfo[i][pContractSumme]);
    SendClientMessage(playerid, COLOR_GOLD, str);



    @Voxa:
    @iEnerqie:
    Macht doch bitte einen Thread auf wenn ihr gescheite Hilfe haben wollt. Ihr seht doch selbst wie unübersichtlich das hier ist, wenn 3 Probleme ineinander gepostet werden. Danke.

  • Nachrichten sollte man formatieren können aber egal


    if(strcmp(cmd,"/contracts",true)==0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] == 8)
    {
    SendClientMessage(playerid, 0xCDB221FF, "Contracts");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    new string[128];
    if(PlayerInfo[i][pContractSumme] > 1)
    format(string,sizeof(string),"Name: %s Premie: %d$",SpielerName(i),PlayerInfo[i][pContractSumme]);
    SendClientMessage(playerid, COLOR_GOLD,string);
    }
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Du bist kein Hitman !");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Du bist nicht eingeloggt !");
    }
    }


    Jeffry:
    darauf habe ich nicht geachtet :D