Beiträge von IPrototypeI

    Entweder du erstellst dir eine variable in der du die playerid des NPC speicherst, um den NPC zu ermitteln kannst du den Namen unter OnPlayerConnect und ob er ein NPC ist abprüfen und die Variable setzen.


    Oder du schreibst dir eine Funktion
    GetPlayerIDByName(npcname[]) aber diese findest du auch im Codeschipselbereich.
    Um die ID des NPC zu ermitteln

    Es könnte daran liegen das er die ID nicht richtig umwandelt von dem Spieler, von dem du das Ticket annimmst und du dadurch auf einen negativen Index zugreifst oder der Fehler liegt in dieser Funktion ShowTicketSystem();


    Du kannst du das crashdetect plugin mal downloaden https://github.com/Zeex/samp-plugin-crashdetect/release


    danach erstellst du in dem pawno ordner eine datei mit dem namen pawn.cfg und dort schreibst du -d3 rein dann sollte dir die entsprechende Zeile angezeigt werden, wo dein Skript genau crasht.

    YaBroo:
    Bullshit. Ohne die Größe des Strings anzugeben funktioniert das ganze nicht ;)

    Wenn man den Funktion sscanf verwendet muss man die länge nicht angeben hier droht jedoch die gefahr von string buffer overflows.
    http://wiki.sa-mp.com/wiki/Sscanf_code
    @YaBroo


    Wenn du das Plugin nutzst musst du dir auch sicher sein das die FUnktion sscanf aus dem skript entfernt wurde da gibt es keine komplikationen
    die neuste Version von sscanf findest du hier
    http://forum.sa-mp.com/showthread.php?t=570927

    So sollte der Befehl passen, speicherst und lädst du den auch den Wert von Mute, wenn ja und es sollte immer noch nicht funktionieren,
    dann lass dir beim laden der Spielerdaten zum schluss den Wert von mute ausgeben


    printf("Mute- Wert %d", sInfo[playerid][mute]);


    //edit


    Das ist zwar offtopic, jedoch Leute, welche unter OnPlayerUpdate die Spielerdaten andauernt speichern die haben keine Ahnung vom Skripten geschweige von Performance, ich glaube schlimmer kann man sein Skript nicht vergewaltigen.

    Kannst du bitte mal mysql_function_query, mysql_pquery, mysql_tquery posten mit dem du die Daten ausliest, also hier ist kein Fehler zu erkennen
    aber sind die Daten auch in der Datenbank enthalten ?



    Ein kleiner Tipp du braucht keine so riesige Strings da reiche 20 Zeichen und ein String kannst du auch mehrmals nutzen.
    Bedeutet format überschreibt den gesamten String


    Code
    for(new i; i<13; i++)
    {
    	new wString[20];
    	format(wString,sizeof(wString),"waffe%d",i);
    	pWaffenID[i] = cache_get_field_content_int(i,wString,dbhandle);
    	format(wString,sizeof(wString),"munition%d",i);
    	pAmmu[i] = cache_get_field_content_int(i,wString,dbhandle);
    	GivePlayerWeapon(playerid,pWaffenID[i],pAmmu[i]);
    }

    Mal eine Frage, warum sagst Du, dass Du 4 Jahre PHP-Erfahrungen hast, aber nicht mal ein paar SQL-Abfragen mit PHP hinbekommst?
    (Suche jemanden, der mir hilft eine kleine SQL Prozedur zu erstellen)


    Ich will jetzt gar nicht wissen, inwiefern bei den anderen "Erfahrungen" geflunkert wurde...

    Er schreibt doch nur rein das er 4 Jahre PHP-Erfahrung hat , dass muss nicht bedeuten das er darin gut ist was er auch nirgends schreibt.


    Du schreibst auch das du fortgeschrittene Java Kenntnisse besitztst und suchst dir trotzdem jemand der eine Android App für dich programmiert.


    Daher calm down.

    Das Problem bei Objekten ist das ihre Rotation anders ausgerichtet ist ich hab das ganze nochmal probiert und hab dir den Code mit dem ich das kurz getestet habe geschrieben



    Die Funktion ist nicht fehlerhaft den sie berechnet den SetPlayerCameraLookAt ausgehend von der Rotation in einer Distanz von 10 Units , ich habe die Funktion davor selbst getestet und sie funktioniert wie sie soll ^^

    lässt sich von selbst erklären


    Also dein Code hat noch optimierungs potenzial


    Code
    stock ConvertIntToString(val, string[]){
        valstr(string, val);
        for(new i = strlen(string)-1; i >= 3;) {
             i-= 2;
            strins(string, ".", i--, 1);
        }
        return 1;
    }




    Dein #undef DECIMAL_SYMBOL kannst du dir sparen, das würdest du nur brauchen falls du dasselbe Define nur mit einem anderen Inhalt nochmal im Code verwenden würdest


    //edit
    Paar nützliche Funktionen


    //edit neue Funktion


    Code
    SetPlayerCameraLookAtEx(playerid, Float:X, Float:Y, Float:Z, Float:RotX, Float:RotZ)


    Mit dieser Position kann man durch Winkel die Kamera via SetPlayerCameraPos setzen


    Code
    stock SetPlayerCameraLookAtEx(playerid, Float:X, Float:Y, Float:Z, Float:RotX, Float:RotZ) {
    	SetPlayerCameraPos(playerid, X, Y, Z);
    	X += 10.0 * floatcos(RotX, degrees) * floatcos(RotZ, degrees);
    	Y += 10.0 * floatcos(RotX, degrees) * floatsin(RotZ, degrees);
    	Z += 10.0 * floatsin(RotX, degrees);
    	SetPlayerCameraLookAt(playerid, X, Y, Z);
    	return 1;
    }


    Gibt es eine Funktion ungefähr so: SetPlayerCameraLookAt(playerid, x, y, z, rotx, roty, rotz); ?

    Nein leider nicht aber ich hab dir die kleine Funktion kurz geschrieben



    Code
    stock SetPlayerCameraLookAtEx(playerid, Float:X, Float:Y, Float:Z, Float:RotX, Float:RotY) {
    	SetPlayerCameraPos(playerid, X, Y, Z);
    	X += 10.0 * floatcos(RotX, degrees) * floatcos(RotY, degrees);
    	Y += 10.0 * floatcos(RotX, degrees) * floatsin(RotY, degrees);
    	Z += 10.0 * floatsin(RotX, degrees);
    	SetPlayerCameraLookAt(playerid, X, Y, Z);
    	return 1;
    }