Beiträge von Zcelo12

    Hi,
    Was muss ich Wo einsetzten damit man die Nachricht in meiner Funktion nur einmal
    bekommt?


    stock RaceStart()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(vRacer[i] == 1)continue;
    Racer[i][pri_Checkpoint]=0;
    Racer[i][pri_bAktiv]=true;
    SetPlayerRaceCheckpoint(i,0,Race_Points[0][R_fX],Race_Points[0][R_fY],Race_Points[0][R_fZ],Race_Points[1][R_fX],Race_Points[1][R_fY],Race_Points[1][R_fZ],Race_Points[0][R_fRad]);
    ClientLanguageText(i,COLOR_ORANGE,"Bereite dich vor!","Get ready!");
    }
    }


    lg

    Versuch'S mal so:


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    new newcar = GetPlayerVehicleID(playerid);
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(LSPDCar(newcar))
    {
    if (pInfo[playerid][Fraktion] != 1)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, ROT, "Du bist kein Polizist");
    return 1;
    }
    }


    if(SFPDCar(newcar))
    {
    if (pInfo[playerid][Fraktion] != 6)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, ROT, "Du bist kein Polizist");
    return 1;
    }
    }
    }
    return 1;
    }

    Ich danke dir Trooper, hat funktioniert.
    Könntest du mir jetzt noch sagen wie ich es bei dieser Funktion einstelle, dass die Nachricht nur jedem Spieler 1x gesendet wird?


    stock RaceStart()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(vRacer[i] == 1)
    {
    Racer[i][pri_Checkpoint]=0;
    Racer[i][pri_bAktiv]=true;
    SetPlayerRaceCheckpoint(i,0,Race_Points[0][R_fX],Race_Points[0][R_fY],Race_Points[0][R_fZ],Race_Points[1][R_fX],Race_Points[1][R_fY],Race_Points[1][R_fZ],Race_Points[0][R_fRad]);
    ClientLanguageText(i,COLOR_ORANGE,"Bereite dich vor!","Get ready!");
    }
    }
    }

    KillTimer(rtimer);
    retimer = SetTimerEx("Rends",300000,false,"i",playerid);


    Na, siehste´s selber ?


    edit:// Dies ist ein anderer Timer ;)
    Der Timer der dies aufruft ist eigt. :
    forward racestart(playerid);
    public racestart(playerid)
    {
    for(new i=0; i <MAX_PLAYERS; i++)
    {
    if(vRacer[i] == 1)
    {
    RaceStart();
    rtimer = SetTimerEx("RaceCount",1000,1,"i",playerid);
    rcount = 5;
    }
    }
    return 1;
    }

    Ok,
    Du hast aber
    rcount --;
    vergessen ;)


    SO die NAchricht wird immer noch tausendmal abgesendet obwohl der TImer ja zerstört wird oder nicht?
    Zudem zählt der COuntdown manchmal viel zu schnell: Bsp. 5,3,1,GOOOOOOOOOOOO :(


    lg

    Tut mir leid.
    Also ich frage mittels GetPlayerPos die Position des Spielers ab und speichere die Koordinaten in
    new Float:dx,Float:dy,Float:dz; ab. So wie man sieht bekommt ein andere Spieler dann einen Dialog.
    Wenn man dann auf "Accept" klickt sollte man an die Position geportet werden die unter new Float:dx,Float:dy,Float:dz;
    gespeichert ist. Das Problem bei der Sache ist, dass man aber an die Position des Spielers geportet wird, an der er steht bevor er
    /challenge eingegeben hat. Versteht ihr es jetzt? :D

    Hallo,
    Habe hier einen COmmand bei dem man an eine Position geportet wird und dann
    wird abegrafrgt an welcher Position er ist, der jenige wird aber unter OnDialogResponse an die
    alte Position geportet.


    CMD:challenge(playerid,params[])
    {
    new rand = random(sizeof(RandomDuellPos));
    SetPlayerPos(playerid,RandomDuellPos[rand][rd_x],RandomDuellPos[rand][rd_y],RandomDuellPos[rand][rd_z]);
    new pid;
    if(sscanf(params,"u",pid)){
    return ClientLanguageText(playerid,COLOR_RED,"Verwendung: /challenge [Spieler]","USAGE: /challenge [playerid]");}
    new string[128],dstring[128];
    format(string,128,"%s wants to challenge you!",oPlayerName[playerid]);
    format(dstring,128,"%s möchte dich herausfordern!",oPlayerName[playerid]);
    GetPlayerName(playerid,DName,sizeof(DName));
    if(PlayerLanguage[playerid] == 0)
    {
    ShowPlayerDialog(pid,49,DIALOG_STYLE_MSGBOX,"Herausforderung",dstring,"Annehment","Ablehnen");
    }
    else
    {
    ShowPlayerDialog(pid,49,DIALOG_STYLE_MSGBOX,"Challenge",string,"Accept","Abort");
    }
    GetPlayerPos(playerid,dx,dy,dz);
    return 1;
    }

    Hallo zusammen,


    ich möchte auf meinem Forum bestimmte Waffen (z.b. Minigun) verbieten,
    falls jemand diese benutzt soll er gekickt werden.


    Aber wo frage ich das am besten ab? Bei OnPlayerUpdate?


    Erstelle einen TImer der jede Sekunde abfragt ob der Spieler eine Minigun besitz.
    Wenn ja, kick ihn ;)

    Da sieht man den Unterschied.. ein Kollege hat einen Medion PC, der war in 2 Jahren schon zwei mal kaputt, dagegen mein PC einer mit nicht soo mega Leistung, der vor 4 Jahren von Terra mit Marken Hardware gekauft wurde hat nach 4 Jahren noch keinen einzigen Schaden oder sonst was gehabt und arbeitet genauso gut wie vorher.


    Ich empfehle euch daher: kauft nie Elektronik wie PCs von Aldi, Lidl oder sonst welchen billig Läden.


    xD Ich hab den Medion-PC in 2 Tagen kaputt bekommen :D Soundkartenfehler :D Neuerstattet bekommen
    und nach 3 Jahren durchgeschmort :(

    Hallo,
    ICh habe mal wieder ein Problem mit einer Schleife. Ich weiß einfach nicht wo ich ein
    return einsetzen muss, da ich die Nachricht tausend mal bekomme :(


    forward RaceCount(playerid);
    public RaceCount(playerid)
    {
    if(rcount > 0)
    {
    for(new i; i < MAX_PLAYERS; i++)
    {
    if(vRacer[i] == 1)
    {
    new
    str[128];
    format(str,sizeof(str),"~r~%d",rcount);
    GameTextForPlayer(i,str,1050,4);
    rcount--;
    return 1;
    }
    }
    return 1;
    }
    else
    {
    KillTimer(rtimer);
    for(new ri; ri < MAX_PLAYERS; ri++)
    {
    if(vRacer[ri] == 1)
    {
    GameTextForPlayer(ri,"~r~GOOOOOOOOOOOOOOO!!!",1050,4);
    TogglePlayerControllable(ri,1);
    ClientLanguageText(ri,COLOR_RED,"Du hast 5 Minuten Zeit bis das Rennen automatisch beendet wird.","You have 5 minutes until the race will automatically end!");
    retimer = SetTimerEx("Rends",300000,false,"i",playerid);
    }
    }
    }
    return 1;
    }


    Hoffe mir kann geholfen werden,
    lg ;)