Beiträge von Beavis

    stock mysql_Delete(Table[], Where[], Is[])
    {
    new query[128];
    format(query, 128, "DELETE FROM `%s` WHERE `%s` = '%s'", Table, Where, Is);
    mysql_query(query);
    return 1;
    }


    Anwendung:
    mysql_Delete("player", "Name", "Hans_Wurst");
    Resultat:
    er löscht aus der tabelle player den namen Hans wurst


    und free Ressult hat nur was beim SELECT zu suchen



    1. der Fehler war behoben
    2. Wenn er es oben deklairt kommt zwar kein error aber der name wird nicht ausgegeben
    3. Brauchen wir einfach nur die Zeile wo der letzte fehler drinsteht

    //e

    [14:32:15] *** Streamer Plugin: Obsolete or invalid native "Streamer_RegisterInterface" found (script needs to be recompiled with the latest include file)
    [14:32:15] *** Streamer Plugin: Obsolete or invalid native "Streamer_AddPlayer" found (script needs to be recompiled with the latest include file)
    [14:32:15] *** Streamer Plugin: Obsolete or invalid native "Streamer_RemovePlayer" found (script needs to be recompiled with the latest include file)
    [14:32:15] *** Streamer Plugin: Obsolete or invalid native "Streamer_VerifyPickup" found (script needs to be recompiled with the latest include file)
    [14:32:15] *** Streamer Plugin: Obsolete or invalid native "Streamer_VerifyCheckpoint" found (script needs to be recompiled with the latest include file)
    [14:32:15] *** Streamer Plugin: Include file version (unknown version) does not match plugin version (0x26105) (script needs to be recompiled with the latest include file)

    Das sollte so einiges erklären

    format(string, sizeof(string), "[Multiaccount]: {ffff00} Spieler %s (ID: %d) und Spieler %s verwenden die gleiche IP - Adresse.", SpielerName(playerid), playerid, GetNameFormIP(playerid));


    Ich hab keine lust noch die ID zu holen^^
    Aber so würde/müsste er dir den 2. Namen angeben den er findet

    So hab es mal selber durchgedacht und durchgetestet
    Wenn es dein name ist gibt er deinen Namen wieder
    ist er es nicht gibt er den namen des anderen Spielers her


    //Global
    new UserIP[MAX_PLAYERS][32],IPName[MAX_PLAYERS][MAX_PLAYER_NAME];
    //OnPlayerConnect
    new pID_ip[32],UserName[MAX_PLAYER_NAME];
    GetPlayerIp(playerid, pID_ip, 32);
    GetPlayerName(playerid, UserName, MAX_PLAYER_NAME);
    format(UserIP[playerid],32,"%s",pID_ip);
    format(IPName[playerid],MAX_PLAYER_NAME,"%s",UserName);
    //Funktion
    stock GetNameFormIP(playerid)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(!strcmp(UserIP[playerid],UserIP[i]))return IPName[i];
    }
    return IPName[playerid];
    }
    Ich hab das für den test so gemacht:
    printf("IP Testname: %s",GetNameFormIP(playerid));
    herraus kam das

    Zitat

    [14:10:32] IP Testname: Train

    Ich hab ihn dir nochmal umgeschrieben
    stock GetNameFormIP(playerid,_IP[])
    {
    new IPName[MAX_PLAYER_NAME],IPUser[32];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    GetPlayerIp(i, IPUser, 32);
    if(!strcmp(_IP,IPUser,true))
    {
    if(playerid!=i)
    {
    GetPlayerName(i,IPName,MAX_PLAYER_NAME);
    return IPName;
    }
    }
    }
    GetPlayerName(playerid,IPName,MAX_PLAYER_NAME);
    return IPName;
    }
    das meinte ich gerade
    if(playerid!=i)

    Teste mal das hier könnte evtl klappen hab es aber nicht getestet
    stock GetNameFormIP(playerid,_IP[])
    {
    new IPName[MAX_PLAYER_NAME],IPUser[32];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    GetPlayerIp(i, IPUser, 32);
    if(!strcmp(_IP,IPUser,true))
    {
    if(playerid!=i)
    {
    GetPlayerName(i,IPName,MAX_PLAYER_NAME);
    }
    }
    }
    return IPName;
    }
    anwendung:
    GetNameFormIP(playerid,IP DES SPIELERS);

    Deine Anfrage war etwas fail
    so sollte es gehen
    if(newkeys == KEY_NO)
    {
    if(GetPlayerVehicleSeat(playerid) == 0)
    {
    new car = GetPlayerVehicleID(playerid);
    if(GetVehicleModel(car) == 509 || GetVehicleModel(car) == 481 || GetVehicleModel(car) == 510)return 1;
    new vehicleid = GetPlayerVehicleID(playerid), Float:vhp;
    if(GetVehicleHealth(vehicleid, vhp) <= 300)
    {
    SendClientMessage(playerid,Rot,"Dieses Fahrzeug hat einen Motorschaden.");
    GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(car,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Engine[car] = false;
    }
    else
    {
    if(Engine[car] == false)
    {
    GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(car,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    Engine[car] = true;
    }
    else
    {
    GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(car,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Engine[car] = false;
    }
    }
    }
    }

    TogglePlayerControllable funktioniert nicht mehr so gut.


    klar funktioniert das sogar besser als die anims clearen
    Da du den einmal stoppst und wieder freigibst daher passiert da nix..


    @te
    teste mal das
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(PlayerInfo[playerid][pGangJailed] == 1)
    {
    SendClientMessage(playerid,-1,"Da du im Gangjail bist darfst du in keinen Auto einsteigen!");
    TogglePlayerControllable(playerid,0);
    TogglePlayerControllable(playerid,1);
    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_NONE);
    }
    return 1;
    }

    An der Datenbank kann es eigentlich nicht liegen da ich vorher alles mit mysql_SetInt & mysql_GetInt gemacht habe


    Es liegt nicht daran du musst auf der reihenfolge achten ist da was verrutscht, kann es nicht richtig weitergeben an den enum das sollst du mal prüfen wenn das auch nicht klappt dann nutz die cache funktion von den r7 plugin

    Wenn er die nicht setzt, dann hab ich so auch keine idee
    Aber es kann an der Datenbank liegen, das du da falsche werte zuordnest
    oder es kann auch sein das du den sscanf stock nimmst etc

    Übergib die werte mal einzeln an den Enum weiter also als muster so:
    sscanf(data, "e<p<|>{i}s[24]{i}iiiiifiiiiiiiiiiiiiiiiiiiiiis[128]iiiiiiiiiffffiiiiiiiiii>",SpielerInfo[playerid][Name],........);
    Das musste ich leider auch machen da es bei mir auch nicht ging
    Bei mir ist das Ganze so aufgebaut, damit du sehen kannst wie ich es meine
    sscanf(Data, "p<|>ds[64]s[128]dddddddddddds[128]s[128]s[16]ddddddd",
    PlayerInfo[playerid][Userid],PlayerInfo[playerid][Name],PlayerInfo[playerid][Passwort],PlayerInfo[playerid][Admin],PlayerInfo[playerid][Job],PlayerInfo[playerid][Team],PlayerInfo[playerid][Geld],PlayerInfo[playerid][Skin],
    PlayerInfo[playerid][Level],PlayerInfo[playerid][Respekt],PlayerInfo[playerid][PayDay],PlayerInfo[playerid][PayDayTog],PlayerInfo[playerid][Rank],PlayerInfo[playerid][Leader],PlayerInfo[playerid][Banned],PlayerInfo[playerid][BanGrund],
    PlayerInfo[playerid][BanAdmin],PlayerInfo[playerid][IP],PlayerInfo[playerid][Nummer],PlayerInfo[playerid][Safeban],PlayerInfo[playerid][Helm],PlayerInfo[playerid][Jobvertrag],PlayerInfo[playerid][Star],PlayerInfo[playerid][Igvip],
    PlayerInfo[playerid][Jailtime]);