[NoN GF] /wisper erstellen ?

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
  • Hallo leute,


    wie die überschrift schon sagt, wollte ich fragen wie man im non GF ein /wisper command erstellt also den command brauche ich ja nicht all zu groß zu erklären da jeder schonmal mit GodFather gearbeitet hat, also mit /w soll man andere an flüster bzw. mit Ihnen privat reden können :)


    wie macht man das am besten wenn die Kopfzeile des Onplayercommand so aussieht:


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new string[256];
    new idx;
    new tmp;
    new giveplayername[MAX_PLAYER_NAME];
    new sendername[MAX_PLAYER_NAME];
    new cmd[256];
    cmd = strtok(cmdtext, idx);



    Also ihch ba e es mit dem ausm GF probiert es klappt nicht, da er andere definitionen hat ich weiß nicht wie ich sie umstelle xD


    100% Selfmade Reallife Loading ...



    2 Mal editiert, zuletzt von Poseidon ()

  • falls du mit dcmd und sscanf arbeitest nimm das


    dcmd_whisper(playerid,params[])
    {
    new
    sMessage[128],
    pID;

    if(sscanf(params, "ds",pID,sMessage))
    {
    return SendClientMessage(playerid,COLOR_RED,"Nutze: /whisper [playerid] [Nachricht]");
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,COLOR_RED,"Kein Spieler mit angegebener ID Online");
    }


    new
    ThePlayer[MAX_PLAYER_NAME],
    string[128];
    GetPlayerName(playerid,ThePlayer,sizeof(ThePlayer));
    format(string,sizeof(string),"%s flüstert: %s",ThePlayer,sMessage);
    SendClientMessage(pID,weiß,string);


    return 1;
    }


    habs noch nich getestet sollte aber gehen

  • Also, dass man jemanden anwispern kann?


    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    public OnPlayerCommandText(playerid,cmdtext[]) {
    dcmd(w,1,cmdtext);
    return 0;
    }
    //Anywhere in your Script
    dcmd_w(playerid,params[]) {
    new tmp[128],idx,id;
    tmp=strtok(params,idx);
    id=strval(tmp);
    if(!strlen(tmp) || !strlen(params[strlen(tmp)+1]) || !IsNumeric(tmp)) {
    return SendClientMessage(playerid,COLOR_RED,"USAGE: /w [playerid] [text]");
    }
    else if(!IsPlayerConnected(id)) {
    return SendClientMessage(playerid,COLOR_RED,"The Player is not connected");
    }
    else {
    //What should happen
    printf("id is %d and text is %s",id,params[strlen(tmp)+1]); //Debug msg
    }
    //Example for a Command like /pm [playerid] [msg]
    return 1;
    }

    LG cinema


  • dcmd ist besser als das im GF außerdem kannst du die ein Filterscript runterladen (Adminsystem) wo alles drine is


  • if (strcmp(cmd, "/whisper", true) ==0 )
    {
    tmp = strtok(cmdtext,idx);
    if(!tmp[0])return SendClientMessage(playerid,RED,"Nutze: /whisper [ID] [Text]]");
    new id = strval(tmp);
    tmp = strtok(cmdtext,idx);
    if(!tmp[0])return SendClientMessage(playerid,RED,"Nutze: /whisper [ID] [Text]]");
    if(IsPlayerConnected(ID) return SendclientMessage(playerid,RED,"DEr Spieler ist nicht Online!");
    if(!IsPlayerInRangeOfPlayer(ID,playerid,15.0)) return SendclientMessage(playerid,RED,"Du musst näher am Spieler sein!");
    new text[128];
    format(text,sizeof(text),"Whisper von %s : %s,Player(playerid),cmdtext);
    SendClientMessage(playerid,RED,text);
    SendClientMessage(ID,RED,text);
    return 1;
    }
    // außerhalb einfügen
    stock IsPlayerInRangeOfPlayer(inrangeofplayer,player,Float:distance)
    {
    new Float:PX,Float:PY,Float:PZ;
    GetPlayerPos(inrangeofplayer,PX,PY,PZ);
    return IsPlayerInRangeOfPoint(player,distance,PX,PY,PZ);
    }
    stock Player(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,siezof(name));
    return name;
    }



    LG ^^

  • Neo ne, dass ist ja das Problem es klappt ja nicht wenn ich es GENAU so mache xD es kommen zwar keine errors und keine warnings aber es klappt nicht wenn ich /w <spielerID> TEXT mache steht da 57485869 incorrect spieler oder so xD voll unlogisch


    100% Selfmade Reallife Loading ...



  • Ja ließ oben xD ich schaffs nichtmal xD weil bei GF ist die kopfzeile von onplayercommand anders als bei meiner kopfzeile deswegen und wenn ich es änder jklappt es nit xD


    100% Selfmade Reallife Loading ...



  • bist du betrunken xD adde mich in icq hammer hart bei OnPlayerCommand sind oben nur die sachen definiert ...


    edit // wenn du nicht fähig bist einen einfachen befehl wie /wisper hin bekommst solltest du nicht ein selfmade machen ;)

  • // forward
    forward ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5);
    // public
    public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5) // das brauchste noch ;-)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:posx, Float:posy, Float:posz;
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    //radi = 2.0; //Trigger Radius
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(!BigEar[i])
    {
    GetPlayerPos(i, posx, posy, posz);
    tempposx = (oldposx -posx);
    tempposy = (oldposy -posy);
    tempposz = (oldposz -posz);
    //printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
    if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
    {
    SendClientMessage(i, col1, string);
    }
    else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
    {
    SendClientMessage(i, col2, string);
    }
    else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
    {
    SendClientMessage(i, col3, string);
    }
    else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
    {
    SendClientMessage(i, col4, string);
    }
    else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
    {
    SendClientMessage(i, col5, string);
    }
    }
    else
    {
    SendClientMessage(i, col1, string);
    }
    }
    }
    }//not connected
    return 1;
    }
    //----------------------------------[Wisper]-----------------------------------------------
    if(strcmp(cmd, "/wisper", true) == 0 || strcmp(cmd, "/w", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    {
    if(gPlayerLogged[playerid] == 0)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du hast dich noch nicht eingeloogt !");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "USAGE: (/w)isper [playerid/TeildesNamens] [Flüster Text]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if (IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if(HidePM[giveplayerid] > 0)
    {
    SendClientMessage(playerid, COLOR_GREY, " Dieser Spieler blockiert die Flüster Funktion !");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    if(giveplayerid == playerid)
    {
    format(string, sizeof(string), "* %s flüstert etwas.", sendername);
    ProxDetector(5.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    }
    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))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "USAGE: (/w)isper [playerid/TeildesNamens] [Flüster Text]");
    return 1;
    }
    format(string, sizeof(string), "%s(ID: %d) flüstert: %s", sendername, playerid, (result));
    SendClientMessage(giveplayerid, COLOR_YELLOW, string);
    format(string, sizeof(string), "flüstert zu %s(ID: %d).", giveplayer, giveplayerid);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    return 1;
    }
    }
    else
    {
    format(string, sizeof(string), " %d ist kein Aktiver Spieler.", giveplayerid);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    }
    return 1;
    }


    wennde es so net hin bekommst kann ich es dir per tv machen ;)