Beiträge von DuffMan

    Hallo,
    in meinem Gamemode habe viele verschiedene Waffen, doch nur kann ich sämtliche Nahkampfwaffen nicht verwenden (Fäuste, Schlagring, Sprühdose, Feuerlöscher, Baseballschläger, etc.). Nicht mahl der Flammenwerfer oder Molotowcocktail funktinieren richtig. Es geht alles sozusagen duch die Spieler durch.
    Liegt das am Server, am Script (wo ich nichts verdächtiges sehen konnte) oder an etwas anderem?
    Thx in advance!


    MfG. Marc_307

    Thanks, aber:
    if(PlayerDied[playerid] == true)
    {
    PlayerDied[playerid] = false;
    if(KillerID[playerid] != INVALID_PLAYER_ID)
    {
    if(IsPlayerInAnyVehicle(KillerID[playerid]))
    {
    SetPlayerInterior(playerid,GetPlayerInterior(KillerID[playerid]));
    TogglePlayerSpectating(playerid, 1);
    PlayerSpectateVehicle(playerid, GetPlayerVehicleID(KillerID[playerid]));
    }
    else
    {
    SetPlayerInterior(playerid,GetPlayerInterior(KillerID[playerid]));
    TogglePlayerSpectating(playerid, 1);
    PlayerSpectatePlayer(playerid, KillerID[playerid]);
    }
    TogglePlayerSpectating(playerid,1);
    }
    //...WAS WENN...
    else if(killerid==INVALID_PLAYER_ID)
    {
    if(IsPlayerInAnyVehicle(KillerID[playerid]))
    {
    SetPlayerInterior(playerid,GetPlayerInterior(/*wessen ID, wenn man irgendjemanden beobachten soll(der noch lebt)*/[playerid]));
    TogglePlayerSpectating(playerid,1);
    PlayerSpectateVehicle(playerid, GetPlayerVehicleID((/*wessen ID, wenn man irgendjemanden beobachten soll(der noch lebt)*/[playerid]));
    }
    else
    {
    SetPlayerInterior(playerid,GetPlayerInterior((/*wessen ID, wenn man irgendjemanden beobachten soll(der noch lebt)*/[playerid]));
    TogglePlayerSpectating(playerid, 1);
    PlayerSpectatePlayer(playerid,(/*wessen ID, wenn man irgendjemanden beobachten soll(der noch lebt)*/[playerid]);
    }
    }
    }
    Weiß da jemand eine Antwort?

    Hi,
    weiß einer, wie man es hinbekommt, dass wenn man tot ist, seinen Killer beobachtet? Und if(killerid==INVALID_PLAYER_ID), soll man irgendjemanden beobachten?
    (mit PlayerSpectatePlayer). :?:
    Danke im Voraus.

    Ich habe die Funktion auch schon ausprobiert.
    Pro:
    - Es ist sehr einfach. ;)
    Kontra:
    - Alle haben eine unterschiedliche Zeit, die sich auch für einen Spieler, der z.B. Stirbt, verändert.
    - Die Uhr funktioiert auch nicht nach dem AM/PM Prinzip.

    Wow :thumbup: . Sogar mit Datum und das alles mit der reellen Zeit.
    Nur wollte ich für meinen Server eine Uhr, bei der eine Minute in einer Sekunde vergeht und die nach dem AM/PM Prinzip funktioniert.
    Trotzdem, nice clock. :thumbup:

    //Edit:


    So,... ich hab jetzt eine Uhr zusammengestellt, die auch funktioniert.
    Sie funktioniert nach den AM/PM Prinzip und nicht nach dem 24 Stunden Prinzip.
    Hier der Code:
    // oben im Script:
    new minute;
    new hour;
    new DayTime;
    new Text:Textdraw0;// :
    new Text:Textdraw1;// minutes
    new Text:Textdraw2;// am
    new Text:Textdraw3;// pm
    new Text:Textdraw4;// hours
    new h[2];
    forward Clock(playerid);
    // unter OnGameModeInit:
    SetTimer("Clock",1000,1);// 1sec = 1min
    //Der GameMode startet um 5:10pm (17:00)
    DayTime=17;
    hour=5;
    minute=10;
    //Clock
    // TextDraw of the ":"
    Textdraw0=TextDrawCreate(571.000000,21.000000,":");
    TextDrawAlignment(Textdraw0,0);//:
    TextDrawBackgroundColor(Textdraw0,0x000000ff);
    TextDrawFont(Textdraw0,3);//:
    TextDrawLetterSize(Textdraw0,0.699999,2.499999);
    TextDrawColor(Textdraw0,0xffffffcc);
    TextDrawSetOutline(Textdraw0,1);
    TextDrawSetProportional(Textdraw0,1);
    TextDrawSetShadow(Textdraw0,1);
    // TextDraw of the "minutes"
    Textdraw1=TextDrawCreate(583.000000,21.000000,"theMin");
    TextDrawAlignment(Textdraw1,0);
    TextDrawBackgroundColor(Textdraw1,0x000000ff);
    TextDrawFont(Textdraw1,3);
    TextDrawLetterSize(Textdraw1,0.599999,2.499999);
    TextDrawColor(Textdraw1,0xffffffcc);
    TextDrawSetOutline(Textdraw1,1);
    TextDrawSetProportional(Textdraw1,1);
    TextDrawSetShadow(Textdraw1,1);
    // TextDraw of "am"
    Textdraw2=TextDrawCreate(611.000000,31.000000,"AM");
    TextDrawAlignment(Textdraw2,0);
    TextDrawBackgroundColor(Textdraw2,0x000000ff);
    TextDrawFont(Textdraw2,3);
    TextDrawLetterSize(Textdraw2,0.499999,1.300001);
    TextDrawColor(Textdraw2,0xffffffcc);
    TextDrawSetOutline(Textdraw2,1);
    TextDrawSetProportional(Textdraw2,1);
    TextDrawSetShadow(Textdraw2,1);
    // TextDraw of "pm"
    Textdraw3=TextDrawCreate(611.000000,31.000000,"PM");
    TextDrawAlignment(Textdraw3,0);
    TextDrawBackgroundColor(Textdraw3,0x000000ff);
    TextDrawFont(Textdraw3,3);
    TextDrawLetterSize(Textdraw3,0.499999,1.300001);
    extDrawColor(Textdraw3,0xffffffcc);
    TextDrawSetOutline(Textdraw3,1);
    TextDrawSetProportional(Textdraw3,1);
    TextDrawSetShadow(Textdraw3,1);
    //TextDraw of the "hours"
    Textdraw4=TextDrawCreate(546.000000,21.000000,"h");
    TextDrawAlignment(Textdraw4,0);
    TextDrawBackgroundColor(Textdraw4,0x000000ff);
    TextDrawFont(Textdraw4,3);
    TextDrawLetterSize(Textdraw4,0.599999,2.499999);
    TextDrawColor(Textdraw4,0xffffffcc);
    TextDrawSetOutline(Textdraw4,1);
    TextDrawSetProportional(Textdraw4,1);
    TextDrawSetShadow(Textdraw4,1);
    // unter OnPlayerConnect:
    if(hour>=1&&hour<=9)
    {
    format(h,sizeof(h),"_%d",hour);
    TextDrawSetString(Textdraw4,h);
    TextDrawShowForAll(Textdraw4);
    hour++;
    }
    else if(hour==10||hour==11)
    {
    format(h,sizeof(h),"%d",hour);
    TextDrawSetString(Textdraw4,h);
    TextDrawShowForAll(Textdraw4);
    hour++;
    }
    else if(hour==12)
    {
    format(h,sizeof(h),"%d",hour);
    TextDrawSetString(Textdraw4,h);
    TextDrawShowForAll(Textdraw4);
    hour=1;
    }
    if(DayTime>=0&&DayTime<=11)
    {
    TextDrawShowForAll(Textdraw2);
    DayTime++;
    }
    else if(DayTime>=12&&DayTime<=22)
    {
    TextDrawShowForAll(Textdraw3);
    DayTime++;
    }
    else if(DayTime==23)
    {
    TextDrawShowForAll(Textdraw3);
    DayTime=0;
    }
    // irgendwo mitten in Script
    public Clock(playerid)
    {
    TextDrawShowForAll(Textdraw0);
    new theMin[2];
    if(minute==0)
    {
    format(theMin,sizeof(theMin),"0%d",minute);
    TextDrawSetString(Textdraw1,theMin);
    minute++;
    if(hour>=1&&hour<=9)
    {
    format(h,sizeof(h),"_%d",hour);
    TextDrawSetString(Textdraw4,h);
    hour++;
    }
    else if(hour==10||hour==11)
    {
    format(h,sizeof(h),"%d",hour);
    TextDrawSetString(Textdraw4,h);
    hour++;
    }
    else if(hour==12)
    {
    format(h,sizeof(h),"%d",hour);
    TextDrawSetString(Textdraw4,h);
    hour=1;
    }
    TextDrawShowForAll(Textdraw4);
    if(DayTime>=0&&DayTime<=11)
    {
    TextDrawHideForAll(Textdraw3);
    TextDrawShowForAll(Textdraw2);
    DayTime++;
    }
    else if(DayTime>=12&&DayTime<=22)
    {
    TextDrawHideForAll(Textdraw2);
    TextDrawShowForAll(Textdraw3);
    DayTime++;
    }
    else if(DayTime==23){DayTime=0;}
    SetPlayerTime(playerid,DayTime,0);
    return 0;
    }
    else if(minute>=1&&minute<10)
    {
    SetPlayerTime(playerid,DayTime,minute);
    format(theMin,sizeof(theMin),"0%d",minute);
    TextDrawSetString(Textdraw1,theMin);
    minute++;
    }
    else if(minute>=10&&minute<59)
    {
    SetPlayerTime(playerid,DayTime,minute);
    format(theMin,sizeof(theMin),"%d",minute);
    TextDrawSetString(Textdraw1,theMin);
    minute++;
    }
    else if(minute==59)
    {
    SetPlayerTime(playerid,DayTime,minute);
    format(theMin,sizeof(theMin),"%d",minute);
    TextDrawSetString(Textdraw1,theMin);
    minute=0;
    }
    TextDrawShowForAll(Textdraw1);
    return 1;
    }

    Thanks man, works well.
    Eine Sache vielleich noch: Der, der im Checkpoint steht, soll eine Nachricht bekommen:GameTextForPlayer(playerid, "Gut, du hast den Checkpoint erreicht!", 6000, 5);
    und alle anderen eine andere:GameTextForAll("~r~Jemand hat den Checkpoint erreicht!",6000,5);
    Wie macht man das?
    //Edit:
    Ah, ich weiß schon. Einfachdie beiden funktionen tauschen, dann bekommen alle die Nachricht und sofort danach der Player seine Nachricht.
    GameTextForAll("~r~Jemand hat den Checkpoint erreicht!",6000,5);GameTextForPlayer(playerid, "Gut, du hast den Checkpoint erreicht!", 6000, 5);


    Hi, ich wollte, dass der Score=Geld ist, also wenn man $ 30,000 hat, dss der Score=30000 ist.
    Ich hab mir was zusammengestellt, aber der man sieht nur seinen eigenen Score. Wiso?
    //oben im Skipt
    forward MoneyScoreUpdateFunction(playerid);
    //unter OnGameModeInit
    SetTimer("MoneyScoreUpdateFunction",250,1);
    //im Skript
    public MoneyScoreUpdateFunction(playerid)
    {
    SetPlayerScore(playerid,GetPlayerMoney(playerid));
    return 1;
    }

    Zitat

    Hast du auch lange genug gewartet?


    Ja, hab' ich. (1min.)

    Zitat

    Wie kan man das machen, das kein fahrzeug respawnt, ein ganz normales mit AddStaticVehicle ?


    Ja, aberAddStaticVehicle kann man doch nur unter OnGameModeInit setzen und nicht irgendwo im Skript.


    Hab ich was falsch gemacht?:
    new nichtr[MAX_VEHICLES];
    new seinauto[MAX_PLAYERS], autoweg[MAX_VEHICLES];


    forward autoputt(aid);


    public OnPlayerDisconnect(playerid, reason)
    {
    if(seinauto[playerid]!=0)
    {
    seinauto[playerid]--;
    autoweg[seinauto[playerid]]=SetTimerEx("autoputt",entfernzeit*1000,0,"d",seinauto[playerid]);
    seinauto[playerid]=0;
    }
    new pName[MAX_PLAYER_NAME], string[56];
    GetPlayerName(playerid, pName, sizeof(pName));
    switch(reason)
    {
    case 0: format(string, sizeof(string), "*** %s has left the server. (Lost Connection)", pName);
    case 1: format(string, sizeof(string), "*** %s has left the server. (Leaving)", pName);
    case 2: format(string, sizeof(string), "*** %s has left the server. (Kicked/Banned)", pName);
    }
    SendClientMessageToAll(GREY, string);
    return 1;
    }


    public OnPlayerStateChange(playerid,newstate,oldstate)
    {
    new aid=GetPlayerVehicleID(playerid);
    if(GetPlayerState(playerid)==2)
    {
    new string[128];
    format(string,sizeof(string),"~g~%s",vNames[GetVehicleModel(GetPlayerVehicleID(playerid))-400]);
    GameTextForPlayer(playerid,string,2000,1);
    }
    else if(newstate==2)
    {
    //new aid=GetPlayerVehicleID(playerid);
    if(nichtr[aid]==1)
    {
    KillTimer(autoweg[aid]);
    seinauto[playerid]=aid+1;
    }
    else if(oldstate==2)
    {
    if(seinauto[playerid]!=0)
    {
    seinauto[playerid]--;
    autoweg[seinauto[playerid]]=SetTimerEx("autoputt",entfernzeit*1000,0,"d",seinauto[playerid]);
    seinauto[playerid]=0;
    }
    }
    }
    return 1;
    }


    public autoputt(aid)
    {
    DestroyVehicle(aid);
    return 1;
    }


    public OnPlayerSelectedMenuRow(playerid,row)
    {
    new Menu:CurrentMenu = GetPlayerMenu(playerid);
    new Money;
    Money=GetPlayerMoney(playerid);
    if(CurrentMenu==BuyACarMenu)
    {
    switch(row)
    {
    case 0: //Admiral
    {
    if(Money>=35000)
    {
    GivePlayerMoney(playerid,-35000);
    new currentCar=CreateVehicle(445,2125.8171,-1134.4524,25.4594,354.0291,-1,-1,-1);
    nichtr[currentCar]=1;
    TogglePlayerControllable(playerid,1);
    }
    else if(Money<35000)
    {
    SendClientMessage(playerid,RED,"You have not got enough money!");
    ShowMenuForPlayer(BuyACarMenu,playerid);
    }
    }
    case 1: //Buffalo
    {
    if(Money>=35000)
    {
    GivePlayerMoney(playerid,-35000);
    new currentCar=CreateVehicle(402,2125.8171,-1134.4524,25.4594,354.0291,-1,-1,-1);
    nichtr[currentCar]=1;
    TogglePlayerControllable(playerid,1);
    }
    else if(Money<35000)
    {
    SendClientMessage(playerid,RED,"You have not got enough money!");
    ShowMenuForPlayer(BuyACarMenu,playerid);
    }
    }
    case 2: //Camper
    {
    if(Money>=26000)
    {
    GivePlayerMoney(playerid,-35000);
    new currentCar=CreateVehicle(483,2125.8171,-1134.4524,25.4594,354.0291,-1,-1,-1);
    nichtr[currentCar]=1;
    TogglePlayerControllable(playerid,1);
    }
    else if(Money<26000)
    {
    SendClientMessage(playerid,RED,"You have not got enough money!");
    ShowMenuForPlayer(BuyACarMenu,playerid);
    }
    }
    case 3: //Hotring Racer
    {
    if(Money>=50000||Money==50000)
    {
    GivePlayerMoney(playerid,-50000);
    new currentCar=CreateVehicle(503,2125.8171,-1134.4524,25.4594,354.0291,-1,-1,-1);
    nichtr[currentCar]=1;
    TogglePlayerControllable(playerid,1);
    }
    else if(Money<35000)
    {
    SendClientMessage(playerid,RED,"You have not got enough money!");
    ShowMenuForPlayer(BuyACarMenu,playerid);
    }
    }
    case 4: //Rancher
    {
    if(Money>=40000)
    {
    GivePlayerMoney(playerid,-40000);
    new currentCar=CreateVehicle(489,2125.8171,-1134.4524,25.4594,354.0291,-1,-1,-1);
    nichtr[currentCar]=1;
    TogglePlayerControllable(playerid,1);
    }
    else if(Money<40000)
    {
    SendClientMessage(playerid,RED,"You have not got enough money!");
    ShowMenuForPlayer(BuyACarMenu,playerid);
    }
    }
    case 5: //Slamvan
    {
    if(Money>=19000)
    {
    GivePlayerMoney(playerid,-19000);
    new currentCar=CreateVehicle(535,2125.8171,-1134.4524,25.4594,354.0291,-1,-1,1000);
    nichtr[currentCar]=1;
    TogglePlayerControllable(playerid,1);
    }
    else if(Money<19000)
    {
    SendClientMessage(playerid,RED,"You have not got enough money!");
    ShowMenuForPlayer(BuyACarMenu,playerid);
    }
    }
    }
    }
    return 1;
    }


    public OnVehicleDeath(vehicleid,killerid)
    {
    if(nichtr[vehicleid]==1)
    {
    nichtr[vehicleid]=0;
    DestroyVehicle(vehicleid);
    }
    return 1;
    }