Beiträge von robbi2304

    Hallo,


    Ich habe ein Problem wen ich was lade das funktioniert bin ich beim Biz und will abladen Funktioniert das nicht warum?
    er gibt mir aus /unload zeigt er mir ja an: {247BA6}* Benutze {33AA33}/unloadbenzin [Menge]
    wen ich dann die menge angebe gibt er mir nichts mehr aus warum?

    Falls du ne Menge angibst läuft da einfach was falsch da du nur int aufrufst aber keine menge
    if(sscanf(params, "i", int))return SendClientMessage(playerid, COLOR_GREY, "{247BA6}* Benutze {33AA33}/unload [Menge]");

    Okay. Wenn der Beifahrer z.b eine Taste drücken müsste würde ich es wie folgt machen


    1. Frage ab ob das Fahrzeug einen Beifahrer hat. Wenn ja returnen
    2. Frage ab ob der Beifahrer in einem Fahrzeug ist und ob der Fahrer im Fahrzeug ist. Wenn kein Fahrer im Fahrzeug ist, werf den Beifahrer einfach aus dem Fahrzeug. Das wäre so was mir einfallen würde

    Ich würde dir empfehlen in OnPlayerStateChange abzufragen auf welchem Sitzplatz er ist. Sobald du Enter oder F drückst gibt er dir OnPlayerEnterVehicle schon aus. Mit OnPlayerStateChange und newstate behebst du das ganze Problem Ideal.
    Ich denke der Fehler liegt einfach darin das er die Funktion viel zu früh aufrufen tut


    Das ist die einzige Methode die ich kenne um es richtig zu realisieren.



    Hier ein beispiel


    public OnPlayerStateChange(playerid, newstate, oldstate){
    if(newstate==PLAYER_STATE_DRIVER)
    {
    if(PlayerInfo[playerid][pLoggedIn]==false)return 1;
    new vID=GetPlayerVehicleID(playerid);
    for(new i=0; i<sizeof(ahCars); i++)
    {
    if(ahCars[i][id_x]!=vID)continue;
    SetPVarInt(playerid,"buyCarID",i);
    if(PlayerInfo[playerid][pMember]>0)
    {
    ShowPlayerDialog(playerid, DIALOG_AUTOKAUFEN2, DIALOG_STYLE_LIST, "{00ff00}Zugehörigkeit", "Privat\nFraktion", "Auswählen", "Beenden");
    }
    else
    {
    new string[256];
    format(string,sizeof(string),"Möchten sie das Fahrzeug für %i$ kaufen?",ahCars[i][c_preis]);
    ShowPlayerDialog(playerid,DIALOG_AUTOHAUS1,DIALOG_STYLE_MSGBOX,"Autoverkauf",string,"Ja","Nein");
    return 1;
    }
    }
    }

    Hier wird der Spawn angesprochen



    public OnPlayerSpawn(playerid)
    {
    pHealth[playerid] = PlayerInfo[playerid][pLive];
    foreach(Player, i)
    {
    new Float:Health;
    GetPlayerHealth(i, Health);
    new string[128];
    format(string,sizeof(string),"Health %i",Health);
    SendClientMessage(i,COLOR_RED,string);
    }
    SetPlayerArmour(playerid,0);
    SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]);
    if(PlayerInfo[playerid][pBanned]==-1)
    {
    SetPlayerPos(playerid,1242.8275,-1695.3693,16.1874);
    new string[1600],string1[1300],name1[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name1,sizeof(name1));
    format(string,sizeof(string),"Dieser Account ist gesperrt, mit ihm kann nicht gespielt werden.\n\nWenn das nicht dein Account ist, verwende einen anderen Nicknamen\nWenn das dein Account ist und du zu unrecht gesperrt wurdest, melde dich im Forum unter"Servername"\n\nGrund: %s\nDauer:Permanent\nAusgeführt von: %s",PlayerInfo[playerid][pBanreason],PlayerInfo[playerid][pBanner]);
    strcat(string1,string);
    ShowPlayerDialog(playerid, DIALOG_STATISTIKEN, DIALOG_STYLE_MSGBOX,PlayerInfo[playerid][pName],string1,"Ok","");
    SetTimerEx("KickTimer",1000,false,"i",playerid);
    }
    else
    {
    if(PlayerInfo[playerid][pBanned]==1)
    {
    SetPlayerPos(playerid,1242.8275,-1695.3693,16.1874);
    new string[1600],string1[1300],name1[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name1,sizeof(name1));
    format(string,sizeof(string),"Dieser Account ist gesperrt, mit ihm kann nicht gespielt werden.\n\nWenn das nicht dein Account ist, verwende einen anderen Nicknamen\nWenn das dein Account ist und du zu unrecht gesperrt wurdest, melde dich im Forum unter"Servername"\n\nGrund: %s\nDauer:%s\nAusgeführt von: %s",PlayerInfo[playerid][pBanreason],PlayerInfo[playerid],PlayerInfo[playerid][pBanner]);
    strcat(string1,string);
    ShowPlayerDialog(playerid, DIALOG_STATISTIKEN, DIALOG_STYLE_MSGBOX,PlayerInfo[playerid][pName],string1,"Ok","");
    SetTimerEx("KickTimer",1000,false,"i",playerid);
    }
    else
    {
    if(PlayerInfo[playerid][SpawnInKnast]==1)
    {
    SetPlayerPos(playerid, 265.9037,77.2875,1001.0391);
    SetPlayerInterior(playerid,6);
    jailTimer[playerid] = SetTimerEx("SetPlayerUnjail", 1000, 1, "d",playerid);
    if(jailTimer[playerid] == -1) KillTimer(jailTimer[playerid]);
    TogglePlayerControllable(playerid,1);
    }
    if(PlayerInfo[playerid][pSpawn] == 1)
    {
    SetPlayerPos(playerid,1243.0741,-1695.6372,16.1820);
    SetPlayerVirtualWorld(playerid,0);



    }
    if(PlayerInfo[playerid][pSpawn] == 2)
    {
    SetPlayerPos(playerid,-1969.2156,137.9266,27.6875);
    SetPlayerVirtualWorld(playerid,0);



    }
    if(PlayerInfo[playerid][pSpawn] == 3)
    {
    SetPlayerPos(playerid,2849.0522,1290.9452,11.3906);
    SetPlayerVirtualWorld(playerid,0);



    }
    if(PlayerInfo[playerid][pSpawn]==4)
    {
    if(PlayerInfo[playerid][pMember]>0 || PlayerInfo[playerid][pLeader]>0)
    {
    new fID;
    fID = PlayerInfo[playerid][pMember];
    SetPlayerPos(playerid, fInfo[fID][f_x],fInfo[fID][f_y],fInfo[fID][f_z]);
    SetPlayerFacingAngle(playerid, fInfo[fID][f_r]);
    SetPlayerInterior(playerid, fInfo[fID][f_inter]);
    SetPlayerVirtualWorld(playerid, fInfo[fID][f_world]);
    SetPlayerColor(playerid, fInfo[fID][f_color]);
    }
    else
    {
    PlayerInfo[playerid][pSpawn]=1;
    SpawnPlayer(playerid);
    }
    }
    if(PlayerInfo[playerid][pSpawn]==5)
    {
    for(new i=0; i<sizeof(hInfo); i++)
    {
    if(!hInfo[i][h_id])continue;
    if(!strlen(hInfo[i][h_besitzer]))continue;
    if(strcmp(hInfo[i][h_besitzer], getPlayerName(playerid), true))continue;
    if(hInfo[i][ih_x] != 0.0)
    {
    //Im Haus spawnen
    SetPlayerPos(playerid, hInfo[i][ih_x], hInfo[i][ih_y], hInfo[i][ih_z]);
    SetPlayerInterior(playerid, hInfo[i][h_interior]);
    SetPlayerVirtualWorld(playerid, i);
    }
    else
    {
    //Vorm Haus Spawnen
    SetPlayerPos(playerid, hInfo[i][h_x], hInfo[i][h_y], hInfo[i][h_z]);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    }
    }
    }
    }
    }
    if(OnDuty[playerid] ==1)
    {
    OnDuty[playerid] =0;
    }
    return 1;
    }

    Probiers mal so



    stock MySQL_SetupConnection(ttl = 3)
    {
    print("[MySQL] Verbindungsaufbau...");



    switch(GetServerVarAsInt("port"))
    {
    case 7777:
    {
    mysql_log(ALL);
    handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DBSE);
    }
    }
    //Prüfen und gegebenenfalls wiederholen
    if(mysql_errno(handle) != 0)
    {
    //Fehler im Verbindungsaufbau, prüfe ob ein weiterer Versuch gestartet werden soll
    if(ttl > 1)
    {
    //Versuche erneut eine Verbindung aufzubauen
    print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden.");
    printf("[MySQL] Starte neuen Verbindungsversuch (TTL: %d).", ttl-1);
    return MySQL_SetupConnection(ttl-1);
    }
    else
    {
    //Abbrechen und Server schließen
    print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden.");
    print("[MySQL] Bitte prüfen Sie die Verbindungsdaten.");
    print("[MySQL] Der Server wird heruntergefahren.");
    return SendRconCommand("exit");
    }
    }
    printf("[MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: %d", _:handle);
    return 1;
    }

    Mein AntiCheat bereitet mir derzeit Probleme. Sobald ich auf den Server Connecte habe ich pHealth = 100; zugewiesen.


    Nun gebe ich mein Passwort ein und die pHealth wird komischerweise auf 0 gestzt (erfahren durch printf)


    Nun ist meine Frage was kann man machen damit dieser Befehl richtig funktioniert ?



    if(Health != pHealth[i] && Health > 0)
    {
    if(Health > pHealth[i])
    {

    SetPlayerHealth(i, pHealth[i]);
    SendClientMessage(i,COLOR_RED, "Health Hacker"); //hier mäckert er
    }
    else
    {
    pHealth[i] = Health;
    return 1;
    }
    }

    Achja xD immer diese flüchtigkeitsfehler.


    Danke dir klappt nun


    wie kann man eigentlich auselesen wieviel schuss die waffe hat die ausgewählt ist ?

    Wollte mal die Waffe auslesen lassen. Komischerweise gibt er mir hierbei ein Teil meines Passwortes aus 8|


    Wo ist der Fehler ?



    new string[128],name[64],gunname[32],reason;
    GetPlayerName(playerid, name, sizeof(name));
    GetWeaponName(reason, gunname, sizeof(gunname));
    format(string,sizeof (string),"System: %s wurde gekickt Grund: Waffenhack / %s",name,gunname);
    SendClientMessageToAll(COLOR_RED,string);
    SetTimerEx("KickTimer",100,false,"i",playerid);

    Ich habe das ganze von @Dachdecker mal ausprobiert. Allerdings sofern ich den Wert Anzahl mit sende, kann er den get Befehl nicht identifizieren. Daher ist dies immernoch nicht die erhoffte Problem lösung.


    Ich habe mir wie folgt mal den sscanf Wert printen lassen mit


    printf("Ding:%s Anzahl:%s",ding,anzahl);


    dieser gibt alles richtig aus.


    Vielleicht kann @Jeffry dabei auch behilflich sein