Beiträge von grauerhase


    Mit einen Timer :D


    Kann mir auch wer helfen ?



    [SAMMELTHREAD] Kleine Scripting Fragen
    [SAMMELTHREAD] Kleine Scripting Fragen

    Einfach bei OnPlayerStateChange hinklatschen



    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    ////////////TACHO/////////////////
    if(newstate == PLAYER_STATE_DRIVER)
    {
    TextDrawShowForPlayer(playerid,DEIN_TACHONAME);
    }
    if(oldstate == PLAYER_STATE_DRIVER)
    {
    TextDrawHideForPlayer(playerid,DEIN_TACHONAME);
    }


    Halt nur auf dein Tacho anpassen.


    MfG

    Wieso statsstring ? :o



    new statsstring[500];
    new fraktname[500];


    switch(GetPVarInt(playerid,"Fraktion"))
    {
    case 0:{fraktname="Keine";}
    case 1:{fraktname=fraktname1;}
    case 2:{fraktname=fraktname2;}
    case 3:{fraktname=fraktname3;}
    case 4:{fraktname=fraktname4;}
    case 5:{fraktname=fraktname5;}
    case 6:{fraktname=fraktname6;}
    case 7:{fraktname=fraktname7;}
    }


    format(statsstring,500,"Fraktion: %s",fraktname);
    Textdraw2 = TextDrawCreate(5.000000, 309.000000, statsstring);
    TextDrawBackgroundColor(Textdraw2, 65535);
    TextDrawFont(Textdraw2, 1);
    TextDrawLetterSize(Textdraw2, 0.500000, 1.000000);
    TextDrawColor(Textdraw2, -1);
    TextDrawSetOutline(Textdraw2, 1);
    TextDrawSetProportional(Textdraw2, 1);


    So hau das jetzt mal rein, und sag dann obs klappt :D


    Gibt keine, Aber das Proglem liegt ja Glaube in der Zeile :


    format(ss,50,"Fraktion: %d",GetPVarInt(playerid,"Fraktion")); <- Er muss den Jobnamen ja Auslesen oder ?! :D udn hier auch


    format(sss,50,"Job: %d",GetPVarInt(playerid,"Job"));


    Ersetze mal



    format(statsstring,sizeof(statsstring),"Fraktion: %s",fraktname);

    durch

    format(statsstring,500,"Fraktion: %s",fraktname);


    Versuch jetzt mal :D



    %d ist nur für zahlen da, mach %s das steht für string (text)


    Hier kp obs funkt :D Kannst ja mal testen



    new statsstring[500];
    new fraktname[500];


    switch(GetPVarInt(playerid,"Fraktion"))
    {
    case 0:{fraktname="Keine";}
    case 1:{fraktname=fraktname1;}
    case 2:{fraktname=fraktname2;}
    case 3:{fraktname=fraktname3;}
    case 4:{fraktname=fraktname4;}
    case 5:{fraktname=fraktname5;}
    case 6:{fraktname=fraktname6;}
    case 7:{fraktname=fraktname7;}
    }


    format(statsstring,sizeof(statsstring),"Fraktion: %s",fraktname);
    Textdraw2 = TextDrawCreate(5.000000, 309.000000, statsstring);
    TextDrawBackgroundColor(Textdraw2, 65535);
    TextDrawFont(Textdraw2, 1);
    TextDrawLetterSize(Textdraw2, 0.500000, 1.000000);
    TextDrawColor(Textdraw2, -1);
    TextDrawSetOutline(Textdraw2, 1);
    TextDrawSetProportional(Textdraw2, 1);


    Bin für Kritik offen :)

    Da du die mission bei onplayernetervehicle strtest, oder?
    Damit sind alle plaetze betroffen.


    Mach das lieber unter onplayerstatechange und Frag ab ob newcar = PLAYER_STATE_DRIVER ist.
    Und wenn er dann in nek truck is, freeze ihn.



    Ich starte die Mission per Dialog.


    Hier der Dialog



    if(dialogid == DIALOG_TRUCKERMISSIONSF)
    {
    if(response == 0)
    {
    ShowPlayerDialog(playerid, DIALOG_TRUCKERMISSIONAUSWAHL,DIALOG_STYLE_LIST,"{F5FF00}Wähle eine Stadt","San Fierro\nLas Venturas\nLos Santos","Ja", "Zurück");
    }
    if(response == 1)
    {
    if(listitem == 0)
    {
    TogglePlayerControllable(playerid,1);
    }
    if(listitem == 1)
    {
    SpielerInfo[playerid][pTM] = 1;
    DisablePlayerCheckpoint(playerid);
    SetPlayerCheckpoint(playerid,-2460.1863,779.6978,35.1719,5.0);
    SendClientMessage(playerid, GELB, "**Fahre nun mit einen {FAFAFA}kleinen Truck {F5FF00}({FAFAFA}Benson{F5FF00}) zum Checkpoint");
    TogglePlayerControllable(playerid, 1);
    }


    Wenn der Spieler den Checkpoint entert wird er gefreezt.

    public OnPlayerEnterCheckpoint(playerid)
    {
    if(PlayerTM(playerid, 1))
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 499)
    {
    SpielerInfo[playerid][pTM] = 0;
    GivePlayerMoney(playerid, 350);
    GameTextForPlayer(playerid,"~n~~n~~n~~W~Die Ware wird ausgeliefert!", 2000, 5);
    AusliefernTimer = SetTimer("Transport",15000,false);
    TogglePlayerControllable(playerid,0);
    printf("PlayerTM 1 - Ausliefern");
    }
    else
    {
    SpielerInfo[playerid][pTM]= 0;
    SendClientMessage(playerid, GELB,"**Du hast keine Ware mitgebracht!");
    }
    }

    Habe nen kleines Trucker System, nur bei mir werden die Spieler nicht unfreezt.


    Hier ist die Mission 1 für Truckers

    if(PlayerTM(playerid, 1))
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 499)
    {
    SpielerInfo[playerid][pTM] = 0;
    GivePlayerMoney(playerid, 350);
    GameTextForPlayer(playerid,"~n~~n~~n~~W~Die Ware wird ausgeliefert!", 2000, 5);
    AusliefernTimer = SetTimer("Transport",15000,false);
    TogglePlayerControllable(playerid,0);
    printf("PlayerTM 1 - Ausliefern");
    }
    else
    {
    SpielerInfo[playerid][pTM]= 0;
    SendClientMessage(playerid, GELB,"**Du hast keine Ware mitgebracht!");
    }
    }



    Ich werde unfreezt, aber mein Kollege nicht :/ Bei der Konsole wird das printf auch angegeben was bei ende des Timers erscheint. Aber der Kollege bekommt noch nichtmal eine Nachricht.


    Das ist die Public für den Timer

    forward Transport (playerid);
    public Transport (playerid)
    {
    KillTimer(AusliefernTimer);
    TogglePlayerControllable(playerid,1);
    SpielerInfo[playerid][pTM] = 0;
    GameTextForPlayer(playerid,"~n~~n~~n~~W~Du hast den Transport ~r~beendet!", 2000, 5);
    printf("KillTimer - ENDE");
    }



    Das muss darüber

    new lvstringl[64]
    new lvl = GetPlayerScore(playerid);
    format(lvlstring,sizeof(lvlstring),"Level %i", lvl);
    TextDrawSetString(Textdraw3,lvlstring);


    Textdraw3 = TextDrawCreate(4.000000, 294.000000, " ");
    TextDrawBackgroundColor(Textdraw3, 65535);
    TextDrawFont(Textdraw3, 1);
    TextDrawLetterSize(Textdraw3, 0.500000, 1.000000);
    TextDrawColor(Textdraw3, -1);
    TextDrawSetOutline(Textdraw3, 1);
    TextDrawSetProportional(Textdraw3, 1);
    [/pwn]


    Versuch mal, bin mir aber nicht sicher :/


    Falls jmd. ein Fehler findet bitte melden, bin noch kein Profi.

    Kann mir mal jmd. helfen ? Also ich habe da nen kleines Tacho zsm. gestellt, nur bei der Schaden Anzeige sind da nen Haufen Nullen dran.



    public UpdateHealth()
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPlayerState(i)==2)
    {
    new heal[20];
    new vid=GetPlayerVehicleID(i);
    new Float:health;
    GetVehicleHealth(vid, health);
    format(heal,sizeof(heal),"%f", health);
    TextDrawSetString(SpeedoHeal[i],heal);
    }
    }
    }
    return 1;
    }


    Das mit den Strings versteh ich noch net so gut ^^. Hätte evtl. wer ein gutes Tutorial ?

    Sehr nützlich für ein Wanted System , wenn der Player Wanted bekommt wird er z.b. Farbe Orange, dieses Stock vereinfacht es wenn man den Wanted cleart einfach die normale Farbe wieder zu geben.



    //--------------------------------------------------PlayerColor
    stock PlayerColor (playerid)
    {
    if(IfSpielerInFrak(playerid, 5)) //Hier muss eure Fraktion hin sprich Police Sani etc. Müsst ihr natürlich auch an euren Stock anpassen
    {
    SetPlayerColor(playerid, WHITE); //Die Farbe von der Fraktion
    }
    }


    Benutzung:



    PlayerColor(playerid);


    MfG :)

    Habe hier ein Befehl um im Truck eine Rastpause zu machen leider geht das nicht ganz.


    Er kommt nur bis zu: printf("IfSpielerInFrak 5 | JA"); Das mit dem auto geht nicht mehr obwohl ich in diesem Auto drinne bin.



    if(strcmp("/rasten", cmdtext, true, 10) == 0)
    {
    printf("/rasten eingegeben");
    if(IsPlayerInRangeOfPoint(playerid,10,-1676.2284,413.2365,7.1797))
    {
    printf("IsPlayerInRangeOfPoint 1 | JA");
    if(IfSpielerInFrak(playerid, 5))
    {
    printf("IfSpielerInFrak 5 | JA");
    if(IsPlayerInVehicle(playerid,515))
    {
    printf("ISPlayerInVehicle 515 | JA");
    TogglePlayerControllable(playerid, 0);
    RastenTimer = SetTimer("Rasten", 60000,0);
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~W~Du machst nun eine Rast ~r~Pause!", 2000, 5);
    }
    }
    }
    return 1;
    }