Beiträge von Mr.Soap

    Ihr wollt den anderen Spieler etwas anzeigen z.B einen /me Befehl oder Ähnliches oder habt noch Keinen Chat ? Hier
    Eine Nützliche Funktion:



    Code
    Verwendung:  SendClientMessageRadius(playerid, TEXT*, Farbe1, Umfang1, Farbe2, Umfang2);


    Code
    *
    Ihr könnt entweder einen format absenden oder es wie Bei SendClientMessage so benutzen "TEXT"


    Code
    Farbe und Umfang 1
    Die Farbe ist einfach ein Farbcode oder definierte Farbe
    Umfang der Umfang In dem die Nachricht gesendet wird


    Code
    Farbe und Umfang 2
    Wenn ihr wollt das wenn ein Spieler etwas weiter weg es nur etwas blasser sieht
    Könnt ihr hier eine Blassere farbe eingeben und den Umfang alles andere macht
    der Stock


    Ich hoffe diese Funktion kann euch helfen MFG Arendium ;)



    stock SendClientMessageRadius(playerid, string[], f1, Float:u1, f2, Float:u2)
    {

    for(new i = 0;i < MAX_PLAYERS; i++)
    {
    if(GetDistanceBetweenPlayers(i,playerid) < u1)
    {
    SendClientMessage(i, f1, string);
    }
    else if(GetDistanceBetweenPlayers(i,playerid) >= u1 && GetDistanceBetweenPlayers(i,playerid) < u2)
    {
    SendClientMessage(i, f2, string);
    }
    }
    return 1;
    }


    Ihr habt noch kein GetDistanceBetweenPlayers ?


    Spoiler anzeigen


    stock Float:GetDistanceBetweenPlayers(p1,p2){
    new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
    if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2)){
    return -1.00;
    }
    GetPlayerPos(p1,x1,y1,z1);
    GetPlayerPos(p2,x2,y2,z2);
    return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
    }

    Dazu Rundest du in wie IntelligenT sagte hier mal Der Link und ein beispiel:


    http://wiki.sa-mp.com/wiki/Floatround


    format(Tachostring, sizeof(Tachostring), "Km/h: %d", floatround(Geschwindigkeit));


    Entscheidend dabei ist das: floatround(Geschwindigkeit)


    Es rundet Es einfach auf eine Volle Zahl bsp.



    new DEININTERGER;
    DEININTERGER = floatround(DEINFLOAT);

    Hei Ich habe mal eben crashdetect verwendet da mein Dynamisches Fraktion-Skin system Bugt doch jetzt wird das ausgepuckt:


    Code
    [14:16:24] [debug] Run time error 4: "Array index out of bounds"
    [14:16:24] [debug]  Accessing element at index 1339 past array upper bound 23
    [14:16:24] [debug] AMX backtrace:
    [14:16:24] [debug] #0 00012a78 in public OnPlayerKeyStateChange () from Arendium.amx



    if(newkeys == KEY_ANALOG_RIGHT && SkinAuswahl[playerid] >= 1)
    {
    new frak = PlayerInfo[playerid][pMember];
    if(SkinAuswahl[playerid] == 1)
    {
    SetPlayerSkin(playerid, FrakInfo[frak][Skin1]);
    printf("%d",FrakInfo[frak][Skin1]);
    SkinAuswahl[playerid] = 2;
    }
    else if(SkinAuswahl[playerid] == 2)
    {
    printf("%d", FrakInfo[playerid][Skin2]);
    SetPlayerSkin(playerid, FrakInfo[frak][Skin2]);
    SkinAuswahl[playerid] = 3;
    }
    else if(SkinAuswahl[playerid] == 3)
    {
    SetPlayerSkin(playerid, FrakInfo[frak][Skin3]);
    SkinAuswahl[playerid] = 4;
    }
    else if(SkinAuswahl[playerid] == 4)
    {
    SetPlayerSkin(playerid, FrakInfo[frak][Skin4]);
    SkinAuswahl[playerid] = 5;
    }
    else if(SkinAuswahl[playerid] == 5)
    {
    SetPlayerSkin(playerid, FrakInfo[frak][Skin5]);
    SkinAuswahl[playerid] = 1;
    }
    }

    Er gibt diesen Fehler jedesmal nieder, wenn ich diese Funktion verwende...
    Wenn ihr noch was braucht Schreibt es bitte Die Lade-Funktion:



    stock FraktionLaden()
    {
    for(new i=1;i<MAX_FRAKS;i++)
    {
    FrakInfo[i][Skin1] = mysql_GetIntByInt("fraktionen", "Skin-1", "Fraktionen", i);
    FrakInfo[i][Skin2] = mysql_GetIntByInt("fraktionen", "Skin-2", "Fraktionen", i);
    FrakInfo[i][Skin3] = mysql_GetIntByInt("fraktionen", "Skin-3", "Fraktionen", i);
    FrakInfo[i][Skin4] = mysql_GetIntByInt("fraktionen", "Skin-4", "Fraktionen", i);
    FrakInfo[i][Skin5] = mysql_GetIntByInt("fraktionen", "Skin-5", "Fraktionen", i);
    }
    return 1;
    }


    Die Skins sind intergers...
    Ich hoffe auf Hilfe


    Danke im Vorraus


    MFG Arendium


    IPrototypeI: Das Printen klappt auch nicht

    Wen du null rein schreibst in die datei...



    format(var, 32, "SInterior=%d\n",PlayerInfo[playerid][SInterior]);fwrite(hFile, var);
    format(var, 32, "SVirtualWorld=%d\n",PlayerInfo[playerid][SVirtualWorld]);fwrite(hFile, var);

    omg wie kindisch Wenn du spämmst nur weil er einen Server namen suchst und gleich als erster ein Dummes Kommentar schreibst dan ist null eine richtige
    Begründung weils 0 Hilft! BlackAce tut nur seinen Job!

    Ich mache es so:


    Einen Enum zum Rang dafür in der spieltertabelle eine Rang hinzufügen
    Und die ganzen Namen der Ränge Löhne, oder auch Skins die man
    beim eintretten wählen Kann ist alles ingame einstellbar^.^ wenn du
    später wie ich ein Fraktion-Autohaus würde ich da einfach jedem eine
    Zahl zuweisen eine Fraktion dan x y z und die Tunnings Farbe und alles...


    stock GetVehicleDriver(vehicleid)
    {
    for(new i; i < 500; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(GetPlayerState(i) != PLAYER_STATE_DRIVER) continue;
    if(GetPlayerVehicleID(i) == vehicleid)
    {
    return i;
    }
    }
    return -1;
    }