Beiträge von Kaliber


    Watch on the Date:

    Code
    12.08.2009, 19:06


    Hier nichts mehr posten ! ^^


    mfg. :thumbup:

    if(GetPlayerVehicleid(playerid,carid){
    sendclientmessage(playerid,color_white,"haha du sitzt in einem motorad drin !");
    return 1;
    }


    vehicle ids findest du unter google oder wiki.samp.de


    Ehm...nein, so macht man das definitiv nicht :D


    Was du meinst ist sowas:


    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 411) //Das hier wäre jetzt ein Infernus
    Das ist eine Modelid, keine Vehicleid :D


    Aber du solltest eine Funktion machen und mit switch und case arbeiten wo du alle modelids von den LKWs einträgst ;)


    mfg. :thumbup:

    Okay, ich nehme mal kurz deinen Beitrag auseinander und sage was dazu:


    Ebenso hast du zwar #error verwendet, aber nirgens erklärt.


    #error = Erzeugt einen error (das steht da auch grob)


    ch hätte mir gewünscht, dass du noch ein paar #pragma-Sachen reingebracht hättest.


    Lese meinen letzten Satz...


    Auch #inlcude wäre sinnvoll.


    Das Directive Included eine Include datei, mehr aber auch weniger nicht.


    Du hast in der Überschrift was von pre-processor geschrieben, aber gerade darauf gehst du nicht weiter ein.


    Okay, da hast du recht, ich denke ich baue das noch ein wenig aus, wie der Compiler das ganze Script verarbeitet...


    sehe ich keinen Unterschied zwischen #if und if


    Dann hast du nicht genau hingeschaut, du kannst #if im Gegensatz zu if egal wo im Script verwenden.


    das ist doch erst das total spannende daran.


    Dein Leben scheint nicht sehr aufregend zu sein, wenn du es als "so spannend" hälst, dass der Compiler die Directives vor allem anderen verarbeitet :D


    Naja, ich werde es evtl noch hier und da ein wenig ausbauen :D


    mfg. :thumbup:

    Ein, in meinen Augen, sehr unbrauchbares Tutorial. Zwar zeigt es ein paar Direktiven, aber die sind in meinen Augen genauso selbsterklärend wie include*. In diesem Tutorial wird in die Thematik zu wenig eingegangen, Fragen wie "Wie greift der Compiler auf diese zu / wie werden sie verarbeitet" sind für in meinen Augen ein MUSS, wenn es um den angesprochenden Bereich geht.



    * Dieser Satz ist entstanden, da include von der Priorität her die höchste Direktive ist und scheinbar gewollt nicht genannt / erläutert wurde.


    Dieses Tutorial ist für Anfänger gedacht und ich fand es nicht so klug direkt zu erklären wie der Compiler das verarbeitet, da das ja nicht direkt was mit dem Scripten damit zu tun hat ^^
    un Include habe ich weggelassen, da das der einzige Directive mit Tryinclude ist, den man nicht wirklich erklären muss (wenn man ein wenig englisch kann) ^^


    mfg. :thumbup:

    Problem ist, ich weiss nicht wie ich das abfrage mit dem Geld :D Kann mir dort jemand helfen? Dann kommt das heut Abend noch dazu.


    if(GetPlayerMoney(playerid) < 50) return SendClienMessage(playerid, 0xFF0000FF,"Du besitzt zu wenig Geld für diesen Skin");


    mfg. :thumbup:

    Da solltest du einiges editieren:


    • if (strcmp("/info", cmdtext, true, 10) == 0)
      {
      GivePlayerMoney(playerid,1);
      }
      Was hat das GivePlayerMoney da zu suchen...raus damit :pinch:


    • Du solltest Abfragen bei deinem Dialog ob der Spieler überhaupt 50$ besitzt, sonst kann das tief in den Minus gehen...
    • 20x Skin 1..Skin2 geschrieben ist auch nicht das gelbe vom Ei einfach mal sowas gemacht:
      //Oben im Script
      static const string_dialog[128];
      //Unter OnGameModeInit
      new buffer[10];
      for(new i=1; i!=20; i++) format(buffer, sizeof buffer,"Skin %d\n",i),strins(string_dialog, buffer, 0, 128);


      //Und dann einfach bei deinem Dialog so einsetzen
      ShowPlayerDialog(playerid,dSkinshop,DIALOG_STYLE_LIST,"Bincoladen",string_dialog,"Bestätigen","Abbrechen");


    • Ich rate dir zur Nutzung von switch und case, da dieses um einiges schneller ist als eine if-Abfrage
    • Achte ein wenig auf Zeilensparen:
      Vorher (Dein Code):
      if(dialogid == dInfo)
      {
      if(response == 1)
      {
      SendClientMessage(playerid,Grün,"(c)Jacke2009");
      }
      if(response == 0)
      {
      SendClientMessage(playerid,Grün,"(c)Jacke2009");
      }
      return 1;
      }
      Optimierter Code:
      if(dialogid == dInfo) {
      if(response == 1)SendClientMessage(playerid,Grün,"(c)Jacke2009");
      else SendClientMessage(playerid,Grün,"(c)Jacke2009");
      }


    Nicht sehr viel Arbeit und auch nicht so schön :S


    mfg. :thumbup:

    Returning 0 in this callback will pass the dialog to another script in case no matching code were found in your gamemode's callback.


    woher weißt du jetzt das es sich hier um Filterscripts handelt und nicht um Includes die unter dem Callback included werden :huh: