Beiträge von mari0_DE

    2 Hilfreiche Funktionen
    GetVehicleRotation

    stock GetVehicleRotation(vehicleid,&Float:x, &Float:y, &Float:z)// by DANGER1979
    {
    new Float:quat_w,Float:quat_x,Float:quat_y,Float:quat_z;
    GetVehicleRotationQuat(vehicleid,quat_w,quat_x,quat_y,quat_z);
    ConvertNonNormaQuatToEuler(quat_w,quat_x,quat_z,quat_y, z, y, x);
    x = -1*x;
    return 1;
    }
    und IsCarOnRoof | sensetive: 179.9 = sehr sehr sehr Sensibel | 91.0 nicht Sensibel | 140.0 normal

    stock IsCarOnRoof(vehicleid,Float:sensetive)// by mari0_DE aka Kanti
    {
    new Float:XD[3];
    new Float:quat_w,Float:quat_x,Float:quat_y,Float:quat_z;
    GetVehicleRotationQuat(vehicleid,quat_w,quat_x,quat_y,quat_z);
    ConvertNonNormaQuatToEuler(quat_w,quat_x,quat_z,quat_y, XD[2], XD[1], XD[0]);
    XD[0] = -1*XD[0];
    if(XD[0] >= sensetive || XD[0] <= -sensetive || XD[1] >= sensetive || XD[1] <= -sensetive)
    {
    return 1;
    }
    return 0;
    }


    Aber man braucht für Beide Diese Funktion:

    stock ConvertNonNormaQuatToEuler(Float: qw, Float: qx, Float:qy, Float:qz,
    &Float:heading, &Float:attitude, &Float:bank)// by DANGER1979
    {
    new Float: sqw = qw*qw;
    new Float: sqx = qx*qx;
    new Float: sqy = qy*qy;
    new Float: sqz = qz*qz;
    new Float: unit = sqx + sqy + sqz + sqw; // if normalised is one, otherwise is correction factor
    //åñëè normalised, - îäèí, â ïðîòèâíîì ñëó÷àå - ïîêàçàòåëü êîððåêöèè
    new Float: test = qx*qy + qz*qw;
    if (test > 0.499*unit)
    { // singularity at north pole - îñîáåííîñòü íà ñåâåðíîì ïîëþñå
    heading = 2*atan2(qx,qw);
    attitude = 3.141592653/2;
    bank = 0;
    return 1;
    }
    if (test < -0.499*unit)
    { // singularity at south pole - îñîáåííîñòü íà þæíîì ïîëþñå
    heading = -2*atan2(qx,qw);
    attitude = -3.141592653/2;
    bank = 0;
    return 1;
    }
    heading = atan2(2*qy*qw - 2*qx*qz, sqx - sqy - sqz + sqw);
    attitude = asin(2*test/unit);
    bank = atan2(2*qx*qw - 2*qy*qz, -sqx + sqy - sqz + sqw);
    return 1;
    }


    have fun :thumbup:


    Mit freundlichen Grüßen
    mari0_DE aka Kanti


    //Versions Update.

    richtig gut gemacht für Neulinge xD
    für Neulinge 9.8/10


    Zitat

    %c - Einen einzelnen Buchstaben, Beispiel: "D"


    und ich wurde das so machen nur so xD

    Zitat

    %c - Einen einzelnen Buchstaben, Beispiel: 'D'

    nur das else weg in Reihe5
    dcmd_admcreate(playerid,params[])
    {
    new cmodelid, cfarbe1, cfarbe2, cpreis, ctunbar, cjob, cfraktion;
    if(sscanf(params, "ddddddd", cmodelid,cfarbe1,cfarbe2,cpreis,ctunbar,cjob,cfraktion)) return SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /admcreate ModelID Farbe1 Farbe2 Preis Tunbar Job Fraktion");
    /*HIER*/if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,COLOR_GREY,"Du bist kein RCON Admin");//<------ vorne das else weg xD
    else
    {
    Mit freundlichen Grüßen
    mari0_DE aka Kanti


    stock IsSameAs(string1[],string2[])// mari0_DE aka Kanti
    {
    if(strlen(string1)!=strlen(string2))
    return 0;
    for(new i = 0; i < strlen(string1) ;i++)
    {
    if(string1[i]!=string2[i])
    {
    return 0;
    }
    }
    return 1;
    }

    Diese Funktion Überprüft ob die Strings Exakt gleich sind! auch die Länge


    und nochmal Kurz:

    stock IsSameAs(string1[],string2[]){// mari0_DE aka Kanti
    if(strlen(string1)!=strlen(string2))return 0;
    for(new i = 0; i < strlen(string1) ;i++){
    if(string1[i]!=string2[i])return 0;
    }
    return 1;
    }

    Have Fun! :D

    public heelthtimer(){
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    new Float:health;
    GetPlayerHealth(i,health);
    if(health > 20.0)
    {
    if(StopNachicht==0)
    {
    SendClientMessage(i,COLOR_LIGHTRED,"Ich muss mich schnell Healen sonst werde ich streben!");
    StopNachicht=1;
    }
    }
    else
    {
    StopNachicht=0;
    }
    }
    return 1;
    }

    public heelthtimer()
    {
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    new Float:health;
    GetPlayerHealth(i,health);
    if(health < 20.0)
    {
    StopNachicht++;
    if(Stopnachricht==1)
    {
    SendClientMessage(i,COLOR_LIGHTRED,"Ich muss mich schnell Healen sonst werde ich streben!");
    }
    if(StopNachricht==1000*60)
    {
    SendClientMessage(i,COLOR_LIGHTRED,"Ich muss mich schnell Healen sonst werde ich streben!");
    StopNachicht=0;
    }
    }
    else


    {
    StopNachicht=0;
    }
    }
    }
    return 1;
    }
    have fun

    ich würde eher so sagen:(Linux nur antworten wenn du Ahnung hast!! bitte)
    new LSPPOS[3][LSP]={
    {1273.0835,-819.0178,84.1406},
    {1277.6268,-818.7731,84.1406},
    {1284.8733,-818.7379,84.1406}
    };


    und das hier so:

    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == LSPickup) { new LS = random(3);DestroyPickup(LSPickup); LSPickup = CreatePickup(1274, 23, LSPPOS[LS][x], LSPPOS[LS][y], LSPPOS[LS][z], -1); return 1; }
    return 1;
    }

    Es gibt 2 verschieden Kreisbahnen auf denen Züge fahren können.
    du musst einfach nur in der nähe der einen bahn stehen und schon hast du auf dieser bahn eine Erstellt.(sie werden automatisch auf die nähere bahn gestellt.)
    die eine bahnen ist die Tram-strecke die andere die Zug strecke.

    Version:

    • Version 0.4


    Changelog:

    • 0.1 zu 0.2:

      • bugfix


    • 0.2 zu 0.3:

      • bugfix


    • 0.3 zu 0.4:

      • bugfix



    Vorwort:

    • Es gibt ja den Bekannten Fehler wenn man einen Dialog ausgibt das dann nicht immer alles gemacht wird was man will.
      oder auch anders ausgedrückt:
      Topic die mich darauf gebracht hat

      ShowPlayerDialog ist gerne Offensiv und zeigt halt nicht die gewünschte Kameraposition an.


      Dieses Problem hat mich auch schon beschäftigt.
      Deshalb hab ich ein wirklich kleines Include gemacht um dieses Problem Aus der Welt zu schaffen.


    Bedinung:

    • Es ist ganz einfach zu Bedinen:
      Bei OnGameModeInit das hier rein:
      ShowDialogOn();
      und Anstatt
      ShowPlayerDialog(XX);
      einfach
      ShowDialog(XX);
      benutzten.
      der Inhalt kann gleich bleiben.
      Jedoch darf die Überschrift nicht Länger als 100 Zeichen sein.
      die Info[] nicht länger als 1024 und die Buttons[] nicht Länger alsjeweils 50.
      Und natürlich #include <ShowDialog> nicht vergessen.


    Download unten im Anhang bzw. P.com