Angepinnt Nützliche Codeschnipsel

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Nützliche Codeschnipsel

      In diesem Thread können nützliche Codeschnipsel gepostet werden, die man immer mal wieder benötigt.
      Es wäre toll wenn man dazu ein kleines Verwendungsbeispiel (muss kein komplettes Script sein) schreiben würde, dann wird es leichter zu verstehen wie man es verwendet.
      Hier bitte keine Scriptfragen stellen!
      ------------------------------------------------------------------------------------------------------------------------

      Animierte Kamera

      In diesem Beispielscript wird gezeigt wie man durch Verwendung eines Timers mehr oder weniger weiche Kamerabewegungen von Punkt zu Punkt hinbekommt.

      PAWN-Quellcode

      1. #include <a_samp>
      2. enum COORD {
      3. Float:coord_x,
      4. Float:coord_y,
      5. Float:coord_z
      6. }
      7. enum CAMMOVEMENT {
      8. steps,
      9. currentstep,
      10. Float:amount_x,
      11. Float:amount_y,
      12. Float:amount_z,
      13. Float:look_x,
      14. Float:look_y,
      15. Float:look_z,
      16. CameraMoveTimerID
      17. }
      18. forward Float:GetDistanceBetweenPoints(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2);
      19. forward CameraMoveTimer(playerid);
      20. new Float:gPlayerCameraPos[MAX_PLAYERS][COORD];
      21. new Float:gPlayerCamMovement[MAX_PLAYERS][CAMMOVEMENT];
      22. main() {
      23. }
      24. //-------------------------------------------------------------------
      25. public OnGameModeInit() {
      26. AddPlayerClass(0,2040.2158,1355.9232,10.6719,267.2625,0,0,0,0,0,0);
      27. return 1;
      28. }
      29. //-------------------------------------------------------------------
      30. public OnPlayerSpawn(playerid) {
      31. SetPlayerCameraPosEx(playerid, 2052.1799,1384.5262,10.6719,2040.2158,1355.9232,10.6719);
      32. MoveCamera(playerid, 2053.9204,1348.7130,18.6719, 2040.2158,1355.9232,10.6719, 0.2);
      33. return 1;
      34. }
      35. //-------------------------------------------------------------------
      36. stock MoveCamera(playerid, Float:dest_x, Float:dest_y, Float:dest_z, Float:lookat_x, Float:lookat_y, Float:lookat_z, Float:speed) {
      37. new Float:distance;
      38. distance = GetDistanceBetweenPoints(gPlayerCameraPos[playerid][coord_x],
      39. gPlayerCameraPos[playerid][coord_y],
      40. gPlayerCameraPos[playerid][coord_z],
      41. dest_x,
      42. dest_y,
      43. dest_z);
      44. gPlayerCamMovement[playerid][steps] = floatround(distance / speed);
      45. gPlayerCamMovement[playerid][currentstep] = 0;
      46. gPlayerCamMovement[playerid][amount_x] = (dest_x - gPlayerCameraPos[playerid][coord_x]) / gPlayerCamMovement[playerid][steps];
      47. gPlayerCamMovement[playerid][amount_y] = (dest_y - gPlayerCameraPos[playerid][coord_y]) / gPlayerCamMovement[playerid][steps];
      48. gPlayerCamMovement[playerid][amount_z] = (dest_z - gPlayerCameraPos[playerid][coord_z]) / gPlayerCamMovement[playerid][steps];
      49. gPlayerCamMovement[playerid][look_x] = lookat_x;
      50. gPlayerCamMovement[playerid][look_y] = lookat_y;
      51. gPlayerCamMovement[playerid][look_z] = lookat_z;
      52. gPlayerCamMovement[playerid][CameraMoveTimerID] = SetTimerEx("CameraMoveTimer", 50, 1, "i", playerid);
      53. return 1;
      54. }
      55. //-------------------------------------------------------------------
      56. stock SetPlayerCameraPosEx(playerid, Float:cam_x, Float:cam_y, Float:cam_z, Float:lookat_x, Float:lookat_y, Float:lookat_z) {
      57. SetPlayerCameraPos(playerid, cam_x, cam_y, cam_z);
      58. SetPlayerCameraLookAt(playerid, lookat_x, lookat_y, lookat_z);
      59. gPlayerCameraPos[playerid][coord_x] = cam_x;
      60. gPlayerCameraPos[playerid][coord_y] = cam_y;
      61. gPlayerCameraPos[playerid][coord_z] = cam_z;
      62. return 1;
      63. }
      64. //-------------------------------------------------------------------
      65. stock Float:GetDistanceBetweenPoints(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2) {
      66. return floatsqroot(floatpower(x1 - x2, 2) + floatpower(y1 - y2, 2) + floatpower(z1 - z2, 2));
      67. }
      68. //-------------------------------------------------------------------
      69. public CameraMoveTimer(playerid) {
      70. if (gPlayerCamMovement[playerid][currentstep] <= gPlayerCamMovement[playerid][steps] - 1) {
      71. gPlayerCameraPos[playerid][coord_x] = gPlayerCameraPos[playerid][coord_x] + gPlayerCamMovement[playerid][amount_x];
      72. gPlayerCameraPos[playerid][coord_y] = gPlayerCameraPos[playerid][coord_y] + gPlayerCamMovement[playerid][amount_y];
      73. gPlayerCameraPos[playerid][coord_z] = gPlayerCameraPos[playerid][coord_z] + gPlayerCamMovement[playerid][amount_z];
      74. SetPlayerCameraPos(playerid, gPlayerCameraPos[playerid][coord_x], gPlayerCameraPos[playerid][coord_y], gPlayerCameraPos[playerid][coord_z]);
      75. SetPlayerCameraLookAt(playerid, gPlayerCamMovement[playerid][look_x], gPlayerCamMovement[playerid][look_y], gPlayerCamMovement[playerid][look_z]);
      76. gPlayerCamMovement[playerid][currentstep]++;
      77. } else {
      78. KillTimer(gPlayerCamMovement[playerid][CameraMoveTimerID]);
      79. }
      80. return 1;
      81. }
      Alles anzeigen


      Um es in einen Gamemmode zu verwenden ist folgendes zu tun:
      • Zeilen 3 bis 25 oben in den Gamemode, unter den #include Anweisungen einfügen
      • Zeilen 48 bis 108 an das Ende vom Gamemode einfügen
      Dann könnt ihr folgende Funktionen benutzen:

      SetPlayerCameraPosEx
      stock SetPlayerCameraPosEx(playerid, Float:cam_x, Float:cam_y, Float:cam_z, Float:lookat_x, Float:lookat_y, Float:lookat_z)

      Eine Kombination von SetPlayerCameraPos() und SetPlayerCameraLookat(). Diese Funktion muss vor MoveCamera() aufgerufen werden, da hier die Kameraposition in einer Variable gespeichert wird, weiln diese später benötigt wird (es gibt keine GetCameraPos Funktion)

      MoveCamera
      stock MoveCamera(playerid, Float:dest_x, Float:dest_y, Float:dest_z, Float:lookat_x, Float:lookat_y, Float:lookat_z, Float:speed)

      Initialisiert einige Variablen und richtet einen Timer ein, der die Kamera letztendlich bewegt. Die lookat_* Parameter werden verwendet um die Kamera auf eine Koordinate zu richten, während diese bewegt wird.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Goldkiller ()

    • /AFK und /LOCK Command.

      Also, mit dem Command kannst du in den /afk Modus gehen, oder dein Auto /abschliessen.

      Unter public OnVehicleSpawn(vehicleid) Dass einfügen:

      PAWN-Quellcode

      1. SetVehicleParamsForPlayer(vehicleid,0,0); // Damit Spawnt das Fahrzeug wieder offen für alle.


      Unter public OnPlayerCommand(playerid, cmdtext []) dass einfügen:

      PAWN-Quellcode

      1. if (strcmp(cmdtext, "/zu", true)==0 || strcmp(cmdtext, "/lock", true) == 0) //
      2. {
      3. if(IsPlayerInAnyVehicle(playerid))
      4. {
      5. new Statu ;
      6. Statu=GetPlayerState(playerid);
      7. new vehicleid = GetPlayerVehicleID(playerid);
      8. if(Statu!=PLAYER_STATE_DRIVER)
      9. {
      10. SendClientMessage(playerid,COLOR_GREY,"Nur der Fahrer kann abschliessen!");
      11. return 1;
      12. }
      13. new i;
      14. for(i=0;i<MAX_PLAYERS;i++)
      15. {
      16. if(i != playerid)
      17. {
      18. SetVehicleParamsForPlayer(vehicleid,i, 0, 1);
      19. }
      20. }
      21. new Float:X;
      22. new Float:Y;
      23. new Float:Z;
      24. SendClientMessage(playerid, COLOR_GREEN, "Fahrzeug abgeschlossen");
      25. GetPlayerPos(playerid,X,Y,Z);
      26. PlayerPlaySound(playerid,1056,X,Y,Z);
      27. }
      28. else
      29. {
      30. SendClientMessage(playerid, COLOR_RED, "Du kannst nur in einem Auto ein Fahrzeug abschliessen!");
      31. }
      32. return 1;
      33. }
      34. if (strcmp(cmdtext, "/auf", true) == 0 || strcmp(cmdtext, "/unlock", true) == 0)
      35. {
      36. if(IsPlayerInAnyVehicle(playerid))
      37. {
      38. new Status ;
      39. Status = GetPlayerState(playerid);
      40. new vehicleid = GetPlayerVehicleID(playerid);
      41. if(Status!=PLAYER_STATE_DRIVER)
      42. {
      43. SendClientMessage(playerid,COLOR_RED,"Nur der Fahrer hat den Schluessel zum aufschliessen!");
      44. return 1;
      45. }
      46. new i;
      47. for(i=0;i<MAX_PLAYERS;i++)
      48. {
      49. SetVehicleParamsForPlayer(vehicleid,i, 0, 0);
      50. }
      51. SendClientMessage(playerid, COLOR_GREEN, "Fahrzeug aufgeschlossen");
      52. new Float:X;
      53. new Float:Y;
      54. new Float:Z;
      55. GetPlayerPos(playerid,X,Y,Z);
      56. PlayerPlaySound(playerid,1057,X,Y,Z);
      57. }
      58. else
      59. {
      60. SendClientMessage(playerid, COLOR_GREY, "Du bist in keinem Fahrzeug!");
      61. }
      62. return 1;
      63. }
      Alles anzeigen
      Mit /auf und /unlock kannste aufschliessen mit /zu und /lock abschliessen.

      So: Afk Command:
      Unter public OnPlayerCommandText(playerid, cmdtext []) dass einfügen:

      PAWN-Quellcode

      1. if(strcmp(cmdtext, "/afk", true) == 0) {
      2. new str[256], pname[256]; GetPlayerName(playerid, pname, 256);
      3. format(str, 256, "*%s ist afk!", pname, cmdtext[4]);
      4. SendClientMessage(playerid, COLOR_RED, "Um dich Zurück zumelden, tippe /back");
      5. SendClientMessageToAll(0x4682B4AA, str);
      6. TogglePlayerControllable(playerid, 0);
      7. return 1;
      8. }
      9. if(strcmp(cmdtext, "/back", true) == 0) {
      10. new str[256], pname[256]; GetPlayerName(playerid, pname, 256);
      11. format(str, 256, "*%s ist von afk zurueck!", pname, cmdtext[4]);
      12. SendClientMessageToAll(0x4682B4AA, str);
      13. GameTextForPlayer(playerid,"~w~willkommen zurueck. :)!",2500,3);
      14. TogglePlayerControllable(playerid, 1);
      15. return 1;
      16. }
      Alles anzeigen
      Mit /afk kannst du dich abmelden, mit /back zurück.

      Wenn ihr die Farben nocht nicht habt, einfach ändern oder Definieren.

      #define COLOR_FARBENNAME Farben Hexcode am Anfang eurer Gamemode.

      Bei Fehlern, bitte Posten, anders kann ich es nicht Korrigieren. ;)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von ~Driver~ ()

    • Wechselnde Uhrzeit

      Ein einfaches Script welches die InGame Zeit automatisch wechselt.
      Find ich persöhnlich besser als dass es immer 16Uhr Ingame ist oder ein Admin die Zeit wechselt :P .

      Über Main()

      PAWN-Quellcode

      1. new Time=12;
      2. forward TimeUpdate();



      public OnGameModeInit()

      PAWN-Quellcode

      1. SetTimer("TimeUpdate",1000*60,1); //60Sekunden
      2. SetWorldTime(Time); //Ja 'Time'.


      PAWN-Quellcode

      1. public TimeUpdate() {
      2. Time++;
      3. SetWorldTime(Time);
      4. if(Time>=24) {
      5. Time=0;
      6. }
      7. return 1;
      8. }
    • PAWN-Quellcode

      1. stock PlayerName(playerid)
      2. {
      3. new name[MAX_PLAYER_NAME];
      4. GetPlayerName(playerid, name, MAX_PLAYER_NAME);
      5. return name;
      6. }

      ---------------

      PAWN-Quellcode

      1. stock IsPlayerNameAvaiable(const string[])
      2. {
      3. for(new i=0;i<MAX_PLAYERS;i++)
      4. {
      5. if(IsPlayerConnected(i))
      6. {
      7. new tmp[256];
      8. strmid(tmp, PlayerName(i), 0, strlen(string), sizeof(tmp));
      9. if(strcmp(string, tmp, true, strlen(string)+1)==0) return i;
      10. }
      11. }
      12. return -1;
      13. }
      Alles anzeigen


      ----------------------

      PAWN-Quellcode

      1. stock IsNumeric(const string[])
      2. {
      3. for (new i = 0, j = strlen(string); i < j; i++)
      4. {
      5. if (string[i] > '9' || string[i] < '0') return -1;
      6. }
      7. return 0;
      8. }


      klein aber fein

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MadniX ()

    • eine meiner ersten funktionen :D :
      PlaySoundForAll(soundid);

      PAWN-Quellcode

      1. PlaySoundForAll(soundid)
      2. {
      3. for(new i=0; i<MAX_PLAYERS; i++)
      4. {
      5. if (IsPlayerConnected(i))
      6. {
      7. new Float:x,Float:y,Float:z;
      8. GetPlayerPos(i, x, y, z);
      9. PlayerPlaySound(i, soundid, x, y, z);
      10. }
      11. }
      12. }
      Alles anzeigen


      nicht sehr ausgereift, aber meine zwecke hats erfüllt:
      array_search(needle, haystack[], size);
      (sucht im array haystack der größe size nach dem integerwert needle und gibt den indexwert zurück)

      PAWN-Quellcode

      1. stock array_search(needle, haystack[], size)
      2. {
      3. new result = -1;
      4. for(new i=0; i<size; i++) {
      5. if( needle == haystack[i] ) result = i;
      6. }
      7. return result;
      8. }


      meine neuste kreation xD :
      RemovePlayerWeapon(playerid, weaponid);
      (dank geht hier an mabako, an dessen DropWeapon script ich mich orientiert hatte)

      PAWN-Quellcode

      1. RemovePlayerWeapon(playerid, weaponid)
      2. {
      3. new weaponslots[14][2];
      4. for(new i=0; i<13; i++) {
      5. GetPlayerWeaponData(playerid, i, weaponslots[i][0], weaponslots[i][1]);
      6. }
      7. ResetPlayerWeapons(playerid);
      8. for(new i=0; i<13; i++) {
      9. if( weaponslots[i][0] != 0 && weaponslots[i][0] != weaponid) GivePlayerWeapon(playerid, weaponslots[i][0], weaponslots[i][1] );
      10. }
      11. }
      Alles anzeigen


      das wars erstmal....

      MfG Eightball
    • Nützliches (?):

      Als ich bemerkte, dass memcpy eigenartige Vorstellungen von der Zellengröße hat, habe ich mir schnell eine eigene Funktion gemacht.
      strcpy: Kopiert source nach dest. Falls dest nicht groß genug ist, wird der überstehende Rest abgeschnitten.

      PAWN-Quellcode

      1. stock strcpy(dest[], const source[], maxlength=sizeof dest)
      2. { strmid(dest, source, 0, strlen(source), maxlength); }

      ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

      Da mir die explode-Funktion aus PHP sehr gefehlt hat, habe ich sie nachgemacht. Es gibt noch eine andere im offiziellen SA-MP Forum, die auch Anführungszeichen unterstützt und darin eingeschlossene Strings als ein Wort betrachtet, damit kann meine Funktion leider nicht dienen. Dafür ist bei meiner die Größe des Arrays sowie auch die Länge der einzelnen Teile unabhängig wählbar. (Damals hatte ich noch kein strcpy, daher ist alles noch mit strmid gemacht)
      explode: Teilt ensemble an den Stellen, an denen separator vorkommt und returnt alle Teile in pieces.

      PAWN-Quellcode

      1. stock explode(const separator[], const ensemble[], pieces[][], piecesize=sizeof pieces[])
      2. {
      3. new i, p1, p2;
      4. new addend;
      5. p1 = strfind(ensemble, separator);
      6. p2 = strfind(ensemble, separator, false, p1+1);
      7. addend = strlen(separator);
      8. if(p1 == -1)
      9. { strmid(pieces[0], ensemble, 0, piecesize, piecesize); }
      10. else
      11. {
      12. strmid(pieces[0], ensemble, 0, p1, piecesize);
      13. for(i=1; p2>-1; i++, p1=p2, p2=strfind(ensemble, separator, false, p1+1))
      14. { strmid(pieces[i], ensemble, p1+addend, p2, piecesize); }
      15. strmid(pieces[i], ensemble, p1+addend, strlen(ensemble), piecesize);
      16. }
      17. }
      Alles anzeigen

      ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

      Nicht lange nach explode brauchte ich auch das Gegenstück dazu. Hier ist leider ein Bytemaximum vorhanden, das man ja aber einfach erweitern kann.
      implode: Nimmt die Teile aus pieces und setzt sie - jeweils getrennt durch separator - zu einem String zusammen. (Umkehrung von explode)

      PAWN-Quellcode

      1. stock implode(const separator[], pieces[][], piececount=sizeof pieces)
      2. {
      3. new i;
      4. new ensemble[256] = "";
      5. for(i=0; i<piececount; i++)
      6. {
      7. if(!strlen(pieces[i]))
      8. { continue; }
      9. format(ensemble, sizeof(ensemble), "%s%s%s", ensemble, pieces[i], separator);
      10. }
      11. strdel(ensemble, strlen(ensemble)-strlen(separator), strlen(ensemble));
      12. return ensemble;
      13. }
      Alles anzeigen

      ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

      So, das war's für's Erste. Vielleicht veröffentliche ich irgendwann noch ein paar andere Funktionen.
      Ich kann nicht garantieren, dass alle Funktionen in allen Fällen einwandfrei funktionieren - natürlich sollten sie, aber Fehler kann es immer mal geben. Würde mich freuen, wenn ihr mir Probleme oder Fehler berichtet, falls ihr welche findet.
    • Codeschnipsel

      Hey hättet ihr vielleicht noch mehr "Schnipsel" ? ^^
      Wollte ein Reallife Server machen und bräuchte noch viele viele Sachen... bin neu und ich habe keine Ahnung wie das geht! ;)
      Postet mal was was man fürn Reallife Server braucht z.B. den Tankscript oder so... schreibt aber auch dazu wo ich das einfügen soll! ;)
      Wäre auch gut wenn ihr mir sagt wie ich welche Skins rcon passwort schütze... und Driver kannst du mir mal sagen wie und wo ich das im script einfügen soll? Ich habe das da eingefügt aber dann kommen fehlermeldungen wenn ich F5 drücke!
      Freue mich auf eure postings! :)

      Mit freundlichen Grüßen
      MGW1989

    • Vehicels auf und zuschliessen

      Hey Driver du hast oben ja nen code zum auf und zuschliessen von vehicles reingestellt...
      wenn ich das ins script einfüge kommt die meldung "number of arguments does not match definition"... das wird zu "SetVehicleParamsForPlayer(vehicleid,0,0); // Damit Spawnt das Fahrzeug wieder offen für alle." gesagt!

      Was mus ich tun damit das nicht kommt?
    • Mit diesen Code könnt ihr z.B alle heilen(Müsste aber dann als Admin Command erstellt werden)

      PAWN-Quellcode

      1. public Healall(playerid,Float:health)
      2. {
      3. for (new i = 0, j = MAX_PLAYERS; i < j; i ++)
      4. {
      5. if (IsPlayerConnected(i)) SetPlayerHealth(playerid,Float:health);
      6. }
      7. }


      Ihr müsst dann in euer CMD das einfügen:

      PAWN-Quellcode

      1. Healall(playerid,100);//könnt auch 200 machen 100.0 were sicherer
    • hallo, ich zeige euch mal wie das mit dem CP-System geht!

      Quellcode

      1. #define CP_0 0
      2. #define CP_1 1
      3. #define MAX_POINTS 2
      4. new Float:checkCoords[MAX_POINTS][4] = {
      5. {x-min, y-min, x-max, y-max }, //CP0
      6. {x-min, y-min, x-max, y-max } //CP1
      7. };
      8. new Float:checkpoints[MAX_POINTS][3] = {
      9. {x,y,z}, //CP_0
      10. {x,y,z} //CP_1
      11. };
      12. new checkpointType[MAX_POINTS] = {
      13. CP_0,
      14. CP_1
      15. }; //das alles OBERHALB von main()
      16. SetTimer("checkpointUpdate", 1000, 1); //bei OnGameModeInit
      17. public isPlayerInArea(playerID, Float:data[4]) {
      18. new Float:X, Float:Y, Float:Z;
      19. GetPlayerPos(playerID, X, Y, Z);
      20. if(X >= data[0] && X <= data[2] && Y >= data[1] && Y <= data[3]) {
      21. return 1;
      22. }
      23. return 0;
      24. }
      25. public checkpointUpdate()
      26. {
      27. for(new i=0; i<MAX_PLAYERS; i++)
      28. {
      29. if(IsPlayerConnected(i)) {
      30. for(new j=0; j < MAX_POINTS; j++) {
      31. if(isPlayerInArea(i, checkCoords[j])) {
      32. if(playerCheckpoint[i]!=j) {
      33. DisablePlayerCheckpoint(i);
      34. SetPlayerCheckpoint(i, checkpoints[j][0],checkpoints[j][1],checkpoints[j][2],2);
      35. playerCheckpoint[i] = j;
      36. }
      37. } else {
      38. if(playerCheckpoint[i]==j) {
      39. DisablePlayerCheckpoint(i);
      40. playerCheckpoint[i] = 999;
      41. }
      42. }
      43. }
      44. }
      45. }
      46. }
      47. public OnPlayerEnterCheckpoint(playerid)
      48. {
      49. switch(getCheckpointType(playerid))
      50. {
      51. case CP_0: {
      52. SendClientMessage(playerid,0xFFFFFFAA, "Deine Nachricht.");
      53. }
      54. case CP_1: {
      55. SendClientMessage(playerid, 0xFFFFFFAA, "Deine Nachricht!");
      56. }
      57. }
      Alles anzeigen


      Wer fragen hat, der frage

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Tobsi ()

    • Dieser Code ist auch nicht schlecht:
      Das fügt ihr in OnPlayerCommandText ein.

      PAWN-Quellcode

      1. if(strcmp(cmd, "/gun13", true) == 0) {
      2. IsPlayerAdmin(playerid)){
      3. //Hier euer Command variable
      4. }
      5. else
      6. {
      7. SendClientMessage(playerid,COLOR_RED,"Der Text was stehen soll,der wo nicht Admin ist");
      8. }
      9. return 1;
      10. }


      Und das hier über main()

      PAWN-Quellcode

      1. #define COLOR_RED 0xAA3333AA


      Damit könnt ihr Command erstellen die nur für Admins sind!
      Z.B.
      Zum Godmode machen oder sonstige sachen :)

      MfG


      Michael
    • Vehicle Chat


      PAWN-Quellcode

      1. if(strcmp(cmd, "/vc", true) == 0)
      2. {
      3. new string[256], sendername[24];
      4. GetPlayerName(playerid, sendername, sizeof(sendername));
      5. new length = strlen(cmdtext);
      6. while ((idx < length) && (cmdtext[idx] <= ' '))
      7. {
      8. idx++;
      9. }
      10. new offset = idx;
      11. new result[64];
      12. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
      13. {
      14. result[idx - offset] = cmdtext[idx];
      15. idx++;
      16. }
      17. result[idx - offset] = EOS;
      18. if(!strlen(result)) return SendClientMessage(playerid, COLOR_RED, "KORREKTUR: /vc [text]");
      19. if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "Du musst in einem Fahrzeug sein!");
      20. format(string, sizeof(string), "(( Vehicle Chat(%s): %s ))", sendername, result);
      21. for(new i = 0; i < MAX_PLAYERS; i ++)
      22. {
      23. if(IsPlayerConnected(i))
      24. {
      25. if(IsPlayerInVehicle(i, GetPlayerVehicleID(playerid)))
      26. {
      27. SendClientMessage(i,COLOR_BLUE, string);
      28. }
      29. }
      30. }
      31. return 1;
      32. }
      Alles anzeigen
      [GER] Bedman's Fun Server
      by You-Hoster.de
      IP: 78.111.64.126:2004

      VERREIST BIS ZUM ENDE DER FERIEN!!
    • Michael schrieb:


      PAWN-Quellcode

      1. if(strcmp(cmd, "/gun13", true) == 0) {
      2. IsPlayerAdmin(playerid)){
      3. //Hier euer Command variable
      4. }
      5. else
      6. {
      7. SendClientMessage(playerid,COLOR_RED,"Der Text was stehen soll,der wo nicht Admin ist");
      8. }
      9. return 1;
      10. }




      Bei mir kommen da einige Errors...wenn ich das so umstell, dass es meiner meinung nach stimmt, kommt: "...(269) : error 029: invalid expression, assumed zero".

      PAWN-Quellcode

      1. if (strcmp("/meinhaus", cmdtext, true) == 0)
      2. {
      3. IsPlayerAdmin(playerid);
      4. {
      5. SetPlayerPos(playerid,1248.9946,-806.2303,84.1406);
      6. }
      7. else
      8. {
      9. SendClientMessage(playerid, rot, "Du bist kein Admin!");
      10. }
      11. return 1;
      12. }
      Alles anzeigen


      Der hat irgwie ein Problem mit dem "else"



      EDIT: hat sich geklärt...ich hatte ein return zu viel drin

      Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von M4rciii ()