das ist aber immernoch ein gemoddetes Auto :O
Das ist der ENB Series Mod
das ist aber immernoch ein gemoddetes Auto :O
Das ist der ENB Series Mod
Erstelle einfach für jeden Spieler der den Befehl ausführt ein Car:
new adminveh[MAX_PLAYERS]; // Am besten oben ins Script
adminveh[playerid] = CreateVehicle(..);
Auch wenn ich davon nicht gerade viel halte, könnte ich auch etwas beisteuern
Was meinst du mit "bei jedem SendClientMessage eine if Abfrage zu machen..." ?
Meinst du evtl. soetwas:
for(new i = 0; i<MAX_PLAYERS; i++)
{
if(IsPlayerAdmin(i))
{
SendClientMessage(i,0xFF0000FF,"Message!");
}
}
Wenn ja, könntest du einen stock erstellen:
stock SendAdminMessage(color,text[])
{
for(new i = 0; i<MAX_PLAYERS; i++)
{
if(IsPlayerAdmin(i))
{
SendClientMessage(playerid,color,text);
}
}
return 1;
}
if(response)
{
//Wenn Button 1 gedrückt wird
}
else if(!response)
{
//Wenn Button 2 gedrückt wird
}
new bool:Log[MAX_PLAYERS];
OnPlayerConnect(playerid)
{
Log[playerid] = true;
}
OnPlayerSpawn(playerid)
{
new string[256];
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname,sizeof(pname));
if(Log[playerid])
{
format(string,sizeof(string),"~~~~~~~~~~~~~~~~~~~~~~~~~~Herzlich Willkommen %s !~~~~~~~~~~~~~~~~~~~~~~",pname);
SendClientMessage(playerid,0xFFFFFFFF,string);
Log[playerid] = false;
}
}
ocmd:setmoney(playerid,params[])
{
new Betrag, Spieler, string[256], playername[MAX_PLAYER_NAME], SpielerName[MAX_PLAYER_NAME];
if(!IsPlayerAnAdmin(playerid,4))return SendClientMessage(playerid,grau,"Du darfst das nicht tun!");
if(sscanf(params,"ud",Spieler,Betrag))return SendClientMessage(playerid,grau,"Benutze: /setmoney [Spieler/ID] [Betrag]");
GetPlayerName(playerid,playername,sizeof(playername));
GetPlayerName(Spieler,SpielerName,sizeof(SpielerName));
format(string,sizeof(string),"Administrator %s hat dein Geld auf %d€ gestellt.",playername,Betrag);
SendClientMessage(Spieler,grau,string);
format(string,sizeof(string),"Du hast Spieler %s's Geld auf %d€ gestellt.",SpielerName,Betrag);
SendClientMessage(playerid,grau,string);
SetPlayerMoney(Spieler,Betrag);
return 1;
}
Müsste funktionieren, habs gerade hier im Editor geschrieben.
MfG
n0skillg3t
OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
for(new pv = 0; pv < sizeof(AdminVehs); pv++)
{
if(vehicleid == pv)
{
if(!IsPlayerAnAdmin(playerid,1))
{
SendClientMessage(playerid,0xFF0000FF,"Dieses Fahrzeug ist nur für Administratoren!");
TogglePlayerControllable(playerid,0);
TogglePlayerControllable(playerid,1);
return 1;
}
}
}
return 1;
}
Bei OnPlayerCommandText(..)
new string[256];
hinzufügen.
stock Log(logname[],text[])
{
new string[256],File:hFile;
format(string,sizeof(string),"%s\r\n",text);
hFile=fopen(logname,io_append);
fwrite(hFile,string);
fclose(hFile);
}
Wenn du jeden Befehl geloggt haben willst, mach es unter OnPlayerCommandText(..)
OnPlayerCommandText(playerid, cmdtext[])
{
new tag, monat, jahr, stunde, minute, sekunde, name[MAX_PLAYER_NAME], string[256];
GetPlayerName(playerid,name,sizeof(name));
getdate(jahr,monat,tag);
gettime(stunde,minute,sekunde);
format(string,sizeof(string),"[%02d.%02d.%d | %02d:%02d:%02d]Spieler %s hat den Befehl '%s' benutzt.",tag,monat,jahr,stunde,minute,sekunde,name,cmdtext);
Log("Befehle.log",string);
return 1;
}
Das geht nicht ( PUNKT )
if(strcmp(cmd, "/crashserver", true) == 0)
{
SendRconCommand("exit");
}
DarkZero hat es doch schon geschrieben.
new TotTimer[MAX_PLAYERS];
OnPlayerDeath(playerid, killerid)
{
TotTimer[playerid] = SetTimerEx("Tot",60000,false,"d",playerid);
}
forward Tot(playerid);
public Tot(playerid)
{
//Was passieren soll wenn er wieder lebt..
}
Wenn du den Timer jetzt killen möchtest machste das so:
KillTimer(TotTimer[playerid]);
MfG
Wenn der Spieler sich ausloggt musst du seine Position in einer Datei/Datenbank speichern und
diese beim Connecten auslesen, quasi so:
OnPlayerDisconnect(playerid, reason)
{
SavePlayer(playerid);
}
stock SavePlayer(playerid)
{
new Float:X, Float:Y, Float:Z;
new data[124], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(data,sizeof(data),"/Accounts/%s.ini",name);
GetPlayerPos(playerid,X,Y,Z);
dini_FloatSet(data,"LastX",X);
dini_FloatSet(data,"LastY",Y);
dini_FloatSet(data,"LastZ",Z);
}
Dánn wenn sein Account geladen wird:
stock LoadPlayer(playerid)
{
new name[MAX_PLAYER_NAME], data[64];
new Float:X, Float:Y, Float:Z;
GetPlayerName(playerid,name,sizeof(name));
format(data,sizeof(data),"/Accounts/%s.ini",name);
X = dini_Float(data,"LastX");
Y = dini_Float(data,"LastY");
Z = dini_Float(data,"LastZ");
SetPlayerPos(playerid,X,Y,Z);
}
Kann sein das es Fehler enthält habs hier im Editor geschrieben.
Müsste aber funktionieren.
Dieser CJ Laufstiel ist immernoch der beste.
Die anderen rennen wie schwuchtel, naja jedem das seine.
Du hast das hier:
if(response==1
Mach das zu dem hier:
if(response==1)
Kein PlayerInfo, einfach nur
format(var, 32, "Grundwehrdienstnote",Grundwehrnote[playerid]); fwrite(hFile, var);
Welches Speichersystem benutzt du ?
dini?
mysql?
..
Hier für dini mit ocmd:
new Grundwehrnote[MAX_PLAYERS];//Oben zu deinen #defines etc.
ocmd:GWNote(playerid,params[])
{
new user, note, username[MAX_PLAYER_NAME], playername[MAX_PLAYER_NAME], string[256];
GetPlayerName(playerid,playername,sizeof(playername));
if(sscanf(params,"ud",user,note))return SendClientMessage(playerid,grau,"Benutze: /GWNote [Spieler/ID] [Note]");
if(Grundwehrnote[user] != 0)return SendClientMessage(playerid,grau,"Dieser Spieler hat bereits eine Grundwehrdienst Note bekommen!");
GetPlayerName(user,username,sizeof(username));
Grundwehrnote[user] = note;
format(string,sizeof(string),"General %s hat dir eine Grundwehrdienst Note ausgehändigt. Du kannst sie mit /GWA anschauen.",playername);
SendClientMessage(user,gelb,string);
format(string,sizeof(string),"Du hast %s eine Grundwehrdienst Note ausgehändigt.",username);
SendClientMessage(playerid,gelb,string);
return 1;
}
ocmd:GWA(playerid,params[])
{
if(Grundwehrnote[playerid] == 0)return SendClientMessage(playerid,grau,"Du hast den Grundwehrdienst noch nicht ausgeführt!");
format(string,sizeof(string),"Deine Grundwehrdienst Note: %d",Grundwehrnote[playerid]);
SendClientMessage(playerid,blau,"<--| ******************************************* |-->");
SendClientMessage(playerid,weis,string);
SendClientMessage(playerid,blau,"<--| ******************************************* |-->");
return 1;
}
Wenn sein Account gespeichert wird, machst du das:
dini_IntSet(dateipfad,"Grundwehrdienstnote",Grundwehrnote[playerid]);
Wenn er sich einloggt:
Grundwehrnote[playerid] = dini_IntGet(dateipfad,"Grundwehrdienstnote");
Musst alles noch anpassen.
Kann Fehler enthalten, habs hier im Editor geschrieben.
MfG
Zeig uns mal den Bank Befehl, such nach /bank.
Welches Befehlsystem benutzt du ?
Standart?
OCMD ?
ZCMD ?
...