Beiträge von IPrototypeI

    dann entferne das tag
    stock mysql_GetFloat(Table[], Field[], Where[], Is[])
    {
    new query[128], Float:sqlfloat;
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_float(sqlfloat);
    mysql_free_result();
    return _:sqlfloat;
    }


    //edit


    man kann es auch mit forward machen wie bei public Funktionen
    forward Float:mysql_GetFloat(Table[], Field[], Where[], Is[]);

    Dann hieße der eher /stats ;)
    Ganz einfach. Man kann sich der Allgemeinheit auf dem Server zeigen ODER einer einzelnen Person. Momentan geht der Befehl ohne Parameter. Ich weiss grad nur nicht, wie man dies gleichzeitig mit UND ohne schreiben soll.


    entweder mit einem optionalen specifer oder in dem du das ganze anders abfrägst


    if(sscanf(params,"u",pID)){
    .. Hier der code für den Spieler


    }else{
    hier der code für die jeweilige person
    }


    mit einem optionalen parameter würde das so aussehen

    if(sscanf(params,"U(-1)",pID))

    wird nix eingegeben wird pID den wert -1 haben den darauf hin abfragen

    Hast du vergessen den Text zu lesen

    Siehe bei deinem geposteten code


    public OnPlayerPickupDynamicPickup(playerid,pickupid)


    und nein so wie ich muss man es nicht zwingend machen es ist eine besser Option

    Zum Thema Fall und airbrake dort sind die Beschleunigungswerte ganz verschieden.
    Bei Airbrake geht es nur nach oben , rechts, links, unten also wird sich nur 1 Float verändern , während bei einem freienfall die Z - Werte , X oder Y Werte sich verändern.


    new string[4075];


    Höher gehts nicht ;)


    Doch da geht mehr es ist abhängig davon wie viel Memory zur verfügung steht normal macht er lokal definierten variabeln bei 4096 Zellen dicht / 16KB. Dann bekommt man auch die nette Fehlermeldung erstmal vom kompiler sollte man dies nicht beachten so kommt es zum
    crash vom server mit der Meldung
    Run time error 3: "Stack/heap collision (insufficient stack size)"
    Man kann jedoch auch den Memory via #pragma dynamic oder auch #emit erhöhen.
    Dieser Wert bezieht sich auf einen anderen (stack/heap)Memory Block als global definierte variabeln. Diese werden
    in der .amx gespeichert.


    Zu dem kannst du ja gerne mal nach limit suchen in der Pawn_Language_Guide.pdf
    http://www.compuphase.com/pawn/Pawn_Language_Guide.pdf

    Fabi, wäre ja blöd wenn der MTC eine Cheatfreundliche Zone wäre ^^
    Pille: Gute Idee, hab ich mir auch schon überlegt, dann bräuchte ich noch ein Anti-Fly System..


    Eine Idee wie man sowas hinbekommt?


    Zum Thema Antiflyhack das ist wohl das einfachste => Animation abprüfen es ist die schwimmen animation musst mal suchen wie diese heißt
    und letztendlich solltest du entweder die geschwindigkeit zusätzlich abprüfen oder ob sich der spieler ihrgend wo anders aufhällt als in einem gewässer.


    Es bietet sich dabei jedoch eher an die geschwindigkeitzu nehmen die ist deutlich höher als im wasser und die animation.

    Da brauchst du dich auch nicht wundern


    OnPlayerPickupDynamicPickup


    Das Callback heißt auch


    OnPlayerPickUpDynamicPickup


    an deiner stelle würde ich den aufbau anders machen

    #define MAX_ICONS 1
    enum icon_data {
    e_ID,
    a_ID,
    Float:e_X,
    Float:e_Y,
    Float:e_Z,
    e_VW,
    e_INT,
    Float:a_X,
    Float:a_Y,
    Float:a_Z,
    a_VW,
    a_INT,
    }
    new bool:IconWait[MAX_PLAYERS char];
    new IconInfo[MAX_ICONS][icon_data]= {
    {0,0,1351.7335,-1750.6332,13.3600,0,0,-25.884498,-185.868988,1003.546875,2222,17}
    };



    public OnGameModeInit()
    {
    new i;
    for(; i < MAX_ICONS; ++i){
    IconInfo[i][e_ID] = CreateDynamicPickup(1318,1,IconInfo[i][e_X],IconInfo[i][e_Y],IconInfo[i][e_Z],IconInfo[i][e_VW],IconInfo[i][e_INT],-1,50);
    IconInfo[i][a_ID] = CreateDynamicPickup(1318,1,IconInfo[i][a_X],IconInfo[i][a_Y],IconInfo[i][a_Z],IconInfo[i][a_VW],IconInfo[i][a_INT],-1,50);
    }
    return 1;
    }




    public OnPlayerPickUpDynamicPickup(playerid, pickupid)
    {
    new i;
    for(; i < MAX_ICONS; ++i){
    if(IconWait{playerid})return (IconWait{playerid}=false),1;
    else if(IconInfo[i][e_ID] == pickupid)return SetPlayerPos(playerid,IconInfo[i][a_X],IconInfo[i][a_Y],IconInfo[i][a_Z]),IconWait{playerid}=true,SetPlayerInterior(playerid,IconInfo[i][a_INT]),SetPlayerVirtualWorld(playerid,IconInfo[i][a_VW]);
    else if(IconInfo[i][a_ID] == pickupid)return SetPlayerPos(playerid,IconInfo[i][e_X],IconInfo[i][e_Y],IconInfo[i][e_Z]),IconWait{playerid}=true,SetPlayerInterior(playerid,IconInfo[i][e_INT]),SetPlayerVirtualWorld(playerid,IconInfo[i][e_VW]);
    }
    return 1;
    }

    nur ist das ein string und kein integer


    mysql_SetString("accounts", "Banngrund", SpielerInfo[playerid][Banngrund], "Name", SpielerInfo[playerid][pName]);


    strcat(SpielerInfo[playerid][Banngrund],mysql_GetString("accounts", "Banngrund", "Name", SpielerInfo[playerid][pName]));

    Das liegt daran das er die schleife durchgeht


    sollte so gehen ist jedoch jetzt keine wirklich schöne lösung es würde erstmal sinn machen die einträge raus zu filtern mit den entsprechenden ids und davon einen zufälligen wert zu ermitteln

    if(strcmp(inputtext, "Maennlich", true) == 0)
    {
    new rand;
    for(;;)
    {
    rand = random(sizeof(serverSkins));
    if(serverSkins[rand ][sFraktion] == 0 && serverSkins[rand ][sSex] == 1)break;
    }
    SetPlayerSkinEx(playerid, serverSkins[rand][sSkinID]);
    Spieler[playerid][pTutorial] = 0;
    SpawnPlayerEx(playerid);
    }

    Wenn du so deine pickups nur deklariert hast wie oben geschrieben wird dies aus nicht funktionieren

    CreateDynamicPickup(1318,1,1352.4542,-1759.2408,13.5078,0,-1,-1,50);


    dazu sollte schon die id des Pickups im integer speichern


    vuzsenter = CreateDynamicPickup(1318,1,1352.4542,-1759.2408,13.5078,0,-1,-1,50);

    Beim anzeigen lass zuerst das Textdraw anzeigen mit der Transparents und danach das mit dem Text.


    Weil so liegt die Box über dem Text und dunkelt dieses ab.


    //edit um mal das ganze was !TheO geschrieben hat noch zu erläutern.


    Wenn du das ganze so erstellst kommst du bald an das Limit. Da jedoch PlayerTextdraws das ganze für den spieler einmal erstellt wird und nicht mehrmals.
    Du musst dir die PlayerTextdraws wie CreatePlayerObject vorstellen. Ein streamer kann um das limit an einem punkt herrumarbeiten wenn du die Objecte mit CreateObject erstellst kommst du schnell ans limit.