Beiträge von maddinat0r

    Oben im Script:

    forward robtimer(playerid);
    new bool:rob[MAX_PLAYERS];


    Unter OnPlayerCommandText (weiß nicht ob das mit OCMD so richtig ist, benutze es nicht):

    OCMD:rob(playerid,params[])
    {
    if(rob[playerid] == true) return SendClientMessage(playerid, COLOR_RED, "Du hast gerade erst jemanden ausgeraubt!");
    new targetid;
    if(sscanf(params,"u",targedid)) return 0;
    new Float:tpos[3];
    GetPlayerPos(targetid,tpos[0],tpos[1],tpos[2]);
    if(!IsPlayerInRangeOfPoint(playerid,1.5,tpos[0],tpos[1],tpos[2])) return 0;
    new robgeld = random(749) + 501;
    GivePlayerMoney(playerid,robgeld);
    GivePlayerMoney(targetid,-robgeld);
    SendClientMessage(targetid,COLOR_RED,"Du wurdest ausgeraubt!");
    new robmsg[64];
    format(robmsg,sizeof(robmsg),"Du hast $%d erbeutet!",robgeld);
    SendClientMessage(playerid,COLOR_GREEN,robmsg);
    rob[playerid] = true;
    SetTimerEx("robtimer",300000,0,"d",playerid);
    return 1;
    }


    Ganz unten im Script:

    public robtimer(playerid)
    {
    rob[playerid] = false;
    return 1;
    }


    Edit: kleinen Fehler behoben

    Du Held du, beide Koordinatenangaben sind identisch xD
    Außerdem wirst du hier wohl eher mit SetObjectRot arbeiten müssen, kommt ganz auf das
    Objekt an. Und um das geschmeidig hinzubekommen (also nicht dass es abgehakt aussieht) musst du auch
    nochma Zeit investieren.

    Ich glaub, dass es Scripter gibt, die nix besseres zu tun haben als Anfängern zu helfen xD
    Irgendwie ist es sicher machbar, und dazu benötigt man ganz sicher nicht nen Profi.


    //Edit:


    @ dead

    Zitat

    Hast du erstmal ein 15k-Zeilen-Script und einen Klammerfehler, darfst du dich (ich rede jetzt von Pawno)....

    Wenn du diese Textstelle meinst, ich habe hier ganz bewusst vom Programm selbst gesprochen, nicht von der Sprache.

    Zitat

    ...viele Leute Programme rausgebracht die den Compiler von Pawno nutzen, bloß...

    Hier ebenfalls, da ja der Compiler schon mit dem Programm mitgeliefert ist.

    Yop, alles in Filterscripts zu packen hat natürlich seine Vorteile.
    Zum ersten, falls du mal z. B. das Haussystem updaten willst musst du jetzt nicht extra das ganze Gamemode
    neustarten, sondern eben nur das Filterscript.
    Zum zweiten, wie du schon erwähnt hast, ist es viel übersichtlicher.
    Bloß musst du es so hinkriegen, dass die Filterscripts reibungslos mit dem Gamemode verbunden sind, bzw. Daten hin und
    herschicken können.


    //Edit
    Man kann im Endeffekt nur mit der Funktion CallRemoteFunction arbeiten, um wichtige Sachen auszutauschen.

    Zum Thema schwer in Pawn scripten kann ich dir ein Lied singen xD
    Gut, Erfahrungen in VB hab ich zwar nicht wirklich, aber das mit dem Deubg wär echt einfacher.
    Ein klassisches Beispiel ist ja auch der allseits beliebte Klammerfehler.
    Hast du erstmal ein 15k-Zeilen-Script und einen Klammerfehler, darfst du dich (ich rede jetzt von Pawno)
    vielleicht nen ganzen Tag damit rumschlagen, die fehlende Klammer zu suchen.
    Aber es haben ja schon viele Leute Programme rausgebracht die den Compiler von Pawno nutzen, bloß
    mit ein paar Extras, die auch z. B. Klammerfehler finden (zwar nicht konkret debuggen, aber immerhin).

    Kommt den irgeneine Nachricht, wenn du /register machst?
    Also z. B. "Du hast dich erfolgreich registriert..."?
    Wenn nein, dann solltest du das strget bei jedem strcmp rauslöschen.
    Ich weiß jetzt nicht ob die Befehle auch mit gehen, aber ich kenns normal so:
    if(strcmp(cmdtext, "/register", true) == 0)


    //Edit: Schwachsinn, du überträgst ja garkeine Parameter!
    Benutz dcmd in Verbindung mit sscanf, ist das beste was du machen kannst.

    Ich werd dir jetzt auch mal versuchen zu helfen, da du hier ja ziemlich verzweifelst und dir keiner so richtig helfen kann.
    Ich benutze zwar kein Dini, aber

    dini_Create(str);
    { //1. Klammer
    dini_IntSet(str,"ID",CarInfo[carid][ID]);
    dini_IntSet(str,"Model",CarInfo[carid][model]);
    dini_IntSet(str,"Farbe1",CarInfo[carid][farbe1]);
    dini_IntSet(str,"Farbe2",CarInfo[carid][farbe2]);
    dini_FloatSet(str,"x",CarInfo[carid][carx]);
    dini_FloatSet(str,"y",CarInfo[carid][cary]);
    dini_FloatSet(str,"z",CarInfo[carid][carz]);
    dini_FloatSet(str,"a",CarInfo[carid][cara]);
    dini_IntSet(str,"Preis",CarInfo[carid][car_preis]);
    dini_Set(str,"Besitzer","Keiner");
    dini_Set(str,"Key1","Keiner");
    dini_Set(str,"Key2","Keiner");
    dini_Set(str,"Key3","Keiner");
    dini_IntSet(str,"Motorschaden",0);
    dini_IntSet(str,"Tankinhalt",100);
    dini_IntSet(str,"Lackierung",0);
    dini_IntSet(str,"Nitro",0);
    dini_IntSet(str,"Hydraulik",0);
    dini_IntSet(str,"Vents",0);
    dini_IntSet(str,"Lamps",0);
    dini_IntSet(str,"Wheels",0);
    dini_IntSet(str,"Hood",0);
    dini_IntSet(str,"Roof",0);
    dini_IntSet(str,"Auspuff",0);
    dini_IntSet(str,"Spoiler",0);
    dini_IntSet(str,"StossR",0);
    dini_IntSet(str,"StossF",0);
    dini_IntSet(str,"SideR",0);
    dini_IntSet(str,"SideL",0);
    dini_Set(str,"Nummernschild","Classic");
    return LadeFahrzeug(carid);
    } //2. Klammer



    Soweit ich weiß, gehören da doch keine Klammern hin, oder? (Wie gesagt, benutze kein Dini)


    Und probier es auch statt CreateVehicle mit AddStaticVehicle.

    [pwn]
    if(GetPVarInt(playerid,FW) == 4) //Hiier deine Frak-ID ändern und PVarInt anpassen
    {
    SetSkin(playerid,feuerwehrskins[random(2)]); //Feuerwehrskins ist der Array wo die Skins gespeichert sind, in den eckigen Klammern danach welcher Platz das ist. (Skin 128 wäre z.B. Platz 0)
    }

    Du könntest n Array erstellen, wo dann alle Skins der jeweiligen Fraktion sind.
    new feuerwehrskins[3] = {128, 129, 130};
    Oder du benutzt mein dynamisches Skinsystem, dafür brauchst du aber MySQL.

    Wie willst du n Spieler der gebannt ist nen String ausgeben lassen?!
    Dann connectet er auf den Server und da wird halt stehen "You are banned from this server.".
    Da hilft auch kein Timer weiter.
    Dann musst du selbst n Bann-Befehl schreiben und nicht mit der Standardfunktion Ban(playerid);
    Erst dann kommt der ganze Rest mit dem Grund speichern und co.
    Ist also nicht ganz einfach für dich.