Beiträge von [EGC] selEcT

    Hallo!


    Gibt es eine Möglichkeit abzufragen, ob ein Spieler auf ein Objekt schiesst? Ich hab bereits PlayerAimOnObject, aber das ist nicht so ganz das wahre.. das hat sicher schon jemand geschafft?


    MFG


    edit: hier der aimcode, falls den jemand braucht..


    stock PlayerAimToPoint(playerid, Float:x, Float:y, Float:z, Float:radius)
    {
    new Float:cx,Float:cy,Float:cz,Float:fx,Float:fy,Float:fz;
    GetPlayerCameraPos(playerid, cx, cy, cz);
    GetPlayerCameraFrontVector(playerid, fx, fy, fz);
    return (radius >= GetDistanceToPoint(cx, cy, cz, x, y, z, fx, fy, fz));
    }

    ja aber soweit kommt der ja theoretisch net mal, wenn er nicht einmal den letzten Datensatz ausliest?!


    edit: auch wenn ich mysql_free_result rausnehme gehts net ;) gibts dafür keine lösung, ausser das ich immer nur 14 tankstellen haben kann?!

    Hallo leute!


    Ich hab ein kleines Problem. Ich hab das neuste mysqlplugin von strickenkid.


    Nun hab ich in einer mysql tabelle 15 datensätze drin, wobei der 15. datensatz nicht ausgelesen wird und dann der server crasht (bzw. nicht lädt, gamemode: unknown).


    hier der code


    stock LoadTankstellen()
    {
    MySQLCheck();
    printf(" ");
    printf("____________Tankstellen Anfang____________");
    printf(" ");
    new idx;new data[256];
    mysql_query("SELECT * FROM gasstation");
    mysql_store_result();
    while(mysql_fetch_row_data())
    {
    TankstellenInfo[idx][tID] = idx;
    mysql_fetch_field("tBenzin",data);TankstellenInfo[idx][tBenzin] = strval(data);
    mysql_fetch_field("tPosX",data);TankstellenInfo[idx][tPosX] = floatstr(data);
    mysql_fetch_field("tPosY",data);TankstellenInfo[idx][tPosY] = floatstr(data);
    mysql_fetch_field("tPosZ",data);TankstellenInfo[idx][tPosZ] = floatstr(data);
    printf("ID: %d, Benzin: %d, PosX: %f, PosY: %f, PosZ: %f",TankstellenInfo[idx][tID],TankstellenInfo[idx][tBenzin],TankstellenInfo[idx][tPosX],TankstellenInfo[idx][tPosY],TankstellenInfo[idx][tPosZ]);
    idx++;
    }
    mysql_free_result();
    printf(" ");
    printf("____________Tankstellen Ende____________");
    printf(" ");
    return 1;
    }


    Allerdings ist es das selbe prinzip wie bei jeder anderen tabelle, die ich aus dieser datenbank lese.


    Jemand ne Ahnung?


    MFG selEcT

    hallo leute


    Ich hab die standardbefehle von skydive und fourdive vom gf.


    Allerdings wenn ich das mache, flieg ich im unsichtbaren und pralle dann auf dem boden auf --> tot.


    Wie ist der richtige befehl? Oder an was liegt das? kann es sein das es zu hoch ist (1350)?


    MFG

    Hallo zusammen!


    Bei mir im script gibts nen Fehler:


    Function header differs from prototype


    Funktion:


    stock split(const strsrc[], strdest[][], delimiter)
    {
    new i, li;
    new aNum;
    new len;
    while(i <= strlen(strsrc)){
    if(strsrc[i]==delimiter || i==strlen(strsrc)){
    len = strmid(strdest[aNum], strsrc, li, i, 128);
    strdest[aNum][len] = 0;
    li = i+1;
    aNum++;
    }
    i++;
    }
    return 1;
    }


    warum kommt das bei einem stock?!


    MFG


    edit: erledigt, split geändert (--> spliter)

    hab den fehler im script gefunden, hab split rausgenommen, allerdings wenn ichs wieder rein tu kommt ein error:


    Function header differs from prototype


    funktion:


    stock split(const strsrc[], strdest[][], delimiter)
    {
    new i, li;
    new aNum;
    new len;
    while(i <= strlen(strsrc)){
    if(strsrc[i]==delimiter || i==strlen(strsrc)){
    len = strmid(strdest[aNum], strsrc, li, i, 128);
    strdest[aNum][len] = 0;
    li = i+1;
    aNum++;
    }
    i++;
    }
    return 1;
    }


    warum kommt das bei einem stock?!

    Hallo Leute!


    Ich hab ein kleines Problem.


    Wenn ich die samp-server.exe starte, stürzt sie gleich wieder ab. In der server-log steht alles drin, bis das filterscript geladen wurde (also nachdem das filterscript geladen wurde (bfx_oStream)).


    Der server läuft unter Windows 7 Ultimate 64Bit Version. Speicherdateien gibt es nicht mehr --> mysql. Ich hab auch das plugin dafür, das wird auch normal geladen. Die neusten Includes hab ich auch.


    Wo liegt das Problem bzw. was muss ich beachten bei der Umstellung?


    MFG selEcT

    Okay, 2 Sachen. Zuerst: Mit Format erstellst du "objectstring" aber im Dialog rufst du nur "string" auf.


    ups, war wohl ein kleiner copy&paste fehler :D



    ach, blöder denkfehler, ist ja klar das ich die anderen objekte auch reinnehmen muss.



    ja, stimmt. dann hab ich weniger code. aber bei meinen dialogen kommt bei response == 0 meistens noch was ;)


    Die Frage ist, wie du damit jetzt weiterarbeitest. Da deine Objekte ja scheinbar sich in der Laufzeit variabel ändern, wird das mit dem case für jedes Objekt schwer.
    Ich weiß nicht, was du mit den Objekten jetzt weiter vor hast. Wenn du bei jedem etwas anderes machen willst, aber immer andere in der Liste stehen könnten, solltest du am besten leere Listeneinträge erstellen, damit die Struktur im Code immer gleich bleibt - 3. Zeile in der Liste ist immer das 3. Objekt, egal ob es [blenabled] ist oder nicht.


    Hab ich mir auch schon überlegt. Dann kommt einfach, das dieses Objekt nicht verfügbar ist oder so. Wäre eine Lösung.


    Wenn du aber bei allen den selben Vorgang machen würdest könntest du die listitem-Struktur folgendermaßen versuchen (wie immer ungetestet):


    switch (listitem)
    case 0..sizeof(Objects): //Mache irgendwas mit dem Objekt


    Bei jedem Objekt soll es mir einen Checkpoint anzeigen mit den positionen des objektes. würde dies in dem falle gehen? oder eher nicht?


    Spontan fällt mir aber keine Anwendungsmöglichkeit ein, da in der Variable ja nicht die Objekte an sich überliefert werden. Versuch dein Vorhaben etwas näher zu erläutern. ;)


    ja, dann sind die objekte in einem dialog, die man dann anwählen kann und danach wird einem einen Checkpoint angezeigt, wo das objekt ist.


    Danke schon mal für die antwort :D


    MFG selEcT

    Hallo leute!


    Ich zerbrich mir grad den Kopf an einem "kleinen" Dialogproblem.


    Ich hab irgendwo einen Befehl (/showobjects). Dort mach ich eine for-schleife:



    //ganz oben
    new objectstring[256];


    //showobjects
    for(new i=0;i<sizeof(Object);i++)
    {
    if(Object[i][blEnabled] == 1)
    {
    format(objectstring,sizeof(objectstring),"Objekt %d\n",i);
    }
    }


    und setz dann das Ergebnis in einen Dialog:


    ShowPlayerDialog(playerid,ObjectDialog,DIALOG_STYLE_LIST,"Waehle das Objekt aus, das du sehen moechtest:",string,"Sehen","Abbrechen");


    Wie kann ich jetzt die einzelnen "listitems" dort auslesen? Also



    if(dialogid == ObjectDialog)
    {
    if(response == 0) return 1;
    if(response == 1)
    {
    if(listitem == 0)
    {
    //erstes Objekt, das in der Variable objectstring ist
    }
    if(listitem == 1)
    {
    //zweites Objekt, das in der Variable objectstring ist
    }
    //etc
    }
    }


    Ich hoffe, jemand kann mir helfen.


    MFG

    und wie siehts beim anfahren aus? fährt er da mit 80 km/h an? das wäre ja ziemlich unrealistisch nich?


    edit: habs getestet, ist nicht gerade super.. wenn man nach 5 sekunden fahren schon auf 150 mit dem admiral ist ^^


    habs nun so:


    kmh = floatround(floatsqroot(floatpower(vex, 2) + floatpower(vey, 2) + floatpower(vez, 2)) * 200);


    sieht einigermassen gut aus..

    ich hab schon viel nach "Tacho" gesucht, aber nirgends hat es irgendwie ne wirklich ideale km/h anzeige.. wie wird die geschwindigkeit berechnet? v=s/t soviel ich weiss..


    ich habs nun mal mit dem probiert:


    GetVehicleVelocity(vehicleid,vex,vey,vez);
    kmh = floatround(floatsqroot(vex*vex + vey*vey + vez*vez) * 180);


    oben raus ist es vielleicht ein wenig genau, allerdings wenn ich anfahre hab ich schon 40 km/h.. auch wenn ich * 100 mache ist es unten zwar ein wenig realistischer, aber der Infernus kommt auf gerade mal 100 km/h.. und der shamal auf ledigliche 270 km/h.. gibts noch ne andere möglichkeit?


    oder das:



    GetVehicleVelocity(vehicleid,vex,vey,vez);
    kmh = floatround(floatsqroot(floatabs(floatpower(vex + vey + vez, 2))) * 100 * 1.610921812123);


    aber das ist auch nicht das wahre.. hat dann niemand einen schön funktionierenden tacho? ich verzweifel bald..


    hmm das denke ich nicht ^^ sieht es so nicht besser aus? ;)



    GetPlayerPos(playerid, PX, PY, PZ);
    GetPlayerPos(giveplayerid, GX, GY, GZ);
    SetPlayerPos(playerid, PX, PY, PZ+1);
    SetPlayerPos(giveplayerid, GX, GY, GZ+1);


    ich werds zuhause mal überprüfen.