Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.28 KB | None | 0 0
  1.  
  2. //oben
  3.  
  4. #define MAX_DEFINED_AUFTRAGE 128
  5.  
  6. new DialogTemp[MAX_PLAYERS][50];
  7. new DialogTempIndex[MAX_PLAYERS];
  8.  
  9.  
  10. enum AuftragSystem
  11. {
  12. auftragid, // standart = -1
  13. a_autor[MAX_PLAYER_NAME+1],
  14. a_description[30], // 31 max
  15. a_auftragtext[256], // im Dialog
  16. a_weiterleitung, // referezenz, Dialog, Positon, ETC
  17. Float:a_PosX,
  18. Float:a_PosY,
  19. Float:a_PosZ,
  20. a_position // wird eine Positon benötigt ja / nein
  21.  
  22. }
  23.  
  24. new Auftrag[MAX_DEFINED_AUFTRAGE][AuftragSystem];
  25.  
  26.  
  27. OnGameModeInit()
  28. {
  29. for(new i=0; i<sizeof(Auftrag); i++)
  30. {
  31. Auftrag[i][auftragid]=-1;
  32. }
  33. }
  34.  
  35. stock AddAuftrag(titel[],autor[],auftragtext[],position,Float:AuftragX,Float:AuftragY,Float:AuftragZ) // && listauftrage
  36. {
  37. new i = FindFreeAuftragID();
  38. if(i == -1) return 0;
  39. format(Auftrag[i][a_autor],MAX_PLAYER_NAME+1,autor);
  40. format(Auftrag[i][a_description],30,titel);
  41. format(Auftrag[i][a_auftragtext],256,auftragtext);
  42. Auftrag[i][auftragid] = i;
  43. Auftrag[i][a_position] = position;
  44.  
  45. new subString[148];
  46. format(subString, sizeof(subString), "Auftrag erstellt, ID: %d, Länge: %d, Text: %s ",Auftrag[i][auftragid],strlen(Auftrag[i][a_description]),Auftrag[i][a_description]);
  47. SendClientMessageToAll(-1,subString);
  48. if(position)
  49. {
  50. Auftrag[i][a_PosX] = AuftragX;
  51. Auftrag[i][a_PosY] = AuftragY;
  52. Auftrag[i][a_PosZ] = AuftragZ;
  53. }
  54. AddMenuItem(teleportmenu, 0,Auftrag[i][a_description]);
  55. return 1;
  56. //ListAuftrage();
  57. }//mitgettime
  58.  
  59. ocmd:auftragadden(playerid,params[])
  60. {
  61. new titel[30],text[100],koordinaten;
  62. if(sscanf(params, "ssd", titel,text,koordinaten)) return SCM(playerid, COLOR_GREY, "/auftragadden [titel] [Beschreibung::MAX__100] [Koordinaten? 0 / 1]");
  63. // AddAuftrag("Farmer","DrWho","Ich suche einen Farmer.",0,0,0,0); // Legendär
  64. AddAuftrag(titel,GetName(playerid),text,koordinaten,0,0,0);
  65. return 1;
  66. }
  67. ocmd:auftrage(playerid,params[])
  68. {
  69. new subString[128],count;
  70. DialogTempIndex[playerid] = 0;
  71. for(new i=0; i<sizeof(Auftrag); i++)
  72. {
  73. if(Auftrag[i][auftragid] != -1)
  74. {
  75. //SCM(playerid,-1,"Auftrag ausgeführt!");
  76. /* format(subString, sizeof(subString), "ID: %d, Länge: %d, Text: %s ",Auftrag[i][auftragid],strlen(Auftrag[i][a_description]),Auftrag[i][a_description]);
  77. SCM(playerid,-1,subString);*/
  78. count++;
  79. DialogTemp[playerid][DialogTempIndex[playerid]++] = i;
  80. }
  81. }
  82. if(count == 0) return SCM(playerid,COOLRED,"Es konnte kein Auftrag gefunden werden!");
  83. ShowMenuForPlayer(teleportmenu,playerid);
  84. return 1;
  85. }
  86.  
  87.  
  88.  
  89. //remove auftrag? or not1
  90. stock FindFreeAuftragID()
  91. {
  92. for(new i=0; i<sizeof(Auftrag); i++)
  93. {
  94. if(Auftrag[i][auftragid]==-1) return i;
  95. }
  96. return -1;
  97. }
  98.  
  99.  
  100. public OnPlayerSelectedMenuRow(playerid, row)
  101. {
  102. TogglePlayerControllable(playerid,true);
  103. new Menu:CurrentMenu = GetPlayerMenu(playerid);
  104. if(CurrentMenu == teleportmenu)
  105. {
  106. new i = DialogTemp[playerid][row];
  107. new string[84],string2[312]; // "Aufrag von " + string wie in C
  108. format(string,sizeof(string),"Auftrag von{B40404} %s",Auftrag[i][a_autor]);
  109.  
  110. format(string2,sizeof(string2),"%s %d",Auftrag[i][a_auftragtext],Auftrag[i][auftragid]);
  111. ShowPlayerDialog(playerid, DIALOG_MENU_ROW, DIALOG_STYLE_MSGBOX, string, string2, "Contact", "Go Back");
  112. }
  113. return 1;
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement