Fehler

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
  • 2 Commands Funktionieren bei mir nicht richtig.
    1. /me
    Ich habe einen /me Befehl erstellt, aber das Problem ist, zB "/me heult" geht, weil es nur ein wort ist. "/me hat hunger" geht nicht mehr, da wird nur "* SpielerX hat" Angezeigt.
    EDIT: gelöst, siehe weiter unten.



    2.Problem: /members geht bei allen fraktionen nur nicht bei den Cops


    was mach ich falsch? mfg B.

    Einmal editiert, zuletzt von barcelona ()

  • lol new hodentext
    new penis



    if(strcmp(cmd, "/me", true) == 0) {
    tmp = strtok(cmdtext, idx);
    if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Benutze /me [Aktion]");
    new hodentext[127];
    new dername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,dername,sizeof(dername));
    format(hodentext,sizeof(hodentext),"* %s %s",dername,tmp);
    for(new i = 0; i < MAX_PLAYERS; i++){
    new penis;
    penis=GetDistanceBetweenPlayers(playerid,i);
    if(penis<20){SendClientMessage(i,COLOR_ME,hodentext);}
    }
    return 1;
    }

    Zitat

    Nimm die Dinge wie sie sind: schlag, wenn du schlagen musst, tritt, wenn du Treten musst
    -Bruce Lee

  • Guck oben^^ Da kommen keine Warnings, es passier nur folgendes:


    Ich gebe /me stinkt ein und im chat kommt * Wolfgang stinkt
    Ich gebe /me hat Hunger ein und im chat kommt * Wolfgang hat


    Es funktioniert also nur mit 1 Wort, das 2. 3. 4. 5. usw werden nicht angezeigt.


    mfg ?(

  • strtok kann keine leerzeichen erkennen deshalb mach es so



    new result[128];
    if(strcmp(cmd, "/me", true) == 0) {
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(strlen(result) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Benutze /me [Aktion]");
    new hodentext[50];
    new dername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,dername,sizeof(dername));
    format(hodentext,sizeof(hodentext),"* %s %s",dername,tmp);
    for(new i = 0; i < MAX_PLAYERS; i++){
    new penis;
    penis=GetDistanceBetweenPlayers(playerid,i);
    if(penis<20){SendClientMessage(i,COLOR_ME,hodentext);}
    }
    return 1;
    }

    RFT

  • xD ich habe was vergessen sorry



    new result[128];
    if(strcmp(cmd, "/me", true) == 0) {
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(strlen(result) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Benutze /me [Aktion]");
    new hodentext[50];
    new dername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,dername,sizeof(dername));
    format(hodentext,sizeof(hodentext),"* %s %s",dername,result);
    for(new i = 0; i < MAX_PLAYERS; i++){
    new penis;
    penis=GetDistanceBetweenPlayers(playerid,i);
    if(penis<20){SendClientMessage(i,COLOR_ME,hodentext);}
    }
    return 1;
    }


    so gehts aber

    RFT

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Jo danke =) jetzt gehts
    Für die dies auch nehmen wollen:
    new result[64];
    sollte man wegmachen, sonst wird das ja 2 mal...erstellt?...oder wie das heisst.
    Frage 1 ist damit gelöst.
    Frage 2:


    funktioniert bei allen, nur nicht bei den Cops...da steht dann
    (Leader)
    (Leader)
    (Leader)
    (Leader)
    (Leader)
    (Leader)
    (Leader)
    usw, der ganze chat ist damit voll.Wieso? Versteh ich nicht... ?(
    Bei allen andern gehts, nur die gTeams sind ausgetauscht.

  • du musst ihn returnen lassen



    if ((gTeam[playerid]==TEAM_cops) || (gTeam[playerid]==TEAM_copsLEADER)){
    SendClientMessage(playerid,COLOR_WHITE,"_____Polizei_Blueberry_____");
    for(new i = 0; i < MAX_PLAYERS; i++){
    if(gTeam[i]==TEAM_cops){new rr[30];
    new humm[MAX_PLAYER_NAME];
    GetPlayerName(i,humm,sizeof(humm));
    format(rr,sizeof(rr),"%s",humm);
    SendClientMessage(playerid,COLOR_WHITE,rr);
    }if(gTeam[i]==TEAM_copsLEADER){new rr[30];
    new humm[MAX_PLAYER_NAME];
    GetPlayerName(i,humm,sizeof(humm));
    format(rr,sizeof(rr),"%s(Leader)",humm);
    SendClientMessage(playerid,COLOR_WHITE,rr);}}}
    return 1;
    ...........


    wird aber wenigstens der Name des Leaders angezeigt

    RFT