Beiträge von GooMan

    Zitat

    C:\Program Files (x86)\SAMP\gamemodes\*****(243) : error 035: argument type mismatch (argument 3)
    C:\Program Files (x86)\SAMP\gamemodes\*****(265) : error 033: array must be indexed (variable "MD5_Hash")

    243:


    dini_IntSet(save,"passwort",MD5_Hash(strget(cmdtext,1)));


    265:
    if(strval(s2)== MD5_Hash(strget(cmdtext,1)))


    Ich hab echt keine Ahnung warum das nicht geht '-.- Hoffe mir kann einer Helfen :thumbup:


    Mit udb_hash() geht es aber mit MD5_Hash nicht '-.-

    Kann mir jemand sagen wie ich in pawn und php gleiche passwörter erzeugen kann? Also beispiel:


    User Tippt ingame:
    hundkatzemaus <- wird kodiert <- g4ztg4G4tg <- kommt raus
    User Tippt im Control panel (php)
    hundkatzemaus <- wird kodiert <- g4ztg4G4tg <- kommt raus


    Immoment ist es bei mir so:


    User Tippt ingame:
    hundkatzemaus <- wird kodiert <- 44364578 <- kommt raus
    User Tippt im Control panel (php)
    hundkatzemaus <- wird kodiert <- 85634233 <- kommt raus


    ich arbeite in Pawn mit udb_hash und habe versucht udb_hash auf php umzuschreiben aber es geht irgendwie nicht :( kann mir jemand helfen?


    // EDIT:

    meine php funktion


    // EDIT:
    die dudb_hash funktion:


    stock udb_hash(buf[]) {
    new length=strlen(buf);
    new s1 = 1;
    new s2 = 0;
    new n;
    for (n=0; n<length; n++)
    {
    s1 = (s1 + buf[n]) % 65521;
    s2 = (s2 + s1) % 65521;
    }
    return (s2 << 16) + s1;
    }


    if(strcmp(cmdtext, "/givewanted", true) == 0)
    {
    if(pInfo[playerid][gTeam] == lsoamt || pInfo[playerid][gLeader] == lsoamt || pInfo[playerid][gTeam] == SAPD || pInfo[playerid][gLeader] == SAPD || pInfo[playerid][gTeam] == lsarmy || pInfo[playerid][gLeader] == lsarmy)
    {
    if(IsPlayerConnected(playerid))
    {
    if(!strlen(strget(cmdtext,2))) return SendClientMessage(playerid, COLOR_RED, "Benutze: /givewanted [ID] [WANTEDS]");
    {
    new name[128], save[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
    if(dini_Exists(save)) // steht
    {
    pInfo[playerid][gTeam] = dini_Int(save,"Fraktion");
    pInfo[playerid][gLeader] = dini_Int(save,"Fraktionsleader");
    }


    new text[256];
    new text2[256];
    new text3[256];
    new playername[256], targetname[256], targetid, wanteds;


    wanteds = strval(strget(cmdtext,1));
    targetid = strval(strget(cmdtext,2));


    GetPlayerName(playerid, playername, sizeof(playername));
    GetPlayerName(targetid, targetname, sizeof(targetname));


    /*if(pInfo[playerid][WantedLevel] < 6)
    {


    if(wanteds >= 1 && wanteds <= 6)
    {*/


    format(text, sizeof(text),"*** %s schreibt in %s's Akte, dass er ein Verbrechen begangen hat ***",playername,targetname);
    format(text2, sizeof(text2),"*** %s hat dir %i Wanted(s) gegeben ***",playername,wanteds);
    format(text3, sizeof(text3),"*** Du hast dem Verbrecher %s %i Wanted(s) gegeben ***",playername,wanteds);


    SendUmgMessage(playerid,COLOR_PURPLE,text);
    SendClientMessage(playerid,COLOR_PURPLE,text3);
    SendClientMessage(targetid,COLOR_PURPLE,text2);


    pInfo[targetid][WantedLevel] = pInfo[targetid][WantedLevel]+wanteds;
    /*}
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Maximal 6 Wanteds und Minimal 1 Wanted");
    }
    }
    else
    {
    //new text[256];
    format(text, sizeof(text),"Der Verbrecher %s hat bereits 6 Wanteds!",targetname);
    SendClientMessage(playerid,COLOR_RED,text);
    }*/
    }
    }//not connected
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "*** Du bist kein Dienstleister! ***");
    }
    return 1;
    }


    Wenn ich /givewanted eingebe kommt:
    /givewanted [ID] [WANTEDS]


    Wenn ich aber
    /givewanted 1 1
    eingebe kommt:


    Befehl wurde nicht gefunden


    Was kann ich dagegen tun?

    ausserdem wird dann nur geprüft ob playerid in einem fahrzeug sitzt. richtig:


    if(strcmp(cmd,"/respawnfv",true)==0)
    {
    if (PlayerInfo[playerid][pLeader] == 8)
    {


    {
    for(new i; i < 20; i++)
    {
    for(new i; i < MAX_PLAYERS; i++)
    {
    if IsPlayerInVehicle(i, i)
    {


    }
    }
    }
    else
    {
    SetVehicleToRespawn(Hitman[i]);
    }
    }
    }
    return 1;
    }

    Das geht alles nicht '-.- habs schon mit cmdtext probiert aber da wird auch das /d bzw. /sz 2 300 Test Test ausgegeben... Geht das echt nicht :(?


    So neue methode...


    würde das gehen:


    cmdtext[4]


    das hab ich in einem anderen script gefunden


    Frage für was steht die 4?


    EDIT: habs:


    Notlösung


    cmdtext[4];


    Die 4 steht für wieviele zeichen weggemacht werden soll z.b.:


    /d hallo


    -> cmdtext[2]

    das steht aber nicht wie man es fixiert. also per ini. bei mir geht das z.b. nicht. ich hab das ding gespeichert und eigentlich sollte es an das user car gehangen werden, aber es hängt sich immer an gespawnte admins cars ran^^