Beiträge von Markus20

    du kannst es natührlich auch einfach probieren,


    du musst ja nur x und y ändern und vielleicht z(höhe), einfach mal +1 oder so



    AttachObjectToVehicle(sirene[vid],vid,x, y, z, 2.0, 2.0, 3.0);

    Hi,


    ich hab mir ein autorestart zusammengebastelt,
    jetzt wollte ich euch fragen ob das ein gute lösung ist, oder ob der cod überhaupt richtig ist oder man ihn verbessern kann


    ich sag gleich das ich davon nicht viel ahung hab und das es nur zusammengebastelt ist, aber es funktioniert



    also da gibts immer ungefähr um 5 uhr ein restart




    mfg Markus

    ja aber wie kann es sein das autos die selbe vehicle id bekommen, das geht ja normal gar nicht


    es hatte schon mehr leute den bug, aber es gab nie eine richtige lösung

    Hallo,


    bei meinem Auto Script vertauschen sich die vehicleids


    z.B.
    Tom portet sein auto zu sich und bekommt das auto von jemand anderen, weil sie die selbe vehilceid in SpielerInfo[playerid][PlayerAuto] haben


    hier mal die Codeschnipsel wo SpielerInfo[playerid][PlayerAuto] ein neuen wert bekommt oder geändert wird



    beim auto kaufen
    SpielerInfo[playerid][PlayerAuto][CarID] = CreateVehicle(model,kAutoSpawn[rand][0],kAutoSpawn[rand][1],kAutoSpawn[rand][2],kAutoSpawn[rand][3],-1,-1,99999999);


    beim auto respawnen
    SpielerInfo[playerid][PlayerAuto][CarID] = CreateVehicle(SpielerAuto[playerid][CarID][cModel],SpielerAuto[playerid][CarID][CarPos][0],SpielerAuto[playerid][CarID][CarPos][1],SpielerAuto[playerid][CarID][CarPos][2],SpielerAuto[playerid][CarID][CarPos][3],SpielerAuto[playerid][CarID][cColor1],SpielerAuto[playerid][CarID][cColor2],99999999);


    beim einloggen
    SpielerInfo[playerid][PlayerAuto][cid] = CreateVehicle(SpielerAuto[playerid][cid][cModel],SpielerAuto[playerid][cid][CarPos][0],SpielerAuto[playerid][cid][CarPos][1],SpielerAuto[playerid][cid][CarPos][2],SpielerAuto[playerid][cid][CarPos][3],SpielerAuto[playerid][cid][cColor1],SpielerAuto[playerid][cid][cColor2],99999999);


    bei onvehilcespawn(das ist zwar unnötig aber ist ja egal)
    SpielerInfo[i][PlayerAuto][ii] = CreateVehicle(SpielerAuto[i][ii][cModel],SpielerAuto[i][ii][CarPos][0],SpielerAuto[i][ii][CarPos][1],SpielerAuto[i][ii][CarPos][2],SpielerAuto[i][ii][CarPos][3],SpielerAuto[i][ii][cColor1],SpielerAuto[i][ii][cColor2],99999999);


    bei OnPlayerDisconnect
    SpielerInfo[playerid][PlayerAuto][i] = 0;


    und beim auto verkaufen
    SpielerInfo[playerid][PlayerAuto][CarID] = 0;


    nur hier bekommt SpielerInfo[playerid][PlayerAuto] ein neuen wert



    ich hab ein command eingebaut der alle spieler durchgeht und von allen autos die vehicleids auflistet damit ich mal sehe was da los ist


    man kann drei autos haben deswegen 1 , 2 oder 3 zahlen


    Code
    [30.4.2013] [18:12:38]Spieler1(id:11): 1056, 1056, 1058;               hier hat er zweimal   1056
    [30.4.2013] [18:12:38]Spieler2(id:12): 1059;
    [30.4.2013] [18:12:38]Spieler3(id:13): 1056, 1058;                          hier hat wieder einer 1056
    [30.4.2013] [18:12:38]Spieler4(id:14): 1063, 1071;
    [30.4.2013] [18:12:38]Spieler5(id:15): 1069, 1070;
    [30.4.2013] [18:12:38]Spieler6(id:17): 1061;
    [30.4.2013] [18:12:38]Spieler7(id:19): 1065, 1066, 1067;
    [30.4.2013] [18:12:38]Spieler8(id:23): 1056, 1057, 1058;             hier auch 1056


    hier ist noch der command


    dcmd_carbug(playerid, params[])
    {
    #pragma unused params
    if(GetPVarInt(playerid, "admin")>=10 || IsPlayerAdmin(playerid))
    {
    new string[70];
    ForPlayer(i)
    {
    if(!SpielerInfo[i][PlayerAutos]) continue;

    if(SpielerInfo[i][PlayerAutos] == 1)
    {
    format(string,sizeof(string), "%s(id:%d): %d;",Player(i), i, SpielerInfo[i][PlayerAuto][0]);
    }
    else if(SpielerInfo[i][PlayerAutos] == 2)
    {
    format(string,sizeof(string), "%s(id:%d): %d, %d;",Player(i), i, SpielerInfo[i][PlayerAuto][0],SpielerInfo[i][PlayerAuto][1]);
    }
    else if(SpielerInfo[i][PlayerAutos] == 3)
    {
    format(string,sizeof(string), "%s(id:%d): %d, %d, %d;",Player(i), i, SpielerInfo[i][PlayerAuto][0],SpielerInfo[i][PlayerAuto][1],SpielerInfo[i][PlayerAuto][2]);
    }
    SendClientMessage(playerid,hellrot,string);
    BugLog(string);
    }
    }
    else SendClientMessage(playerid,rot,KEINADMIN);
    return 1;
    }



    wie kann es sein das leute die selbe vehilceids haben, ich hoffe es kann jemand helfen




    mfg Markus

    md5 kannst du gar nicht auslesen, du musst das im inputtext auch mit md5 verschlüsseln und dan die beiden vergleichen


    if(!strcmp(MD5_Hash(inputtext), mysql_ReturnPasswort(SpielerName(playerid)), true))

    Hallo,


    bei meinem Auto Script vertauschen sich die vehicleids


    z.B.
    Tom portet sein auto zu sich und bekommt das auto von jemand anderen, weil sie die selbe vehilceid in SpielerInfo[playerid][PlayerAuto] haben


    hier mal die Codeschnipsel wo SpielerInfo[playerid][PlayerAuto] ein neuen wert bekommt oder geändert wird



    beim auto kaufen
    SpielerInfo[playerid][PlayerAuto][CarID] = CreateVehicle(model,kAutoSpawn[rand][0],kAutoSpawn[rand][1],kAutoSpawn[rand][2],kAutoSpawn[rand][3],-1,-1,99999999);


    beim auto respawnen
    SpielerInfo[playerid][PlayerAuto][CarID] = CreateVehicle(SpielerAuto[playerid][CarID][cModel],SpielerAuto[playerid][CarID][CarPos][0],SpielerAuto[playerid][CarID][CarPos][1],SpielerAuto[playerid][CarID][CarPos][2],SpielerAuto[playerid][CarID][CarPos][3],SpielerAuto[playerid][CarID][cColor1],SpielerAuto[playerid][CarID][cColor2],99999999);


    beim einloggen
    SpielerInfo[playerid][PlayerAuto][cid] = CreateVehicle(SpielerAuto[playerid][cid][cModel],SpielerAuto[playerid][cid][CarPos][0],SpielerAuto[playerid][cid][CarPos][1],SpielerAuto[playerid][cid][CarPos][2],SpielerAuto[playerid][cid][CarPos][3],SpielerAuto[playerid][cid][cColor1],SpielerAuto[playerid][cid][cColor2],99999999);


    bei onvehilcespawn(das ist zwar unnötig aber ist ja egal)
    SpielerInfo[i][PlayerAuto][ii] = CreateVehicle(SpielerAuto[i][ii][cModel],SpielerAuto[i][ii][CarPos][0],SpielerAuto[i][ii][CarPos][1],SpielerAuto[i][ii][CarPos][2],SpielerAuto[i][ii][CarPos][3],SpielerAuto[i][ii][cColor1],SpielerAuto[i][ii][cColor2],99999999);


    bei OnPlayerDisconnect
    SpielerInfo[playerid][PlayerAuto][i] = 0;


    und beim auto verkaufen
    SpielerInfo[playerid][PlayerAuto][CarID] = 0;


    nur hier bekommt SpielerInfo[playerid][PlayerAuto] ein neuen wert



    ich hab ein command eingebaut der alle spieler durchgeht und von allen autos die vehicleids auflistet damit ich mal sehe was da los ist


    man kann drei autos haben deswegen 1 , 2 oder 3 zahlen


    Code
    [30.4.2013] [18:12:38]Spieler1(id:11): 1056, 1056, 1058;               hier hat er zweimal   1056
    [30.4.2013] [18:12:38]Spieler2(id:12): 1059;
    [30.4.2013] [18:12:38]Spieler3(id:13): 1056, 1058;                          hier hat wieder einer 1056
    [30.4.2013] [18:12:38]Spieler4(id:14): 1063, 1071;
    [30.4.2013] [18:12:38]Spieler5(id:15): 1069, 1070;
    [30.4.2013] [18:12:38]Spieler6(id:17): 1061;
    [30.4.2013] [18:12:38]Spieler7(id:19): 1065, 1066, 1067;
    [30.4.2013] [18:12:38]Spieler8(id:23): 1056, 1057, 1058;             hier auch 1056


    hier ist noch der command


    dcmd_carbug(playerid, params[])
    {
    #pragma unused params
    if(GetPVarInt(playerid, "admin")>=10 || IsPlayerAdmin(playerid))
    {
    new string[70];
    ForPlayer(i)
    {
    if(!SpielerInfo[i][PlayerAutos]) continue;

    if(SpielerInfo[i][PlayerAutos] == 1)
    {
    format(string,sizeof(string), "%s(id:%d): %d;",Player(i), i, SpielerInfo[i][PlayerAuto][0]);
    }
    else if(SpielerInfo[i][PlayerAutos] == 2)
    {
    format(string,sizeof(string), "%s(id:%d): %d, %d;",Player(i), i, SpielerInfo[i][PlayerAuto][0],SpielerInfo[i][PlayerAuto][1]);
    }
    else if(SpielerInfo[i][PlayerAutos] == 3)
    {
    format(string,sizeof(string), "%s(id:%d): %d, %d, %d;",Player(i), i, SpielerInfo[i][PlayerAuto][0],SpielerInfo[i][PlayerAuto][1],SpielerInfo[i][PlayerAuto][2]);
    }
    SendClientMessage(playerid,hellrot,string);
    BugLog(string);
    }
    }
    else SendClientMessage(playerid,rot,KEINADMIN);
    return 1;
    }



    wie kann es sein das leute die selbe vehilceids haben, ich hoffe es kann jemand helfen




    mfg Markus

    danke, habs jetzt verstanden
    aber weißt du noch was ressourcen schonender ist ?



    ich glaub ja das hier, bin mir nicht sicher
    #define scm(%1,%2,%3,%4) {format(gstring,sizeof(gstring),%3,%4); SendClientMessage(%1,%2,gstring);}
    new gstring[128];

    ja aber 2 fehler sind schonmal behoben, schick die nächsten errors


    edit:


    noch ein fehler gefunden


    else if(strcmp(key,"AH_Typ",true)==0) { AutosL[playerid][Typ]=strval(ini_GetValue(Data)); }


    beim ersten muss das else weg also


    if(strcmp(key,"AH_Typ",true)==0) { AutosL[playerid][Typ]=strval(ini_GetValue(Data)); }

    if(!isPlayerAnAdmin(playerid,3)
    da fehlt eine klammer
    if(!isPlayerAnAdmin(playerid,3))



    if (GetPlayerState(playerid) == 2)
    genau wie hier
    if (GetPlayerState(playerid) == 2))

    hallo


    Zitat

    #define scm(%1,%2,%3,%4); format(gstring[%1],128,%3,%4); SendClientMessage(%1,%2,gstring[%1]);
    new gstring[MAX_PLAYERS];



    ich hab irgendwo das gefunden, was ist von deinem der unterschied zu dem ? oder was ist besser oder schlechter ?
    #define SendText(%0,%1,%2,%3) do{new _string[128]; format(_string,sizeof(_string),%2,%3); SendClientMessage(%0,%1,_string);} while(False)



    mfg

    CJ Skin ist ja 0 glaub ich, das heißt das die variable auf 0 steht


    mach doch mal bei onplayerconnect das hin, und versuchs nochmal, dan dürfte die variable nichtmehr auf 0 sein
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
    {
    if(PlayerInfo[playerid][pSex] == 1)
    {
    //Male Skin
    if(PlayerInfo[playerid][pRank] == 1) { PlayerInfo[playerid][pChar] = 71; }
    else if(PlayerInfo[playerid][pRank] == 2) { PlayerInfo[playerid][pChar] = 280; }
    else if(PlayerInfo[playerid][pRank] == 3) { PlayerInfo[playerid][pChar] = 266; }
    else if(PlayerInfo[playerid][pRank] == 4) { PlayerInfo[playerid][pChar] = 267; }
    else if(PlayerInfo[playerid][pRank] == 5) { PlayerInfo[playerid][pChar] = 281; }
    else if(PlayerInfo[playerid][pRank] == 6) { PlayerInfo[playerid][pChar] = 265; }
    else if(PlayerInfo[playerid][pRank] == 7) { PlayerInfo[playerid][pChar] = 282; }
    else if(PlayerInfo[playerid][pRank] == 8) { PlayerInfo[playerid][pChar] = 288; }
    else if(PlayerInfo[playerid][pSex] == 2) { PlayerInfo[playerid][pChar] = 211; }
    }
    }


    und da bei setplayerskin PlayerInfo[playerid][pChar]
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
    {
    format(string, sizeof(string), "* Officer %s hat sich seine Ausruestung aus einem Schrank genommen.", sendername);
    SetPlayerSkin(playerid, PlayerInfo[playerid][pChar]);
    }

    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
    {
    format(string, sizeof(string), "* Officer %s hat sich seine Ausruestung aus einem Schrank genommen.", sendername);
    SetPlayerSkin(playerid, PlayerInfo[playerid][pChar]);
    }


    einfach PlayerInfo[playerid][pChar] anstatt der id hin, wenn ich mich nicht irre