Beiträge von [EGC] selEcT

    Jap, und das sind nich nur die Messages die verrutschen, den Gameserver bzw. root neu aufsetzten,


    hab das nur bei den messages gemerkt..


    oder die Write,Read,append rechte richtig zuweisen.


    wo? beim gamemode selber (amx) oder im ganzen ordner? 777 funzt schon mal net aufm gamemode..


    Achja, wenn der Gamemode per FTP hochgeladen wurde... benutzt den Transfer-Mode "Binär".


    hmm funzt auch net.. :(

    hallo leute!


    Ich habe ein kleines Problem!


    Wenn sich der Spieler registriert hat, dann kommen 4 Info-Linien (1-4 auf dem Bild) im Chat.
    Danach sollten 3 weitere Linien (5-7 auf dem Bild) kommen, die das skinsystem beschreiben.
    Allerdings vermischen die sich! Seht selber auf dem Bild:



    Code:



    SendClientMessage(playerid, C_RED, "*---- WILLKOMMEN BEI AMIGOS ROLEPLAY - VILLAGE ----*"); //1
    SendClientMessage(playerid, C_YELLOW, "*---- Besuch uns doch auf {FF8300}http://www.amigos-roleplay.de/ ----*"); //2
    SendClientMessage(playerid, C_YELLOW, "*---- oder auf unserem {FF8300}TeamSpeak-3-Server: 78.47.224.105:9988 ----*"); //3
    SendClientMessage(playerid, C_RED, "*---- VIEL SPASS BEI AMIGOS ROLEPLAY - VILLAGE ----*"); //4
    if(lala)
    {
    //some code
    }
    else
    {
    //some code
    SendClientMessage(playerid, C_YELLOW, "________.......------: {FF0000}Skinauswahl{FFFF00} :------.......________"); //5
    SendClientMessage(playerid, C_ORANGE, "Benutze die {FFFF00}Sprung- und Rennen-Tasten{FF8C00}, um einen Skin auszuwaehlen!"); //6
    SendClientMessage(playerid, C_ORANGE, "Wenn du zufrieden bist, benutze die {FFFF00}Einsteige-Taste{FF8C00}!"); //7
    }


    Kennt jemand dieses Phänomen?


    MFG

    Dann dein break ist nicht in der If Abfrage drin da die {} fehlen... Sonst nimmt if nur das direkt hinten dran


    lol?!



    if(skin == Skin[s][sSkin])
    {
    if(s < maxAvailableSkins)
    {
    SetPlayerSkin(playerid, Skin[s+1][sSkin]);
    }
    break;
    }


    vielleicht verstehst du den code so besser? Der Skin sollte nur eins weiter gehen, wenn der letzte skin noch nicht erreicht wurde, diese abfrage hat mit dem break überhaupt nichts zu tun..


    alles klar.. ich probiers dann mal wenn ich zuhause bin! Danke, das mit Pressed hab ich noch nicht ausprobiert..


    edit:


    Ich sag ja das des net geht! Wie hast du das gemacht?


    habs jetzt so:



    #define PRESSED(%0) \
    (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    new skin = GetPlayerSkin(playerid);
    if(PRESSED(KEY_RIGHT))
    {
    SendClientMessage(playerid, C_GREEN, "right");
    if(ChooseSkin[playerid])
    {
    for(new s=0;s<sizeof(maxAvailableSkins);s++)
    {
    if(skin == Skin[s][sSkin])
    {
    if(s < maxAvailableSkins) SetPlayerSkin(playerid, Skin[s+1][sSkin]);
    }
    }
    }
    }
    else if(PRESSED(KEY_LEFT))
    {
    SendClientMessage(playerid, C_GREEN, "left");
    if(ChooseSkin[playerid])
    {
    for(new s=0;s<sizeof(maxAvailableSkins);s++)
    {
    if(skin == Skin[s][sSkin])
    {
    if(s > 0) SetPlayerSkin(playerid, Skin[s-1][sSkin]);
    }
    }
    }
    }
    return 1;
    }


    und es wird mir kein left oder right angezeigt.. :( ich weiss das man den code auch vereinfachen könnte..



    edit2: LOL hab grad rausgefunden: die rechte maustaste ist KEY_RIGHT oO sind das nicht die lauf-tasten (wasd)? aber key_left geht nicht mit der linken maustaste..


    edit3:


    Das ganze system funktioniert jetzt! Allerdings hab ich das wieder in OnPlayerUpdate genommen, wo es manchmal einen skin überspringt, was natürlich einigermassen logisch ist.. gibt es was einfacheres, was gut funktioniert?

    Wer sagt bitte das dieses Tasten darunter nicht funktionieren? Klar gehen die...


    "This callback is called when the state of any key except the movement keys (up, down, left, right) changes (i.e. are pressed or released)." (http://wiki.sa-mp.com/wiki/OnPlayerKeyStateChange)


    Nö, bei mir haben die auch nicht geklappt irgendwie.. hab auch hier im forum danach gesucht und da wurde auch gesagt, dass das dort nicht geht! Wenn es aber doch geht, weisst du bestimmt ne lösung.


    Und das unter OnPlayerUpdate zu tun ist absolut shit...


    Ja, das ist mir schon klar.. aber wenns sonst nirgends funzt :S


    Mach es unter OnPlayerKeyStatechange... Fang erstmal an die Tatsen mit SendClientMessage abzufragen ob sie hinhauen


    if(newkeys & KEY_LEFT) hat damals nicht geklappt.. hab nach der if-Abfrage SendClientMessage(playerid, farbe, "hallo") eingebaut, was nichts ausgegeben hat!


    das break bzw return 1 sollte auch in die If Verzweigung und net ausserhalb


    ich hab das ja in der if abfrage drin oO ich tu das da rein, weil er sonst noch die restlichen werte in der for-schleife durchgeht (--> performance!) oder ist das nicht gut?


    Du machst es komplizierter wie es ist^^


    anders habe ich es nicht hingebracht..

    schön wärs, aber unter onplayerkeystatechange funktionieren die Tasten KEY_LEFT, KEY_RIGHT, KEY_UP, KEY_DOWN nicht ;) ich könnte zwar andere Tasten nehmen, aber mit denen wäre es mir am liebsten..


    nein nein, nicht zu lang.. ich schrieb einfach zuerst 4 mal eine message und danach kommen noch 3 weitere linien mit neuen messages dazu, die letzten 2 setzt er aber irgendwie über die ersten 4! verstehst du was ich meine?

    Hallo Leute..


    ich weiss nicht mehr weiter.. bin schon den ganzen Abend dran.


    Ich bin gerade an einem Skinchange-System dran.


    Allerdings funktioniert das nicht, wie es sollte..


    Hier mal der Code:



    //---------------OnPlayerUpdate------------
    public OnPlayerUpdate(playerid)
    {
    new Keys,ud,lr;
    GetPlayerKeys(playerid,Keys,ud,lr);
    if(ChooseSkin[playerid])
    {
    new skin = GetPlayerSkin(playerid);
    if(lr > 0)
    {
    for(new s=0;s<sizeof(maxAvailableSkins);s++)
    {
    if(skin == Skin[s][sSkin])
    {
    if(s < maxAvailableSkins) SetPlayerSkin(playerid, Skin[s+1][sSkin]);
    break; //hab es hier auch schon mit return 1; probiert..
    }
    }
    }
    else if(lr < 0)
    {
    for(new s=0;s<sizeof(maxAvailableSkins);s++)
    {
    if(skin == Skin[s][sSkin])
    {
    if(s > 0) SetPlayerSkin(playerid, Skin[s-1][sSkin]);
    break;
    }
    }
    }
    }
    return 1;
    }


    irgendwie nimmt der die Skins nicht richtig.. der erste Tastendruck funktioniert perfekt, er wechselt den Skin auf den nächsten! Danach gehts aber nicht mehr weiter..


    Ich habs schon mit debuggen versucht, dort ist dann ab dem 2. Mal drucken iwie was falsch.. vor skin == Skin[s ][sSkin] hab ich da mal eingebaut: s, aktueller skin, skin in der Variable..


    Allerdings geht er irgendwie nicht weiter.. Sollte er in der For-Schleife nicht alle nacheinander durchgehen und in der if-Abfrage diesen Test abfragen? irgendwie geht das nicht..


    Hab schon probiert statt OnPlayerUpdate einen Timer draus zu machen.. kein Erfolg.. Hat jemand eine Idee?


    Ich weiss wirklich nicht mehr weiter..


    Was mir noch aufgefallen ist!!


    Wenn ich 2 lange SendClientMessage-Texte habe:


    1x
    Hallo bla bla bla
    Hallo bla bla bla
    Hallo bla bla bla
    Hallo bla bla bla


    UND


    1x
    mach dies
    mach das
    mach jenes


    dann vermischt er die irgendwie zusammen und ab und zu werden auch aktionen nicht ausgeführt, ist das auch schon jemandem aufgefallen?


    MFG selEcT

    Hallo Ich habe mal eine Frage Ich habe alles geupdatet den bfx_streamer + Include aber nach dem Ich das gemacht hatte. Konnte man komischer weise keine Tore,schranken mehr bewegen die Objecte waren nur noch da. Den öffnungs sound der Tore hörte man passierte aber nichts. Woran liegt das?


    Bei mir gingen die Tore auch nie mit dem Streamer, bau die Tore und Schranken einfach mit der normalen CreateObject Funktion ein..


    Was für einen Converter brauche ich?
    Oder wie heißt das output bei:
    http://www.convertffs.com/
    mfg lolli


    Das gibts dort nicht, aber geht ja ganz einfach im Script, CTRL+H, suche nach CreateObject, mit b_CreateObject ersetzen


    Nice, habe alles richtig Eingestellt wird aber trozdem nicht alles Angezeigt? Oo
    Immer 2-3 Zäune sieht man nicht.
    Aber Danke für den Streamer!
    10/10


    Bei mir werden nicht alle objecte angezeigt aber wieso????


    Das problem hab ich ab und zu auch.. es nützt wenn man den server ganz ausschaltet und dann wieder einschaltet (kein gmx)

    Moin!


    Ich komm seit 2 Tagen nicht mehr weiter..
    Ich möchte gerne, das es mir einen checkpoint am nächsten Punkt anzeigt, der in einer Variable ist (bzw. in mehreren, x,y,z).
    Also zuerst lese ich IDs von dem Punkt (also punktid 0, 1 etc.) in ne Variable, also Punkt[2] = punktid zum beispiel
    Nun hab ich das Array mit 15 Werten gefüllt, also Punkt[0] = 1, Punkt[1] = 3 z.B.
    Nun haben diese Punkte auch Positionen, also punktid,posx,posy,posz.
    Jetzt würde ich gerne haben, das es mir jeden Punkt nacheinander mit einem checkpoint anzeigt.
    Also zuerst den nächsten Punkt, dann wenn ich in den Checkpoint reingehe, den übernächsten und so weiter..


    Hat da jemand ne idee? Ich habs schon mit einer Schleife probiert, aber ich weiss net, wie ich das herausfinde,
    welcher Punkt am nächsten ist und das der dann nicht nochmal angezeigt wird beim reingehen..


    MFG selEcT


    //edit: ich hab mir das halt so gedacht:
    Es wird überprüft, welchem Punkt der Spieler am nächsten ist, also eigentlich verglichen.
    Mit GetDistanceToPoint könnte das gemacht werden, allerdings möchte ich nicht alle punkte einfach so vergleichen
    (also punkt[0]dist = punkt[1]dist etc.). Das soll eher automatisch passieren, irgendwie mit ner Schleife.. nur
    weiss ich nicht, wie ich das machen soll..


    public pday() //kein playerid ;)
    {
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    PlayerInfo[i][pPayPoints]++;
    if(PlayerInfo[i][pPayPoints] >= 60)
    { //hier braucht es nur eine Klammer
    PayDay(i);
    } //hier auch
    }
    return 1;
    }


    und nimm bei PayDay das raus: if(PlayerInfo[playerid][pPayDay] >= 3)


    Dann geht der Payday nur, wenn man level 3 oder höher ist ;)

    du kannst sonst auch einfach 2 strings machen


    also iwie so


    if(language[playerid] == 1) //Englisch
    {
    SendClientMessage(playerid, COLOR_GREEN, "Hello!");
    }
    else if(language[playerid] == 2) //Deutsch
    {
    SendClientMessage(playerid, COLOR_GREEN, "Hallo!");
    }
    else if(language[playerid] == 3) //Französisch
    {
    SendClientMessage(playerid, COLOR_GREEN, "Salut!");
    }

    Hallo!


    Ich hab ma gelesen, dass es einen GRP Gamemode gibt. Allerdings find ich den weder hier, noch im englischen Forum.


    Hat das vielleicht jemand? ^^


    MFG selEcT

    Hallo leute!


    Ersteinmal, gutes stück Double-O-Seven ;)


    Habe aber noch ein paar kleine Probleme..


    - Die "BadWords" funktionieren nicht mit /ooc! Kann ich das irgendwie ändern?
    - Ich hab ein AFK-System mit TogglePlayerControllable drin, der abfragt, ob der Spieler gefreezed ist. Und nun funktioniert das mit dem Include nicht mehr, weil irgendwie TogglePlayerControllable neu definiert wurde.. wie kann ich das wieder ändern?


    MFG