Beiträge von Zcelo12

    Die 256 ist für die Zeichenlänge. WEnn etwas abgeschnitten wird, einfach erhöhen. Oder einfach zählen wieviele Zeichen es werden könnten, und fertig ;)


    Das Problem ist ja, dass der Chat nur 128 Zeichen unterstützt und 256 Zeichen somit Ressourcenfressend wäre.
    Da wir aber von Dialogen sprechen wollte ich mich ja erkundigen ob es hier genauso ist oder eben nicht :)

    Das würde mich auch mal interessieren, da ich bei mir den string auf 256 gestellt habe:
    new string[256];
    und es geklappt habe. Aber welche Methode ist besser bzw. ressourcen sparender?

    In einem enum kann man das so nicht machen.
    Am besten, da du ja mehrere Textdraws für jede Variable hast, machst du für jede ein enum.


    Beispiel:


    enum e_Killstreek
    {
    TextKillstreek1[MAX_PLAYERS],
    Text:Killstreek2[MAX_PLAYERS],
    Text:Killstreek3[MAX_PLAYERS]
    }
    new KS[MAX_PLAYERS][Killstreek1];
    wäre übersichtlicher für dich ;)

    Vieleicht solltest du diese in ein enum packen wie es bei mir auch ist:


    enum e_textdraw
    {
    Text:textdraw[MAX_PLAYERS],
    Text:textdraw2[MAX_PLAYERS],
    Text:textdraw3[MAX_PLAYERS]
    }
    new TXD[MAX_PLAYERS][e_textdraw];


    und benutzen dann über z.B. TXD[playerid][textdraw2]

    SetTimer("Label",10000, false);
    WOzu brauchst du das?


    Außerdem hast du doch bei OnPlayerSpawn den Timer auf
    Spawnkilltime * 10000
    Spawnkilltime ist bei dir auf 10 definiert. D.H. 10 * 10000. Der Text verschwindet also erst nach 100 Sekunden ;)
    Du kannst das
    #define SPAWNKILLTIME 10
    eigentlich entfernen und dafür beim Timer einfach 10000 stehen lassen für deine 10 Sekunden.


    Verstanden? :)

    Definier oben...
    new antispawnlabel[MAX_PLAYERS];
    ...dann machste bei OnPlayerSpawn
    antispawnlabel[playerid] = Create3DTextLabel("AntiSpawnKill",COLOR_RED,0,0,0,40.0);//Label wird erstellt (Text,Farbe,x,y,z,Drawdistance)
    Attach3DTextLabelToPlayer(antispawnlabel[playerid], playerid, 0.0, 0.0, 0.45);//Label wird an den SPieler gehängt


    ...und zu guter Letzt zerstörtst du es im public von deinem Timer:
    public NoSpawnKill(playerid)
    {
    PlayerSpawnKilled[playerid] = false;
    Delete3DTextLabel(antispawnlabel[playerid]);// (Label wird zerstört)
    return 1;
    }


    Hoffe ich konnte helfen ;)
    lg

    Ok...
    CMD:spectate(playerid,params[])
    {
    if(Player[playerid][Admin] >= 2)
    {
    new selection[10];
    if(sscanf(params,"s[10]",selection))
    {
    if(!IsPlayerSpectating[playerid])
    {
    SpectateOn(playerid);
    }
    else
    {
    SpectateOff(playerid);
    }
    }
    if(strcmp(selection,"next",true) == 0)
    {
    SpectateNext(playerid);
    }
    if(strcmp(selection,"previous",true) == 0)
    {
    SpectatePrevious(playerid);
    }
    }
    return 1;
    }

    SetTimerEx("UpdateSpielzeit",60000,1,"i",playerid);
    Dir ist hoffentlich klar, dass du die Zeit in Millisekunden angeben musst oder?
    Also müsste es so lauten:
    SetTimerEx("UpdateSpielzeit",3600000,1,"i",playerid);

    Hab's jetzt mal so versucht aber es funktioniert nochnicht ganz.


    CMD:spec(playerid,params[])
    {
    if(Player[playerid][Admin] >= 2)
    {
    if(!IsPlayerSpectating[playerid])
    {
    SpectateOn(playerid);
    }
    else
    {
    SpectateOff(playerid);
    return 1;
    }
    if(!strcmp(params[1], "/next", true, 5))
    {
    SpectateNext(playerid);
    return 1;
    }
    else if(!strcmp(params[1], "/previous", true, 9))
    {
    SpectatePrevious(playerid);
    return 1;
    }
    }
    return 1;
    }


    lg

    Hallo,
    Ich habe unter OnPlayerSpawn Admin-3DTextLabels erstellt,jedoch werden die meinem NPC auch angezeigt :?


    if(Player[playerid][Admin] == 1)
    {
    adminlabel[3] = Create3DTextLabel("Moderator",COLOR_LIGHTBLUE,-1423.0471,-111.7315,14.1440,90,0);
    Attach3DTextLabelToPlayer(adminlabel[3], playerid, 0.0,0.0,0.0);}
    if(Player[playerid][Admin] == 2)
    {
    adminlabel[2] = Create3DTextLabel("Administrator",COLOR_LIGHTBLUE,-1423.0471,-111.7315,14.1440,90,0);
    Attach3DTextLabelToPlayer(adminlabel[2], playerid, 0.0,0.0,0.0);}
    if(Player[playerid][Admin] == 3)
    {
    adminlabel[1] = Create3DTextLabel("Super Admin",COLOR_LIGHTBLUE,-1423.0471,-111.7315,14.1440,90,0);
    Attach3DTextLabelToPlayer(adminlabel[1], playerid, 0.0,0.0,0.0);}
    if(Player[playerid][Admin] == 4)
    {
    adminlabel[0] = Create3DTextLabel("Server Owner",COLOR_LIGHTBLUE,0,0,-50,90,0);
    Attach3DTextLabelToPlayer(adminlabel[0], playerid, 0.0,0.0,0.0);}


    NPC-Bot unter OnPlayerRequestCLass:
    if(IsPlayerNPC(playerid)) //Checks if the player that just spawned is an NPC.
    {
    if(!strcmp(oPlayerName[playerid], "Train", true)) //Checking if the NPC's name is MyFirstNPC
    {
    PutPlayerInVehicle(playerid, Train, 0); //Putting the NPC into the vehicle we created for it.
    SetPlayerColor(playerid,COLOR_LIGHTBLUE);
    }
    return 1;
    }

    Hi,
    Ich überarbeite gerade mein Registersystem und komm jetzt nicht weiter.
    Unswar zeige ich einen Dialog und wenn man Abbrechen drückt soll man gekickt werden,
    wird man aber nicht sondern der Dialog wird mittels switch neu angezeigt.


    format(regStringd,sizeof(regStringd),"{FFFFFF}Hallo {33CCFF}%s {FFFFFF}! Bitte registriere dich um fortzufahren:",oPlayerName[playerid]);
    SetPlayerLanguage(playerid, 0);
    ShowPlayerDialog(playerid,DIALOG_REG,1,"{33CCFF}Registrierung",regStringd,"Weiter","Abbrechen");


    switch(dialogid)
    {
    case DIALOG_LOGIN:
    {
    if(!response)
    {
    Kick(playerid);
    }
    else
    {
    switch(dialogid)
    {


    case DIALOG_LOGIN:dialog_l(playerid);
    case DIALOG_REG:dialog_r(playerid);
    }
    }


    Ware jetzt nur Ausschnitte ;)
    Aber if(!response) steht doch für den 2. Button oder nicht?


    lg

    Was genau funktioniert denn nicht? Der Code an sich sieht jedenfalls richtig aus, vielleicht liegt es an deiner Funktion CreateBlitzer?


    Hab's geschafft :)
    Es lag an der Funktion ClientLanguageTextToAll. Ich hatte dort in der Schleife ein return 1; drinne und deswegen habe ich
    die Nachricht nicht bekommen sondern mein NPC_Bot ;)

    Hallo,
    Ich habe eine Random-FUnktion eingebaut jedoch funktioniert diese überhaupt nicht.
    Kenne mich mit Random noch nicht so gut aus und hoffe auf Hilfe von euch:


    SetTimer("BlitzerRand",30000,true); //zum Test
    forward BlitzerRand();
    public BlitzerRand()
    {
    new rand = random(4);
    switch(rand)
    {
    case 0:
    {
    CreateBlitzer(1239.8652,-915.0017,42.8828,100,50);
    ClientLanguageTextToAll(COLOR_LIGHTBLUE,"Server: Ein Blitzer wurde in der Nähe des BSN gesichtet. Vorsichtig fahren!","A speed camera was seen near the bsn. Drive carefully!");
    }
    case 1:
    {
    CreateBlitzer(1645.2844,-1886.6588,13.5541,100,40);
    ClientLanguageTextToAll(COLOR_LIGHTBLUE,"Server: Ein Blitzer wurde in der Nähe des BSN gesichtet. Vorsichtig fahren!","A speed camera was seen near the bsn. Drive carefully!");
    }
    case 2:
    {
    CreateBlitzer(-1605.4147,1255.5906,7.0435,100,74);
    ClientLanguageTextToAll(COLOR_LIGHTBLUE,"Server: Ein Blitzer wurde in der Nähe des Luxus-Autohaus in San Fierro gesichtet. Vorsichtig fahren!","A speed camera was seen near the Luxus Car Dealer in San Fierro. Drive carefully!");
    }
    case 3:
    {
    CreateBlitzer(-2691.0425,1280.6226,55.9525,100,40);
    ClientLanguageTextToAll(COLOR_LIGHTBLUE,"Server: Ein Blitzer wurde in der Nähe des SFPD gesichtet . Vorsichtig fahren!","A speed camera was seen near the SFPD. Drive carefully!");
    }
    }
    return 1;
    }


    lg