Advertisement
gtarlRobbe

Testgamemode

Mar 28th, 2013
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 9.44 KB | None | 0 0
  1. #include <a_samp>
  2. #include <dini>
  3. #include <Dudb>
  4. #include <ocmd>
  5. #include <sscanf>
  6. #pragma tabsize 0
  7.  
  8. #define rot 0xAA3333AA
  9.  
  10. #pragma unused ret_memcpy
  11. #pragma unused pInfo
  12. enum Info
  13. {
  14. passwort[128],
  15. skin
  16. }
  17.  
  18. new pInfo[MAX_PLAYERS][Info];
  19. new bool:loggedin[MAX_PLAYERS];
  20. new spieler[MAX_PLAYER_NAME];
  21. main()
  22. {
  23.     print("\n----------------------------------");
  24.     print(" Testgamemode by Robbe");
  25.     print("----------------------------------\n");
  26. }
  27.  
  28. public OnGameModeInit()
  29. {
  30.     // Don't use these lines if it's a filterscript
  31.     SetGameModeText("Testgamemode by Robbe");
  32. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  33.     return 1;
  34. }
  35.  
  36. public OnGameModeExit()
  37. {
  38.     return 1;
  39. }
  40.  
  41. public OnPlayerRequestClass(playerid, classid)
  42. {
  43.     return 1;
  44. }
  45.  
  46. public OnPlayerConnect(playerid)
  47. {
  48. new name[128], save[128]; // Dies machen wir um den Namen vom Spieler aufzuschreiben || Hiermit können wir sagen, dass etwas gespeichert werden soll
  49. GetPlayerName(playerid,name,sizeof(name)); // Dies sagt, er soll( vom Spieler, den namen, in der größe name aufschreiben)
  50. format(save,sizeof(save),"/Spieler/%s.ini",name); // Hier wird gechekt, wo der Spieler gespeichert ist, bzw. wo ein Spieler angelegt werden soll.
  51. if(dini_Exists(save)) // Hier wird geprüft, ob die Datei des Spielers schon existiert.
  52. { // Wenn ja, sende einen Text und lade den Skin und das Geld
  53. SendClientMessage(playerid, 0x33CCFFAA, "Willkommen bei SA:MP 0.3 Server");
  54. SendClientMessage(playerid, 0xFFFFFFAA, "Dein Account wurde wiedererkannt.");
  55. SendClientMessage(playerid, 0xFFFFFFAA, "Du kannst dich jetzt einloggen.");
  56. SendClientMessage(playerid, 0xFFFFFFAA, "Benutze dazu /login [passwort].");
  57. GivePlayerMoney(playerid,dini_Int(save,"Geld")); // Hier wird das geld dem Spieler gegeben, was er vorher hatte
  58. SetPlayerSkin(playerid,dini_Int(save,"Skin")); // Hier wird der Skin des Spielers geladen
  59. }
  60. else
  61. {
  62. if(!dini_Exists(save)) // Wenn kein Spieler mit dem Namen existiert
  63. { //Sende einen Text
  64. SendClientMessage(playerid, 0x33CCFFAA, "Willkommen auf dem Testserver!");
  65. SendClientMessage(playerid, 0xFFFFFFAA, "Du hast noch keinen Account.");
  66. SendClientMessage(playerid, 0xFFFFFFAA, "Du kannst dich jetzt registrieren.");
  67. SendClientMessage(playerid, 0xFFFFFFAA, "Benutze dazu /register [passwort].");
  68. }
  69. }
  70. return 1;
  71. }
  72.  
  73. public OnPlayerDisconnect(playerid, reason)
  74. {
  75. new Float:x,Float:y,Float:z;
  76. GetPlayerPos(playerid,x,y,z);
  77. new name[128], save[128];// Gleiche
  78. GetPlayerName(playerid,name,sizeof(name)); // wie
  79. format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
  80. if(dini_Exists(save)) // steht
  81. {
  82. dini_IntSet(save,"Geld",GetPlayerMoney(playerid)); // speichert das aktuelle Geld, was der Spieler zum schluss hatte
  83. dini_IntSet(save,"Skin",GetPlayerSkin(playerid));
  84. dini_FloatSet(save,"PosX", x);
  85. dini_FloatSet(save,"PosY", y);
  86. dini_FloatSet(save,"PosZ", z);}
  87. return 1;
  88. }
  89.  
  90. public OnPlayerSpawn(playerid)
  91. {
  92. new name[128], save[128];// Gleiche
  93. GetPlayerName(playerid,name,sizeof(name)); // wie
  94. format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
  95. if(loggedin[playerid] == false) //Wenn er nicht eingeloggt ist
  96. {
  97. SendClientMessage(playerid, 0xAA3333AA, "Du musst dich Einloggen bevor du spawnst!");
  98. Kick(playerid); // Kicke den Spieler
  99. }
  100. SetPlayerSkin(playerid,dini_Int(save,"Skin")); //lade und setze den gespeicherten Skin
  101. SetPlayerPos(playerid, dini_Float(save,"PosX"), dini_Float(save,"PosY"), dini_Float(save,"PosZ"));
  102.  
  103. return 1;
  104. }
  105.  
  106. public OnPlayerDeath(playerid, killerid, reason)
  107. {
  108.     return 1;
  109. }
  110.  
  111. public OnVehicleSpawn(vehicleid)
  112. {
  113.     return 1;
  114. }
  115.  
  116. public OnVehicleDeath(vehicleid, killerid)
  117. {
  118.     return 1;
  119. }
  120.  
  121. public OnPlayerText(playerid, text[])
  122. {
  123.     return 1;
  124. }
  125.  
  126. public OnPlayerCommandText(playerid, cmdtext[])
  127. {
  128.     if(strcmp(strget(cmdtext,0), "/register", true) == 0)
  129. {
  130. new save[40]; // Erstelle einen neuen String "save", wobei 40 Wörter verwendet werden können.
  131. GetPlayerName(playerid,spieler,sizeof(spieler));
  132. format(save, sizeof(save),"Spieler/%s.ini",spieler); //Speicherort
  133. if(!dini_Exists(save)) // wenn der Spieler sich regestriert und es noch keine .ini Datei mit seinem Namen gibt
  134. {
  135. dini_Create(save); // Erstelle eine Neue .ini Datei
  136. dini_IntSet(save,"passwort",udb_hash(strget(cmdtext,1))); // Setze in die .ini Datei(save,"dass passwort", welches er eingegeben hat) || das udb_hash verschlüsselt das Passwort in der .ini. Dazu benötigen wir die oben angegebene Include DUBD.
  137. SendClientMessage(playerid, 0x33AA33AA, "***Dein Account wurde erfolgreich registriert***");
  138. SendClientMessage(playerid, 0x33AA33AA, "***Nutze /login [Passwort] um dich einzuloggen***");
  139. }
  140. else
  141. {
  142. if(dini_Exists(save)) // Wenn beim regestrieren die Datei schon besteht
  143. {
  144. SendClientMessage(playerid, 0xAA3333AA, "Der Account ist bereits registriert");
  145. }
  146. }
  147. return 1;
  148. }
  149.     if(strcmp(strget(cmdtext,0), "/login", true) == 0)
  150. {
  151. new save[40], s2[256]; //gleiche wie oben
  152. GetPlayerName(playerid,spieler,sizeof(spieler));
  153. format(save,sizeof(save),"Spieler/%s.ini",spieler);
  154. if(dini_Exists(save)) // wenn Datei existiert
  155. {
  156. s2=dini_Get(save,"passwort"); // lade das Passwort
  157. if(strval(s2)==udb_hash(strget(cmdtext,1))) // wenn die Eingabe nach /login mit dem Passwort von der registration übereinstimmt
  158. {
  159. loggedin[playerid] = true; //sage dem Server, dass der Spieler eingeloggt ist.
  160. SendClientMessage(playerid, 0x33CCFFAA, "***Du hast dich erfolgreich eingeloggt***");
  161. SpawnPlayer(playerid);
  162. SetPlayerPos(playerid, dini_Float(save,"PosX"), dini_Float(save,"PosY"), dini_Float(save,"PosZ"));
  163.  
  164. }
  165. else // wenn das passwort nicht stimmt
  166. {
  167. SendClientMessage(playerid, 0xAA3333AA, "Passwort Falsch!");
  168. }
  169. }
  170. return 1;
  171. }
  172. if(strcmp("/dveh",cmdtext,true,10) ==0)
  173.     {
  174.         new vehicleid = GetPlayerVehicleID(playerid);
  175. DestroyVehicle(vehicleid);
  176. return 1;
  177.     }
  178. if(strcmp("/hilfe",cmdtext,true,10) ==0)
  179.     {
  180.         SendClientMessage(playerid,rot,"/veh (Auto spawnen) - /dveh  (Auto entfernen) - /givegun(Waffe geben)");
  181.         return 1;
  182.     }
  183.  
  184. return 0;
  185. }
  186. ocmd:veh(playerid,params[])
  187. {
  188.         new Float:vehx,Float:vehy,Float:vehz;
  189.         new vehid,cc1,cc2,string[128];
  190.         if(sscanf(params,"iii",vehid,cc1,cc2))return SendClientMessage(playerid, rot,"Benutzung: /veh [Vehicle ID] [Farbe 1] [Farbe 2]");
  191.  
  192.  
  193. GetPlayerPos(playerid,vehx,vehy,vehz);
  194. new carid = CreateVehicle(vehid,vehx,vehy,vehz,3,cc1,cc2,-1);
  195.                 SetVehicleNumberPlate(carid,"~>Admin<~");
  196.                 PutPlayerInVehicle(playerid, carid, 0);
  197.                 format(string,sizeof(string),"[AdmCmd] Du hast ein Admincar gespawnt! (FahrzeugID :%d)",GetVehicleModel(GetPlayerVehicleID(playerid)));
  198.                 SendClientMessage(playerid,rot,string);
  199.                 return 1;
  200. }
  201. ocmd:givegun(playerid,params[])
  202. {
  203. new id,muni,waffe;
  204. if(sscanf(params,"uii",id,waffe,muni)) return SendClientMessage(playerid,rot,"Benutzung: /givegun [ID] [WID] [MUNI]");
  205. GivePlayerWeapon(id,waffe,muni);
  206. SendClientMessage(playerid,rot,"Waffe vergeben");
  207. return 1;
  208. }
  209. ocmd:setskin(playerid, params[]) {
  210.  new userID, skinID;
  211. if (sscanf(params, "ui",userID, skinID)) return SendClientMessage(playerid, rot, "/setskin <playerid> <skinid>");
  212. if(!IsPlayerConnected(skinID))return SendClientMessage(playerid,0x0000,"Der spieler ist nicht online");
  213.  SetPlayerSkin(userID, skinID);
  214.  return 1;
  215.  }
  216. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  217. {
  218.     return 1;
  219. }
  220.  
  221. public OnPlayerExitVehicle(playerid, vehicleid)
  222. {
  223.     return 1;
  224. }
  225.  
  226. public OnPlayerStateChange(playerid, newstate, oldstate)
  227. {
  228.     return 1;
  229. }
  230.  
  231. public OnPlayerEnterCheckpoint(playerid)
  232. {
  233.     return 1;
  234. }
  235.  
  236. public OnPlayerLeaveCheckpoint(playerid)
  237. {
  238.     return 1;
  239. }
  240.  
  241. public OnPlayerEnterRaceCheckpoint(playerid)
  242. {
  243.     return 1;
  244. }
  245.  
  246. public OnPlayerLeaveRaceCheckpoint(playerid)
  247. {
  248.     return 1;
  249. }
  250.  
  251. public OnRconCommand(cmd[])
  252. {
  253.     return 1;
  254. }
  255.  
  256. public OnPlayerRequestSpawn(playerid)
  257. {
  258.     return 1;
  259. }
  260.  
  261. public OnObjectMoved(objectid)
  262. {
  263.     return 1;
  264. }
  265.  
  266. public OnPlayerObjectMoved(playerid, objectid)
  267. {
  268.     return 1;
  269. }
  270.  
  271. public OnPlayerPickUpPickup(playerid, pickupid)
  272. {
  273.     return 1;
  274. }
  275.  
  276. public OnVehicleMod(playerid, vehicleid, componentid)
  277. {
  278.     return 1;
  279. }
  280.  
  281. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  282. {
  283.     return 1;
  284. }
  285.  
  286. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  287. {
  288.     return 1;
  289. }
  290.  
  291. public OnPlayerSelectedMenuRow(playerid, row)
  292. {
  293.     return 1;
  294. }
  295.  
  296. public OnPlayerExitedMenu(playerid)
  297. {
  298.     return 1;
  299. }
  300.  
  301. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  302. {
  303.     return 1;
  304. }
  305.  
  306. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  307. {
  308.     return 1;
  309. }
  310.  
  311. public OnRconLoginAttempt(ip[], password[], success)
  312. {
  313.     return 1;
  314. }
  315.  
  316. public OnPlayerUpdate(playerid)
  317. {
  318.     return 1;
  319. }
  320.  
  321. public OnPlayerStreamIn(playerid, forplayerid)
  322. {
  323.     return 1;
  324. }
  325.  
  326. public OnPlayerStreamOut(playerid, forplayerid)
  327. {
  328.     return 1;
  329. }
  330.  
  331. public OnVehicleStreamIn(vehicleid, forplayerid)
  332. {
  333.     return 1;
  334. }
  335.  
  336. public OnVehicleStreamOut(vehicleid, forplayerid)
  337. {
  338.     return 1;
  339. }
  340.  
  341. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  342. {
  343.     return 1;
  344. }
  345.  
  346. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  347. {
  348.     return 1;
  349. }
  350. stock strget(strx[], pos, search = ' ') {
  351.     new arg, ret[128], idxx;
  352.     for (new i = 0; i < strlen(strx); i++) {
  353.         if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
  354.             arg++;
  355.             if (arg == pos + 1){
  356.                 ret[i-idxx] = EOS;
  357.                 return ret;
  358.             } else if (arg == pos)
  359.                 idxx= i+1;
  360.         }
  361.         else if (arg == pos)
  362.                 ret[i - idxx] = strx[i];
  363.     }
  364.     return ret;
  365. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement