Beiträge von Simon

    wenn es nur 2 teams giebt, dann man anstatt Team_Blue ein else


    also:


    if (strcmp("/ctb", cmdtext, true, 10) == 0)
    {
    IsInCTB[playerid]=1;
    SendClientMessage(playerid,COLOR_YELLOW,"Willkommen im Capture the Boat.");
    gTeam[playerid] = random(1) +1;
    if(gTeam[playerid] == TEAM_GREEN)
    {
    SetPlayerPos(playerid,1980.0054,-266.6487,2.9653);
    InGreenTeam[playerid] = 1;
    }
    else
    {
    SetPlayerPos(playerid,2359.2703,540.5911,1.7969);
    InBlueTeam[playerid] = 1;
    }

    TextDrawShowForPlayer(playerid,CTBDRAW);
    return 1;
    }

    du musst ein 3dtextlabel createn, unter OnGameModeInit. dann musst du bei OnPlayerSpawn alles abfragen was er haben muss damit über ihm dieser 3dtext steht, und dann machste:


    Attach3dTextLable.

    okay habe dazu noch ein paar fragen: wo und als was wird die log datei erstellt. bsp: .txt in den scriptfiles.


    AddLog("Chat.log", "Log funktioniert.\r\n");

    wäre "Log funktioniert./r/n" dann wie in meinem bsp. die omsg?

    Guten Tag.


    Ich habe verschiedene Chats: /o /t /ao... nun würde ich diese gerne in logs speichern also ein beispiel für /o:


    Im SPiel:


    (( Hans: hi ))
    ((Peter: hi))
    ((franz: hi))


    das möchte ich dan bspweise als .txt abspeichern.


    könnte mir da einer helfen? hier ein bsp für nen möglichen chat:


    dcmd_o(playerid,params[])
    {
    if(olock == 0)
    {
    new omsg[256];
    if(sscanf(params, "s", omsg))
    {
    return SendClientMessage(playerid,COLOR_RED,"Benutzung: /o(oc) [Text]");
    }
    if(Mute[playerid] == 1)
    {
    SendClientMessage(playerid, COLOR_RED, " Du bist gemutet, warte bis ein Admin dich unmutet!");
    }
    else
    {
    new ostr[256];
    new aname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, aname, sizeof(aname));
    format(ostr, sizeof(ostr), "(( %s: %s ))", aname, omsg);
    SendClientMessageToAll(COLOR_WHITE,ostr);
    }
    }
    else
    {
    SendClientMessage(playerid,0xFFFFFFFF,"Der OOC wurde von einem Admin abgeschaltet!");
    }
    return 1;
    }

    ich habe es nun anders gemacht und es klappt perfekt. im public OnPlayerEnterVehicle ist ispassenger definiert. also ich frage ab ob er als fahrer oder als beifahrer einsteigt und dann breche ich den vorgang ab:


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(ispassenger == 0)
    {
    for(new j = 0;j<sizeof copsauto;j++)
    {
    if(vehicleid == copsauto[j])
    {
    if((gTeam[playerid] == Team_Cops_LS) || (gTeam[playerid] = Team_Army))
    {
    }
    else
    {
    TogglePlayerControllable(playerid,1);


    }
    }
    }
    }
    return 1;
    }

    okay das habe ich übersehen, ich entschuldige mich, ich habe verstanden ich werde es nun versuchen hinzukriegen, dürfte nicht allzu schwer sein ;D


    //edit: ich habe es nun so:


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    for(new j = 0;j<sizeof copsauto;j++)
    {
    if(vehicleid == copsauto[j])
    {
    if((gTeam[i] == Team_Cops_LS) || (gTeam[i] = Team_Army))
    {
    }
    else
    {
    SetVehicleParamsForPlayer(vehicleid,i,0,1);


    }
    }
    }
    }
    return 1;
    }


    aber können ist das für beifahrer dann nicht auch abgeschlossen?


    habs getestet :D iwo is da noch ein fehler, ich kann einsteigen..

    damit ist es ja wie abgeschlossen, und keiner kann einsteigen, und somit können beifahrer auch nicht einsteigen!!!


    ich möchte es so haben: man kann grundsätzlich überall als beifahrer einsteigen, als fahrer aber nur wenn man zu dem jeweiligen team gehört.


    ich habe das immoment so das die mit dem richtigem team einsteigen können, die mit anderen teams werden gestoppt. aber dies soll nur passieren wenn man als fahrer einsteigt.


    da bringt mir abschließen nicht viel.

    hmm ja frage ich mich auch. und dann muss ich den teams die schlüssel geben? iwie zu kompliziert alles.


    PS: hirnlose nudel bitte nicht als beleidigung sehen.

    OMG :D lesen hilft -.-


    ich habe gerade beschrieben: wen man ein autofährt, kann man es mit /lock abschließen damit es niemand klaut und so. mit /unlock kanns man wieder aufschließen.


    so nun hatte ich das so wie Chry sagt, man steigt ein und wird rausgeworfen was auch geklappt hat. doch in derzeit wo er einsteigt und rausgeschmissen wird, kann man /lock eingeben
    ergebnis: auto ist abgeschlossen, keiner kann rein außer der der es abgeschlossen hat, der kann es aber net fahren weil er rausgeworfen wird.


    deswegen sollen die garnet einsteigen können was auch klappt, damit ist aber nur das einsteigen mit "f" also als fahrer gemeint und ich kenne das von anderen servern, das mann das iwie abfragen kann ob man als fahrer einsteigt. und diese abfrage oder wie auch immer würde ich gerne wissen.


    @ kavkus: wieso soll ich das auto abschließen?? es soll doch gefahren werden, doch nur von bestimmten personen.

    jau so hab ichs, nur bei KeyStateChange und RemoveFromVehicle, danke wollte nur den befehl zum vorgang stoppen wissen werde es ma ausprobieren dankeschön...


    //edit: das klappt wunderbar bis auf eins, was ich mir schon gedacht habe: es ist egal ob als beifahrer oder fahrer. als beifahrer soll man noch einsteigen können, ich habe es schon mit STATE_DRIVER versucht, hat aber net so geklappt.

    ist das nicht so, das der dann gefreezed wird? oder muss ich einfach unter OnPlayerEnterVehicle alles abfragen und wenn er nichts ins auto stehen soll damm TogglePlayerControlable(playerid,0); ?

    Guten Tag. Ich habe verschiedene Teams und Fahrzeuge, die nur bestimmte Teams fahren können.
    Nun habe ich das so gemacht, das man ins Autosteigt, und wenn man das Auto nicht fahren soll, dann wird man aus dem auto geworfen. Nun habe ich aber ein /lock und /unlock system, man kann einsteigen /lock eingeben und wird rausgeworfen... ich glaube dazu muss ich nicht mehr sagen.


    Wie kann man das nun Machen, das man garnichterst in die autos reinsteigen kann, sondern vorher schon gestoppt wird. also der vorgang "entervehicle" soll unterbrochen werden.