Advertisement
Guest User

Untitled

a guest
Apr 26th, 2012
364
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.97 KB | None | 0 0
  1. /*
  2. Installation:
  3.     - Führt diesen SQL Befehl in eurer Datenbank aus:
  4.    
  5.         CREATE TABLE IF NOT EXISTS `BETAKEYS` (
  6.           `ID` int(10) NOT NULL AUTO_INCREMENT,
  7.           `Code` varchar(50) NOT NULL,
  8.           `UsedByUser` varchar(24) NOT NULL,
  9.           `used` tinyint(1) NOT NULL DEFAULT '0',
  10.           UNIQUE KEY `ID` (`ID`)
  11.         ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;
  12.        
  13.        
  14.     - Geht in euren Gamemode, dort fügt ihr Folgendes ein:
  15.    
  16.         #define BETA // Wenn die Beta endet, diese Zeile(n) einfach wieder entfernen
  17.         #if defined BETA
  18.             #define public OnPlayerConnect(%0) forward _OnPlayerConnect(%0); public _OnPlayerConnect(%0)
  19.         #endif
  20.        
  21.        
  22.     - Sollte euer Server noch keine MySQL Verbindung in einem anderen Script aufbauen, müsst ihr folgenden Code mit euren Datenbankinformationen
  23.       füllen und unter OnFilterScriptInit() adden:
  24.      
  25.         mysql_connect(const host[], const user[], const pass[], const db[], MySQL:handle = (MySQL:0), auto_reconnect = 0);
  26.        
  27.        
  28.     Nun könnt ihr InGame mit /addcode [code] Neue Codes hinzufügen, oder sie einfach in die Datenbank schreiben
  29. */
  30.  
  31.  
  32.  
  33. #include a_samp
  34. #include mysql
  35. #define DIALOG_CONNECT 3
  36. #define DIALOG_CODE 4
  37. new pName[MAX_PLAYERS][MAX_PLAYER_NAME];
  38. public OnFilterScriptInit(){
  39.     mysql_init();
  40.     //mysql_connect(const host[], const user[], const pass[], const db[], MySQL:handle = (MySQL:0), auto_reconnect = 0);
  41.     return 1;
  42. }
  43. public OnPlayerConnect(playerid){
  44.     GetPlayerName(playerid,pName[playerid],MAX_PLAYER_NAME);
  45.     new str[256];
  46.     format(str,sizeof str,"SELECT `UsedByUser` FROM `BETAKEYS` WHERE `UsedByUser` = '%s'",pName[playerid]);
  47.     mysql_query(str);
  48.     mysql_store_result();
  49.     if(mysql_num_rows()>0)return CallRemoteFunction("_OnPlayerConnect","d",playerid);
  50.     mysql_free_result();
  51.     format(str, sizeof str,"{FFFFFF}Willkommen                                               {33AA33}%s{FFFFFF}!",pName[playerid]);
  52.     format(str, sizeof str, "%s\nDu hast noch     {FF0000}keinen{FFFFFF}     Closed-Beta Account.\nMöchtest du jetzt der Betaphase beitreten?",str);
  53.     ShowPlayerDialog(playerid,DIALOG_CONNECT,DIALOG_STYLE_MSGBOX,"{FFFFFF}Closed-Beta",str,"Ja","Verlassen");
  54.     return 1;
  55. }
  56. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
  57.     switch(dialogid){
  58.         case DIALOG_CONNECT:{
  59.             if(!response) return Kick(playerid);
  60.             ShowPlayerDialog(playerid,DIALOG_CODE,DIALOG_STYLE_INPUT,"{FFFFFF}Closed-Beta",
  61.             "{FFFFFF}Es fehlt nurnoch ein Schritt in Richtung Beta! Gib hier nun\n deinen {33AA33}Beta-Key{FFFFFF} ein:","Absenden","Zurück");
  62.         }
  63.         case DIALOG_CODE:{
  64.             if(!response) return OnPlayerConnect(playerid);
  65.             new str[256];
  66.             format(str, sizeof str, "SELECT `used` FROM `BETAKEYS` WHERE `Code` = '%s' AND `used` = FALSE",inputtext);
  67.             mysql_query(str);
  68.             mysql_store_result();
  69.             if(!mysql_num_rows()){
  70.                 mysql_free_result();
  71.                 SendClientMessage(playerid,0xFF0000FF,"Dieser Code existiert nicht oder wurde bereits verwendet!");
  72.                 return OnPlayerConnect(playerid);
  73.             }
  74.             mysql_free_result();
  75.             format(str, sizeof str, "UPDATE `BETAKEYS` SET `used` = TRUE, `UsedByUser` = '%s' WHERE `Code` = '%s' AND `used` = FALSE",pName[playerid],inputtext);
  76.             mysql_query(str);
  77.             SendClientMessage(playerid,0x33AA33FF,"Code erfolgreich aktiviert! Du wirst nun weitergeleitet.");
  78.             CallRemoteFunction("_OnPlayerConnect","d",playerid);
  79.         }
  80.     }
  81.     return 0;
  82. }
  83. public OnPlayerCommandText(playerid, cmdtext[]){
  84.     new query[128];
  85.     if(strfind(cmdtext,"/addcode",true) != -1 && IsPlayerAdmin(playerid)){
  86.         strmid(query,cmdtext,9,strlen(cmdtext));
  87.         if(strlen(query) < 3 || strlen(query) > 50) return SendClientMessage(playerid,0xFFFFFF,"Der Code sollte zwischen 3 und 50 Zeichen besitzen.");
  88.         format(query,sizeof query, "INSERT INTO BETAKEYS (Code) VALUES ('%s')",query);
  89.         mysql_query(query);
  90.         SendClientMessage(playerid,0xFFFFFF,"Code eingefügt!");
  91.         return 1;
  92.     }
  93.     return 0;
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement