Beiträge von .Gottkomplex.

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    [color=#ff6600]Dieses System erlaubt euch eine Waffe, die jemand beim Tod verliert, aufzuheben.
    Munition wird logisch addiert. Sollte man schon eine Waffe anhaben, die auf dem gleichen Slot liegt wie die auf dem Boden, werden sie ausgetauscht, dabei behalten sie ihre Munition bei.
    Es ist also so realistisch wie möglich.



    Durch die Erlaubnis von Kon Administrator Android ist der Downloadlink wieder verfügbar. (In der Videobeschreibung)


    Vorausgesetzt für dieses Tutorial ist, dass ihr genügend Grundwissen über BOTS habt



    [color=#ff0000]fördert die "Noobs" die immer Code wollen


    Man kann den Code einfach kopieren, das ist wahr. Ob das die Reader machen oder nicht, daran kann ich nichts ändern.
    Würde ich jede einzelne Funktion erklären, würde das Tutorial viel zu groß werden und folglich würde sich auch niemand die Mühe machen, es durchzulesen.


    Das ist kein Grundkurs für Anfänger, sondern eine Offenlegung der Möglichkeiten für Fortgeschrittene.
    Meiner Meinung nach gibt es genügend Tutorials für Anfänger, wenn dir diese jedoch nicht reichen, kannst du ja hier nachschauen.

    Beim Tod die ID der Waffe in eine Var legen und beim Spawn die Waffe wiedergeben.
    Für das mit dem Relog brauchst du schon ein Speichersystem. (Dini, MySQL etc.)


    OnPlayerDeath


    GetPlayerWeaponData, SetPVarInt


    OnPlayerSpawn


    GivePlayerWeapon


    new RandomItems[4][] =
    {
    //, (Name, )
    {"Waffe 1"},
    {"Waffe 2"},
    {"Waffe 3"}
    };


    dcmd_test(playerid,params[])
    {
    new rand = random(3);
    new stringtest[128];
    format(stringtest,sizeof(stringtest),"%s",RandomItems[rand]);
    SendClientMessage(playerid,hellblau,stringtest);
    return 1;
    }



    Wie nun?

    Ah, das return nicht gesehen..
    Probiers so:



    if(strcmp(cmdtext, "/carlock", true) == 0)
    {
    for(new i = 0;i < MAX_PLAYER_CARS+1;i++)
    {
    new Float:x,Float:y,Float:z;
    GetVehiclePos(meinauto[playerid][i],x,y,z);
    if(IsPlayerInRangeOfPoint(playerid,2.5,x,y,z))
    {
    if(carlock[meinauto[playerid][i]] == false)
    {
    PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
    GetVehicleParamsEx(meinauto[playerid][i],engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(meinauto[playerid][i],engine,lights,alarm,1,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~w~Fahrzeug ~r~abgeschlossen", 3000, 6);
    carlock[meinauto[playerid][i]] = true;
    break;

    }
    else
    {
    PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
    GetVehicleParamsEx(meinauto[playerid][i],engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(meinauto[playerid][i],engine,lights,alarm,0,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~w~Fahrzeug ~g~aufgeschlossen", 3000, 6);
    carlock[meinauto[playerid][i]] = false;
    break;

    }
    }
    if(i == MAX_PLAYER_CARS+1)
    {
    SendClientMessage(playerid,FARBE_AUTOHAUS0,"*Du bist bei keinem deiner Autos!");

    }
    }
    return 1;
    }

    if(strcmp(cmdtext, "/carlock", true) == 0)
    {
    for(new i = 0;i < MAX_PLAYER_CARS+1;i++)
    {
    new Float:x,Float:y,Float:z;
    GetVehiclePos(meinauto[playerid][i],x,y,z);
    if(IsPlayerInRangeOfPoint(playerid,2.5,x,y,z))
    {
    if(carlock[meinauto[playerid][i]] == false)
    {
    PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
    GetVehicleParamsEx(meinauto[playerid][i],engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(meinauto[playerid][i],engine,lights,alarm,true,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~w~Fahrzeug ~r~abgeschlossen", 3000, 6);
    carlock[meinauto[playerid][i]] = true;
    return 1;
    }
    else
    {
    PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
    GetVehicleParamsEx(meinauto[playerid][i],engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(meinauto[playerid][i],engine,lights,alarm,false,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~w~Fahrzeug ~g~aufgeschlossen", 3000, 6);
    carlock[meinauto[playerid][i]] = false;
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,FARBE_AUTOHAUS0,"*Du bist bei keinem deiner Autos!");
    return 1;
    }
    }
    }


    Probiers mal so.


    ocmd:kill(playerid,params[])
    {
    new pID,reason,string[128], name[128], name2[128];
    if(!IstSpielerAdmin(playerid,1)) return ErrorA
    if(!IsPlayerConnected(pID)) return ErrorC
    if(sscanf(params,"us",pID,reason)) return SCM(playerid,Blau,"Benutze:/kill [ID/NAME] [GRUND]");
    SetPlayerHealth(pID,0);
    GetPlayerName(playerid, name2, sizeof(name2));
    GetPlayerName(pID, name, sizeof(name));
    format(string,sizeof(string),"Admin %s hat dich %s aus dem Grund (%s) gekillt!",name2,name,reason);
    SCM(pID,Rot,string);
    format(string,sizeof(string),"Du hast %s gekillt aus dem Grund %s (Abuse es nicht es wird gelogt)",name,reason);
    SCM(playerid,hblau,string);
    return 1;
    }


    Probier es mal so.