Beiträge von Jeffry

    Es wird ja der Lag kompensiert, wenn du das aus machst, also auf 0 setzt, wird der Lag zwischen den zwei Spielern nicht mehr kompensiert. Wenn du es jetzt mit einem Spieler testest, der kaum einen Lag dir gegenüber aufweist, ist es klar, dass die Hitbox fast am Skin ist.
    Wenn du es mit einem Spieler aus Indien testest, der zudem ein schlechtes Internet hast dann wirst du den Unterschied merken.

    Ok, komisch.


    Eigentlich sollte das keinen Unterschied machen, richtig.


    Ja, per Command habe ich das ausführen lassen, aber auch das sollte keinen Unterschied machen.



    Folgendes kannst du mal probieren: Lade dir einen leeren Server herunter (http://files.sa-mp.com/) erstelle einen leeren GameMode und packe nur die Schleife mit dem SetPlayerMarkerForPlayer in einen Befehl (nur den GameMode mit dem Befehl laden, keine Filterscripts, keine Plugins, nichts). Dann gehst du in den Server und gibst den Befehl ein. Die prints lässt du drin. Musst eben darauf achten, dass du entweder in der Abfrage die virtuelle Welt zu 0 änderst, oder die Spieler bei OnPlayerSpawn in Welt 7 setzt.


    Falls das auch nicht klappt, poste bitte den Code von dem "leeren" Gamemode.

    Du musst jeweils nach einem
    GivePlayerMoney(playerid, -1000);
    Noch das einfügen:
    sSpieler[playerid][Bargeld]-=1000;



    Oder du suchst nach der Funktion die das macht. Das ist weil der Code ein Serverside Geld hat.

    Poste bitte den Befehl mit dem du das Geld abziehst, und poste den Teil des Codes mit dem du einen Spieler speicherst, und sage uns unter welchem Callback die Speicherung steht (OnPlayerDisconnect?).

    Ja, dann machst du
    case 14: //Dialog für Ballas anzeigen
    case 16: //Dialog für Los Santos anzeigen
    //usw...

    OnPlayerConnect:
    query[128];
    format(query,sizeof(query),"SELECT Skin FROM user WHERE username='%s'",name); //Anpassen
    mysql_function_query(dbhandle,query,true,"OnPlayerSkinTextdraw","i",playerid);



    forward OnPlayerSkinTextdraw(playerid);
    public OnPlayerSkinTextdraw(playerid)
    {
    if(cache_num_rows() != 0) SpielerInfo[playerid][Skin] = cache_get_field_content_int(0,"Skin",dbhandle);
    else SpielerInfo[playerid][Skin] = 0;
    return 1;
    }

    Mit strtok bist du besser dran.


    ocmd:setstats(playerid,params[])
    {
    new str[144],pID,wert, tmp[20], tmp2[20], tmp3[20], idx;
    tmp = strtok(params, idx);
    tmp2 = strtok(params, idx);
    if(!strlen(tmp2))return SCM(playerid,-1,"Fehler: /setstats [playerid/SpielerName] [name]"),SCM(playerid,-1,"[name]: Respektpunkte");
    if(IsNumeric(tmp)) pID = strval(tmp);
    else pID = ReturnPlayerID(tmp);
    if(!IsPlayerConnected(pID))return SCM(playerid,-1,"Der Spieler ist nicht online");
    if(!strcmp(tmp2,"Respektpunkte",true))
    {
    tmp3 = strtok(params, idx);
    if(!strlen(tmp3))return SCM(playerid,-1,"Fehler: /setstats [playerid/SpielerName] [Respektpunkte] {FF0000}[Wert]");
    new wert = strval(tmp3);
    new old=SInfo[pID][pRespekt];
    SInfo[pID][pRespekt]=wert;
    new neu=SInfo[pID][pRespekt];
    SetPlayerProgressBarValue(playerid, ffffd, float(SInfo[playerid][pRespekt]));
    SCMEx(pID,-1,"Admin: %s hat deine Respektpunkte verändert. Vorher: %d Nacher: %d",SpielerName(playerid),old,neu);
    format(str,sizeof str,"SETSTATS: Admin %s hat die Respektpunkte von %s verändert. Vorher: %d Nacher: %d",SpielerName(playerid),SpielerName(pID),old,neu);
    printlog(str);
    }
    return 1;
    }


    Funktionen die du definieren musst
    stock strtok(const string[], &index) //©Jeffry
    {
    new result[20], length = strlen(string), i = index;
    while ((i < length) && (string[i] == ' ')) i++;
    strmid(result,string,i,((index = strfind(string, " ", false, i)) == -1) ? (index = length) : (index) , 20);
    index++;
    return result;
    }

    Funktionen die du definieren musst
    stock ReturnPlayerID(l_PlayerName[]) //©Jeffry
    {
    new l_name[MAX_PLAYER_NAME];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerName(i, l_name, MAX_PLAYER_NAME))
    {
    if(!strcmp(l_name,l_PlayerName, true)) return i;
    }
    }
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerName(i, l_name, MAX_PLAYER_NAME))
    {
    if(strfind(l_name,l_PlayerName,true)!=-1) return i;
    }
    }
    return INVALID_PLAYER_ID;
    }

    Funktionen die du definieren musst
    stock IsNumeric(string[])
    {
    for (new i = 0, j = strlen(string); i < j; i++)
    {
    if ((string[i] > '9' || string[i] < '0')) return 0;
    }
    return 1;
    }