Beiträge von Kaliber

    Loading plugin: a_mysql.dll
    Failed.

    Downloade dir mal das hier: https://www.microsoft.com/de-d…oad/details.aspx?id=30679 und zwar die: vcredist_x86.exe




    Und noch eine Frage am rande, wenn ich Compilen will geht das nicht mehr er ladet und ladet und ladet woran liegt das?

    Das kann an vielen Dingen liegen...entweder Klammerfehler, die Zeile ist zu lang oder wenn du neulich auf Windows 10 geupdatet hast, dann musst du mal den Kompatibilitätsmodus von Pawno auf Windows 7 z.B. stellen oder so :)

    Ich hab sowieso überlegt ob ich mir ne neue Funktion schreibe welche mir die Dialog immer weiß färbt und die Überschrift Orange aber dann schlug die Faulheit wieder zu.

    Um kurz etwas dazu zu sagen ^^


    Wenn es um Texte geht ohne Variablen, dann ist das eine sehr gute Idee. Dann solltest du das über ein Makro machen:

    C
    #define SPD(%0,%1,%2,%3,%4,%5,%6) ShowPlayerDialog(%0,%1,%2,!"{FF8000}"#%3,!"{FFFFFF}"#%4,!%5,!%6)


    Dadurch würdest du sogar direkt die Strings packen können und somit jeweils deine .amx schön klein halten :)


    Allerdings gibt es da ein Problem, wenn du jetzt eine Variable nutzt z.B.:



    C
    SPD(playerid,0,DIALOG_STYLE_MSGBOX,"Hallo",string,"Ok", "");

    Dann geht das mit dem Makro nämlich nicht!


    Hier müsste man eine Funktion schreiben, die dann über strins den Farbcode an den Anfang stellt.


    Das ist aber keine wirklich schöne Lösung, da das sehr langsam ist, zudem müsste man die strings kopieren.


    Also bei Variablen einfach den Farbcode mit rein schreiben, aber ansonsten kann man das erste Makro nutzen für Texte :)

    Kannst es auch einfach machen, du gibst nämlich einfach den Slot mit:


    PS: Bei DIALOG_STYLE_LIST musst du das nicht extra weiß machen, das geht automatisch :)

    Mach das mal lieber so:


    Ja das geht über die IMEI bei GSM oder die MEID für CDMA.


    Bei der AndroidManifest.xml


    <uses-permission android:name="android.permission.READ_PHONE_STATE" />


    Und Abfragen tust du das dann so:


    android.telephony.TelephonyManager.getDeviceId()


    oder alternativ:


    TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
    telephonyManager.getDeviceId();


    Aber das ist nicht 100% sicher oder so. Man kann über viele Möglichkeiten seine IMEI verändern...allerdings würde diesen Aufwand wohl kaum einer für deine App betreiben xD


    Btw auf einem Gerät kannste die IMEI entweder über die Einstellungen rausfinden oder einfach auf Telefon gehen und die *#06# anrufen, das ist ein USSD-Code der dir direkt die IMEI Nummer gibt :)


    //Edit:
    Es gibt auch noch eine andere eindeutige Android ID:


    import android.provider.Settings;
    import android.provider.Settings.System;


    //Alte Schreibweise:
    String androidID = Secure.getString(activity.getContentResolver(), Secure.ANDROID_ID);
    //Neue:
    String androidID = android.provider.Settings.Secure.ANDROID_ID;


    Das wäre evtl nützlich wenn ein Handy keine IMEI o.ä. hat (z.B. bei alten geräten oder alten tablets).
    Dort könnte es zu einer Überlagerung der ID 9774d56d682e549c kommen.
    Aber auch diese ist nicht sicher! Kann also auch editiert werden.


    Viel Spaß :)

    Geht das gleiche auch mit Objekten ?

    Willst du etwa eine Wand ansprayen?


    Dann kannst du das nicht dynamisch machen (außer über enorm viel Aufwand und externe Plugins).


    Am einfachsten ist es schon fixe positionen zu nehmen, checken ob er davor steht und in die Richtung sprayt, was du oben wie gezeigt machen kannst und dann einfach ein Objekt z.B. grove Street etc erstellen.

    Danke, leider bleibt es ohne Erfolg.

    Ja weil ein Spray...keine Schusswaffe ist...


    Das triggerst du mit OnPlayerKeyStateChange...


    Danke, jedoch bleibt es ohne Erfolg.

    So mal probieren:


    C
    public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
    {
        if(hittype == BULLET_HIT_TYPE_NONE && weaponid == 41){
            if(IsPlayerInRangeOfPoint(playerid,8.0,fX,fY,fZ))
            {
                 //Dann befindet sich das Ziel des Schusses in direkter Nähe (8.0 SA Einheiten)
            }
        }
        return 1;
    }

    PS: Ist kein Objekt, da die SA Map quasi als "NONE" Type ist...selbst erstellte Objekte ist der Typ Object.