Zitat von Compiler-ErrorsAlles anzeigen
C:\Program Files (x86)\Rockstar Games\SAMP-Server\gamemodes\testmode1.pwn(74) : warning 217: loose indentation
C:\Program Files (x86)\Rockstar Games\SAMP-Server\gamemodes\testmode1.pwn(75) : warning 217: loose indentation
C:\Program Files (x86)\Rockstar Games\SAMP-Server\gamemodes\testmode1.pwn(145) : warning 217: loose indentation
C:\Program Files (x86)\Rockstar Games\SAMP-Server\gamemodes\testmode1.pwn(168) : warning 217: loose indentation
C:\Program Files (x86)\Rockstar Games\SAMP-Server\gamemodes\testmode1.pwn(170) : warning 217: loose indentation
C:\Program Files (x86)\Rockstar Games\SAMP-Server\gamemodes\testmode1.pwn(173) : warning 217: loose indentation
C:\Program Files (x86)\Rockstar Games\SAMP-Server\gamemodes\testmode1.pwn(174) : warning 217: loose indentation
C:\Program Files (x86)\Rockstar Games\SAMP-Server\gamemodes\testmode1.pwn(176) : warning 217: loose indentation
C:\Program Files (x86)\Rockstar Games\SAMP-Server\gamemodes\testmode1.pwn(191) : warning 217: loose indentation
C:\Program Files (x86)\Rockstar Games\SAMP-Server\gamemodes\testmode1.pwn(209) : warning 217: loose indentation
C:\Program Files (x86)\Rockstar Games\SAMP-Server\gamemodes\testmode1.pwn(211) : warning 217: loose indentation
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
#include <a_samp>
#include <dini>
#include <Dudb>
#include <ocmd>
#include <sscanf>
#pragma unused pInfo
enum Info
{
passwort[128],
skin
}
new bool:loggedin[MAX_PLAYERS];
new spieler[MAX_PLAYER_NAME];
main()
{
print("\n----------------------------------");
print(" Testgamemode by Robbe");
print("----------------------------------\n");
}
{
// Don't use these lines if it's a filterscript
SetGameModeText("Testgamemode by Robbe");
return 1;
}
{
return 1;
}
{
return 1;
}
{
new name[128], save[128]; // Dies machen wir um den Namen vom Spieler aufzuschreiben || Hiermit können wir sagen, dass etwas gespeichert werden soll
GetPlayerName(playerid,name,sizeof(name)); // Dies sagt, er soll( vom Spieler, den namen, in der größe name aufschreiben)
format(save,sizeof(save),"/Spieler/%s.ini",name); // Hier wird gechekt, wo der Spieler gespeichert ist, bzw. wo ein Spieler angelegt werden soll.
if(dini_Exists(save)) // Hier wird geprüft, ob die Datei des Spielers schon existiert.
{ // Wenn ja, sende einen Text und lade den Skin und das Geld
SendClientMessage(playerid, 0x33CCFFAA, "Willkommen bei SA:MP 0.3 Server");
SendClientMessage(playerid, 0xFFFFFFAA, "Dein Account wurde wiedererkannt.");
SendClientMessage(playerid, 0xFFFFFFAA, "Du kannst dich jetzt einloggen.");
SendClientMessage(playerid, 0xFFFFFFAA, "Benutze dazu /login [passwort].");
GivePlayerMoney(playerid,dini_Int(save,"Geld")); // Hier wird das geld dem Spieler gegeben, was er vorher hatte
SetPlayerSkin(playerid,dini_Int(save,"Skin")); // Hier wird der Skin des Spielers geladen
}
else
{
if(!dini_Exists(save)) // Wenn kein Spieler mit dem Namen existiert
{ //Sende einen Text
SendClientMessage(playerid, 0x33CCFFAA, "Willkommen auf dem Testserver!");
SendClientMessage(playerid, 0xFFFFFFAA, "Du hast noch keinen Account.");
SendClientMessage(playerid, 0xFFFFFFAA, "Du kannst dich jetzt registrieren.");
SendClientMessage(playerid, 0xFFFFFFAA, "Benutze dazu /register [passwort].");
}
}
return 1;
}
{
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
new name[128], save[128];// Gleiche
GetPlayerName(playerid,name,sizeof(name)); // wie
format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
if(dini_Exists(save)) // steht
{
dini_IntSet(save,"Geld",GetPlayerMoney(playerid)); // speichert das aktuelle Geld, was der Spieler zum schluss hatte
dini_IntSet(save,"Skin",GetPlayerSkin(playerid));
dini_FloatSet(save,"PosX", x);
dini_FloatSet(save,"PosY", y);
dini_FloatSet(save,"PosZ", z);}
return 1;
}
{
new name[128], save[128];// Gleiche
GetPlayerName(playerid,name,sizeof(name)); // wie
format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
if(loggedin[playerid] == false) //Wenn er nicht eingeloggt ist
{
SendClientMessage(playerid, 0xAA3333AA, "Du musst dich Einloggen bevor du spawnst!");
Kick(playerid); // Kicke den Spieler
}
SetPlayerSkin(playerid,dini_Int(save,"Skin")); //lade und setze den gespeicherten Skin
SetPlayerPos(playerid, dini_Float(save,"PosX"), dini_Float(save,"PosY"), dini_Float(save,"PosZ"));
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
if(strcmp(strget(cmdtext,0), "/register", true) == 0)
{
new save[40]; // Erstelle einen neuen String "save", wobei 40 Wörter verwendet werden können.
GetPlayerName(playerid,spieler,sizeof(spieler));
format(save, sizeof(save),"Spieler/%s.ini",spieler); //Speicherort
if(!dini_Exists(save)) // wenn der Spieler sich regestriert und es noch keine .ini Datei mit seinem Namen gibt
{
dini_Create(save); // Erstelle eine Neue .ini Datei
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.
SendClientMessage(playerid, 0x33AA33AA, "***Dein Account wurde erfolgreich registriert***");
SendClientMessage(playerid, 0x33AA33AA, "***Nutze /login [Passwort] um dich einzuloggen***");
}
else
{
if(dini_Exists(save)) // Wenn beim regestrieren die Datei schon besteht
{
SendClientMessage(playerid, 0xAA3333AA, "Der Account ist bereits registriert");
}
}
return 1;
}
if(strcmp(strget(cmdtext,0), "/login", true) == 0)
{
new save[40], s2[256]; //gleiche wie oben
GetPlayerName(playerid,spieler,sizeof(spieler));
format(save,sizeof(save),"Spieler/%s.ini",spieler);
if(dini_Exists(save)) // wenn Datei existiert
{
s2=dini_Get(save,"passwort"); // lade das Passwort
if(strval(s2)==udb_hash(strget(cmdtext,1))) // wenn die Eingabe nach /login mit dem Passwort von der registration übereinstimmt
{
loggedin[playerid] = true; //sage dem Server, dass der Spieler eingeloggt ist.
SendClientMessage(playerid, 0x33CCFFAA, "***Du hast dich erfolgreich eingeloggt***");
SpawnPlayer(playerid);
SetPlayerPos(playerid, dini_Float(save,"PosX"), dini_Float(save,"PosY"), dini_Float(save,"PosZ"));
else // wenn das passwort nicht stimmt
{
SendClientMessage(playerid, 0xAA3333AA, "Passwort Falsch!");
}
}
return 1;
}
if(strcmp("/dveh",cmdtext,true,10) ==0)
{
new vehicleid = GetPlayerVehicleID(playerid);
DestroyVehicle(vehicleid);
return 1;
}
if(strcmp("/hilfe",cmdtext,true,10) ==0)
{
SendClientMessage(playerid,rot,"/veh (Auto spawnen) - /dveh (Auto entfernen) - /givegun(Waffe geben)");
return 1;
}
}
ocmd:veh(playerid,params[])
{
new Float:vehx,Float:vehy,Float:vehz;
new vehid,cc1,cc2,string[128];
if(sscanf(params,"iii",vehid,cc1,cc2))return SendClientMessage(playerid, rot,"Benutzung: /veh [Vehicle ID] [Farbe 1] [Farbe 2]");
new carid = CreateVehicle(vehid,vehx,vehy,vehz,3,cc1,cc2,-1);
SetVehicleNumberPlate(carid,"~>Admin<~");
PutPlayerInVehicle(playerid, carid, 0);
format(string,sizeof(string),"[AdmCmd] Du hast ein Admincar gespawnt! (FahrzeugID :%d)",GetVehicleModel(GetPlayerVehicleID(playerid)));
SendClientMessage(playerid,rot,string);
return 1;
}
ocmd:givegun(playerid,params[])
{
new id,muni,waffe;
if(sscanf(params,"uii",id,waffe,muni)) return SendClientMessage(playerid,rot,"Benutzung: /givegun [ID] [WID] [MUNI]");
GivePlayerWeapon(id,waffe,muni);
SendClientMessage(playerid,rot,"Waffe vergeben");
return 1;
}
ocmd:setskin(playerid, params[]) {
new userID, skinID;
if (sscanf(params, "ui",userID, skinID)) return SendClientMessage(playerid, rot, "/setskin <playerid> <skinid>");
if(!IsPlayerConnected(skinID))return SendClientMessage(playerid,0x0000,"Der spieler ist nicht online");
SetPlayerSkin(userID, skinID);
return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
{
return 1;
}
stock strget(strx[], pos, search = ' ') {
new arg, ret[128], idxx;
for (new i = 0; i < strlen(strx); i++) {
if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
arg++;
if (arg == pos + 1){
ret[i-idxx] = EOS;
return ret;
} else if (arg == pos)
idxx= i+1;
}
else if (arg == pos)
ret[i - idxx] = strx[i];
}
return ret;
}
Eigentlich habe ich alle Includes und Plugins drinne.