Beiträge von Hagi

    if (strcmp("/sfair", cmdtext, true) == 0)
    {
    new name[MAX_PLAYER_NAME];
    SendClientMessage(playerid, COLOR_LIGHTBLUE,".: Server :. Willkommen beim Sfairport ");
    SendClientMessage(playerid, COLOR_LIGHTBLUE,".: Server :. Deine Waffen wurden entfernt");
    SetPlayerPos(playerid, -1390.0891,-58.4880,14.1484,280.1049);
    GetPlayerName(playerid, name, sizeof(name))
    ResetPlayerWeapons(playerid);
    return 1;
    }


    Aber mal so, was willst du mit name ?
    du verwendet die doch gar nicht

    Was genau funktioniert denn nicht ?


    Hier versuchs mal so


    dcmd_pm(playerid,params[])
    {
    new pID,sText[128];
    if(sscanf(params, "us",pID,sText))
    {
    return SendClientMessage(playerid,0x0000ff8e,"/pm [ID] [Text]");
    }
    new pname[MAX_PLAYER_NAME],zielname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pname,sizeof(pname));
    GetPlayerName(pID,zielname,sizeof(zielname));
    new string[128],string2[128];
    format(string,sizeof(string),"Du hast %s eine Nachricht geschickt: %s",pID,sText);
    format(string2,sizeof(string2),"PM von %s erhalten: %s",pname,sText);
    SendClientMessage(playerid,0xffff00ff,string);
    SendClientMessage(pID,0xffff00ff,string2);
    return 1;
    }

    Man kann doch, wie schon gesagt, die schienen mit einem auto abfahren und aufzeihnen. den bot aber in eine straßenbahn packen. Theoretisch sollte der dann über die Schienen fahren ( nicht umbedingt auf den schienen)

    MAchs dir doch selber:


    new tutorial[MAX_PLAYERS] = 0;
    forward checktut(pid);
    new tuttimer[MAX_PLAYERS];




    if (strcmp("/anfängertutorial", cmdtext, true, 10) == 0)
    {
    if(tutorial[playerid] == 0)
    {
    SendClientMessage(playerid,orange,"Anfängertutorial gestartet");
    tutorial[playerid] = 1;
    tuttimer[playerid] = SetTimerEx("checktut",1000,0,"i",playerid);
    TogglePlayerControllable(playerid,0);
    }
    else
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    RemovePlayerFromVehicle(playerid);
    }
    SendClientMessage(playerid,rot,"Anfängertutorial abgebrochen");
    tutorial[playerid] = 0;
    KillTimer(tuttimer[playerid]);
    SpawnPlayer(playerid);
    TogglePlayerControllable(playerid,1);
    }
    }


    public checktut(pid)
    {
    switch(tutorial[pid])
    {
    case 1:
    {
    tutorial[pid] ++;
    SendClientMessage(pid,orange," ------------------------ Tutorial ------------------------");
    SendClientMessage(pid,orange,"Als erstes zeige ich dir die Basen der Teams:");
    SendClientMessage(pid,orange,"Hier haben wir die Mafia Basis");
    SendClientMessage(pid,orange,"Das Tor öffnest du mit /m ; /mafia oder indem du hupst geöffnet");
    SendClientMessage(pid,orange,"Außerdem kann man das Tor öffnen, wenn man in das rote Symbol am Tor geht");
    SendClientMessage(pid,orange,"-----------------------------------------------------------");
    tuttimer[pid] = SetTimerEx("checktut",15000,0,"i",pid);
    }
    case 2:
    {
    tutorial[pid] ++;
    SendClientMessage(pid,orange,"-----------------------------------------------------------");
    SendClientMessage(pid,orange,"Hier siehst du die Base der Police");
    SendClientMessage(pid,orange,"Das Tor wird mit /p ; /police oder indem du hupst geöffnet");
    SendClientMessage(pid,orange,"Außerdem kann man das Tor öffnen, wenn man in das rote Symbol am Tor geht");
    SendClientMessage(pid,orange,"-----------------------------------------------------------");
    tuttimer[pid] = SetTimerEx("checktut",15000,0,"i",pid);
    }
    case 3:
    {
    tutorial[pid] ++;
    SendClientMessage(pid,orange,"-----------------------------------------------------------");
    SendClientMessage(pid,orange,"Wie du sehen kannst, befindet sich hier einer von zwei Waffenladen");
    SendClientMessage(pid,orange,"Auf der Akrte sind diese durch grüne '$' gekennzeichnet");
    SendClientMessage(pid,orange,"In Ihnen kann man rankabhängige Waffen kaufen");
    SendClientMessage(pid,orange,"Es ist nur möglich alle 2 Minuten den Waffenladen zu betreten, nachdem man /waffe gemacht hat");
    SendClientMessage(pid,orange,"-----------------------------------------------------------");
    tuttimer[pid] = SetTimerEx("checktut",15000,0,"i",pid);
    }
    }
    return 1;
    }



    Das ist jetzt mein vorläufiges für einen DM Server

    Bilde dich weiter, lern Vokabeln oder lies ein Buch, damit sit man dann etwas länger beschäftigt.


    Oder denk dir ein Konzept für ein Projekt aus. Wer eine gute Planung hat, bekommt auch ein gutes Projekt auf die Beine

    OnPlayerDeath:


    Todesvariable auf 1 setzen


    OnPlayerSpawn:


    Überprüfen ob die todesvariable auf 1 ist und ggf zum krankenhaus teleportieren (SetPlayerPos) und freezen TogglePlayerControllable(playerid,0)



    In etwa so ?

    Das


    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    mit dem ersetzten


    SetPlayerPos(playerid, 1-1983.5542,665.4218,46.5683);
    SetPlayerCameraPos(playerid, -1977.6497,665.9248,46.5683);
    SetPlayerCameraLookAt(playerid, -1983.5542,665.4218,46.5683);
    SetPlayerFacingAngle(playerid,270.0000);


    Unter


    OnPlayerRequestClass

    SetPlayerPos(playerid, 1-1983.5542,665.4218,46.5683);
    SetPlayerCameraPos(playerid, -1977.6497,665.9248,46.5683);
    SetPlayerCameraLookAt(playerid, -1983.5542,665.4218,46.5683);
    SetPlayerFacingAngle(playerid,270.0000);


    hier hab dir eine skizze gezeichnet



    Das Rechteck ist die Kamera


    Der Kreis den Skin den man sieht

    Hier zum Beispiel eine Wand in SF in so nem Gebäude



    SetPlayerPos(playerid, 1-1983.5542,665.4218,46.5683);
    SetPlayerCameraPos(playerid, -1977.6497,665.9248,46.5683);
    SetPlayerCameraLookAt(playerid, -1983.5542,665.4218,46.5683);
    SetPlayerFacingAngle(playerid,270.0000);

    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);


    Das musst du so ändern, dass


    SetPlayerPos die Position ist, wo der Spieler den du ansehen möchtest steht.


    SetPlayerCameraPos eine Position weiter entfern ist, damit der Spieler nicht in der Camera steht


    SetPlayerCameraLookAt auf den Skin schaut, sprich auf die Position der SetPlayerPos