Beiträge von Kaliber

    Schreib den Befehl mal so:



    ocmd:buysnack(playerid)
    {
    if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT)return SendClientMessage(playerid,C_Error,"Du bist nicht zu Fuß!");
    if(!IsPlayerNearSnack(playerid))return SendClientMessage(playerid,C_Error,"Du bist nicht in der Nähe eines Snackautomats.");
    if(sInfo[playerid][canbuysnack] == 0) return SendClientMessage(playerid,COLOR_GRAY,"* Du kannst nur alle 10 Sekunden einen Snack kaufen!");
    new snackid = GetPlayerSnackID(playerid),Float:PlayerHealth;
    if(snackid == -1) return SendClientMessage(playerid,COLOR_GRAY,"Ungültige snackid!");
    GetPlayerHealth(playerid,PlayerHealth);
    if(getplayermoney(playerid)<=Food[snackid][fprice])return SendClientMessage(playerid,COLOR_GRAY,"Du hast nicht genug Geld dabei!");
    if(PlayerHealth >= 80) return SendClientMessage(playerid,COLOR_GRAY,"* Du hast keinen Hunger!");
    if(Food[snackid][fvalue] == 0) return SendClientMessage(playerid,COLOR_GRAY,"* Der Automat ist leer!");
    TogglePlayerControllable(playerid,false);
    TogglePlayerControllable(playerid,true);
    ApplyAnimation(playerid,"VENDING","VEND_Use",4.1,0,1,1,0,2000,1);
    Food[snackid][fvalue]--;
    UpdateSnackLabel(GetPlayerSnackID(playerid));
    SetTimerEx("ClearAnimations", 2000, false, "d", playerid);
    SetTimerEx("AllowSnackBuy", 10000, false, "d", playerid);
    sInfo[playerid][canbuysnack] = 0;
    SetPlayerHealth(playerid,PlayerHealth + 20);
    return 1;
    }

    ...so musst du es machen:


    new id=CreateObject(3975, 1469.2183, -1643.1805, 12.9006, 0.0000, 0.0000, 180.0000);
    SetObjectMaterial(id, 11, 8399, "vgs_shops", "vgsclubwall05_128", 0xFFFFFFFF);
    SetObjectMaterial(id, 8, 4010, "lanblokb2", "sl_lavicdtwall1", 0xFFFFFFFF);


    @German_ScripterHD
    Das ist Schwachsinn, da so 10 Objekte erstellt werden...und jedes mit einer anderen Textur..das ist so gar nicht das, was er will :D

    Der Fehler den du machst ist, du erstellst 2 Objekte...dabei musst du die ID von dem einen Objekt nur anpassen...


    Sprich du musst es so schreiben:


    new obj = CreateObject(8650, 1492.8816, -1597.7205, 12.1815, 0.0000, 0.0000, 90.0000);
    SetObjectMaterial(obj, 0, 9239, "stuff2_sfn", "hedge1", 0xFFFFFFFF);
    SetObjectMaterial(obj, 1, 9239, "stuff2_sfn", "hedge1", 0xFFFFFFFF);


    mfg. :thumbup:

    Nun, du brauchst kein define für sowas.


    Mach es einfach nur so:




    new FraktionsSpawn[][FSpawnInfo] =


    Und um zu wissen, wie viele FraktionSpawns du deklariert hast: sizeof(FraktionsSpawn)


    Bei dem anderen genauso:


    new FVehicleInfo[][FVehicleDATAInfo] =


    Andererseits, kannst du auch einfach dein define anpassen, da dies offenbar zu hoch ist bzw du nicht für jede Fraktion einen Spawn bzw die VehicleInfo deklariert hast ;)

    Was man vielleicht noch sagen sollte ist, dass die Verschlüsselung hier von md5 nichts bringt, da kein Salt verwendet wird.


    Durch Rainbowtables kann man hier ganz einfach das Passwort filten, welches verwendet wurde und dann sieht man das:


    098f6bcd4621d373cade4e832627b4f6 = test


    ist :D


    Also für alle die hashen wollen und nicht wollen, dass man direkt das Passwort hat, mal nach "Salt" googeln und halt einfach das Passwort mit Salt hashen lassen ;)


    mfg. :thumbup:

    Naja, mach es z.B. so:


    Suchfunktionen sind was feines:


    Quelle: http://forum.sa-mp.com/showthread.php?t=127404&langid=5

    Das kommt darauf an, was denn passieren soll...


    Natürlich kann er spawnen, aber unter OnPlayerSpawn kannste ja z.B. abfragen:


    C
    if(GetPlayerTeam(playerid) == 255) //Team 255 bedeutet, dass er in keinem Team ist (bzw hier landet er, falls es voll ist).
    {
        SetPlayerPos(playerid,...); //Hier kannste ihn irgendwo auf die Map setzen..halt dahin, was passieren soll, falls das Team voll ist mit der Person
        //Kannst ihn natürlich auch in einen Spectate Modus oder so hier versetzen :)
    }