Wiedermal Probleme :>

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey !


    Da jetzt das Forum wieder on ist , kann ich endlich meine Probleme posten ;D


    Also:


    1.

    Spoiler anzeigen

    Ich möchte für eine Fraktion Kameras erstellen , sprich , jedes Mitglied dieser Fraktion kann eine Kamera irgendwo hinstellen , und sich dann dadrin umschauen.
    Allerdings ändert sich die Kameraposition nicht bei /Kamera , sondern es wird nur der Text ausgegeben!

    Spoiler anzeigen
    Hier der Code:

    ocmd:kameralegen(playerid,params[])
    {
    new Spieler[64];
    format(Spieler,sizeof(Spieler),"Spieler/%s.txt",PlayerName(playerid));
    if(KameraGelegt==false)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);

    dini_FloatSet(Spieler,"KameraX",x);
    dini_FloatSet(Spieler,"KameraY",y);
    dini_FloatSet(Spieler,"KameraZ",z);
    CreateObject(1253,x,y,z+0.5,0,0,0,0);
    SendClientMessage(playerid,Gruen,"Kamera erfolgreich aufgestellt!");
    SendClientMessage(playerid,Gruen,"Benutze /kamera um die Kamera zu benutzen!");
    inKamera=false;
    KameraGelegt=true;
    }
    return 1;
    }

    Spoiler anzeigen
    ocmd:kamera(playerid,params[])
    {
    new Spieler[64];
    format(Spieler,sizeof(Spieler),"Spieler/%s.txt",PlayerName(playerid));
    if(KameraGelegt==true)
    {
    if(inKamera==false)
    {
    SetPlayerCameraPos(playerid,dini_Float(Spieler,"KameraX"),dini_Float(Spieler,"KameraY"),dini_Float(Spieler,"KameraZ"));
    SendClientMessage(playerid,Gruen,"Du überprüfst die Kamera!");
    SendClientMessage(playerid,Gruen,"Benutze /kamera um die Kamera zu verlassen!");
    inKamera=true;
    return 1;
    }
    else if(inKamera==true)
    {
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,Gruen,"Du hast die Kamera verlassen!");
    TogglePlayerControllable(playerid,1);
    inKamera=false;
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du hast keine Kamera aufgestellt!");
    SendClientMessage(playerid,Rot,"Benutze /kameralegen um die Kamera aufzustellen!");
    }
    return 1;
    }


    2. (GEKLÄRT)

    Spoiler anzeigen

    Ich habe versucht , einen "Anti-Weaponhack" zu machen , sehr sehr simpel , klappt allerdings nicht ._.

    Spoiler anzeigen
    Man wird direkt gebannt , auch wenn man keine der unten genannten Waffen hat !

    Spoiler anzeigen

    forward weapontest(playerid);

    Spoiler anzeigen
    OnPlayerSpawn

    Spoiler anzeigen
    SetTimer("weapontest",1000,1);

    Spoiler anzeigen
    public weapontest(playerid)
    {
    if(GetPlayerWeapon(playerid) == 9 || 35 || 36 || 37 || 38 || 39 || 40)
    {
    new Spieler[64];
    format(Spieler,sizeof(Spieler),"Spieler/%s.txt",PlayerName(playerid));
    new string[256];
    new string2[256];
    format(string,sizeof(string),"%s wurde vom System verbannt , Grund: Weaponhack",PlayerName(playerid));
    format(string2,sizeof(string2),"Du wurdest vom System verbannt, Grund: Weaponhack",PlayerName(playerid));
    SendClientMessageToAll(Grau,string);
    SendClientMessage(playerid,Grau,string2);
    printf("%s wurde verbannt , Grund: Weaponhack",PlayerName(playerid));
    dini_IntSet(Spieler,"Bann",1);
    dini_Set(Spieler,"Banngrund", "Weaponhack");
    dini_Set(Spieler,"Banner","System");
    Kick(playerid);
    }
    }


    3.

    Spoiler anzeigen
    Gibt es eine Möglichkeit , schnell Variablen abzufragen ?

    Spoiler anzeigen
    Ich möchte eine Arena machen , und man soll am Anfang auswählen , welches Fahrzeug man nimmt (Die Fahrzeuge muss man kaufen , es gibt insgesamt 5 stück , dabei wird jeweils die Variable des Fahrzeugs auf 1 gesetzt!)

    Spoiler anzeigen
    Nun möchte ich abfragen , welches Fahrzeug man gekauft hat.

    Spoiler anzeigen
    zB hat man Fahrzeug 2 und 5 gekauft , dann sollte am Anfang ein List-Dialog sein , wo man zwischen Fahrzeug 2 , Fahrzeug 5 und Abbrechen wählen kann.

    Spoiler anzeigen
    Geht es kürzer als mein Versuch ?
    Denn bei meinem ist es SEHR viel Arbeit !
    new Spieler[64];
    format(Spieler,sizeof(Spieler),"Spieler/%s.txt",PlayerName(playerid));
    if(dini_Int(Spieler,"RC-Vehicle1")>=1)
    {

    }
    if(dini_Int(Spieler,"RC-Vehicle1")>=1 && dini_Int(Spieler,"RC-Vehicle2")>=1)
    {

    }
    if(dini_Int(Spieler,"RC-Vehicle1")>=1 && dini_Int(Spieler,"RC-Vehicle2")>=1 && dini_Int(Spieler,"RC-Vehicle3")>=1)
    {

    }
    if(dini_Int(Spieler,"RC-Vehicle1")>=1 && dini_Int(Spieler,"RC-Vehicle2")>=1 && dini_Int(Spieler,"RC-Vehicle3")>=1 && dini_Int(Spieler,"RC-Vehicle4")>=1)
    {

    }
    if(dini_Int(Spieler,"RC-Vehicle1")>=1 && dini_Int(Spieler,"RC-Vehicle2")>=1 && dini_Int(Spieler,"RC-Vehicle3")>=1 && dini_Int(Spieler,"RC-Vehicle4")>=1 && dini_Int(Spieler,"RC-Vehicle5")>=1)
    {

    }

  • Zu 1:
    Was passiert genau? Wird es nicht einmal gespeichert?


    Zu 2:
    Dein Code ist ein bisschen falsch.
    Du musst folgendes schreiben:
    if(GetPlayerWeapon(playerid) == WAFFEN_ID || GetPlayerWeapon(playerid) == WAFFEN_ID) {}


    ... und so weiter natürlich.
    Sonst sehe ich in diesem Code Teil eigentlich kein gravierenden fehler.
    Du solltest immer in eine Funktion noch
    if(IsPlayerConnected(playerid)) {}


    einfügen, nur zur Sicherheit.