schau mal hier
Und sonst kannst du dir ja im Showroom ein paar commands angucken und versuche nachzumachen o.ä.
schau mal hier
Und sonst kannst du dir ja im Showroom ein paar commands angucken und versuche nachzumachen o.ä.
genau
mit
if(HatPremium[playerid] != 1)
fragst du ab ob HatPermium nicht 1 ist.
Denn
if(HatPremium[playerid] != 1)
ist das gleiche wie
if(HatPremium[playerid] == 0
und in deinem fall müsste man ja abfragen ob es 1 ist, un nicht ob HatPremium nicht 1 ist.
as genau spricht gegen ohost? Ich finde ohost klasse, bis auf die Werbung natürloch, aber dafür dass es kostenfrei ist, ist es zu ertragen
enum pPos
{
Float:posX,
Float:poxY,
Float:posZ,
};
new PlayerPos[MAX_PLAYERS][pPos];
new bool: FirstSpawn[MAX_PLAYERS];
public OnPlayerConnect
{
new name[MAX_PLAYER_NAME], filename[50];
GetPlayerName(playerid,name,sizeof(name));
format(filename,sizeof(filename),"%s.ini",name);
if(dini_Exists(filename))
{
PlayerPos[playerid][posX] = dini_Float(filename,"X");
PlayerPos[playerid][posY] = dini_Float(filename,"Y");
PlayerPos[playerid][posZ] = dini_Float(filename,"Z");
FirstSpawn[playerid] = true;
}
else
{
dini_Create(filename);
FirstSpawn[playerid] = false;
}
return 1;
}
public OnPlayerDisconnect
{
new name[MAX_PLAYER_NAME], filename[50];
GetPlayerName(playerid,name,sizeof(name));
format(filename,sizeof(filename),"%s.ini",name);
GetPlayerPos(playerid, PlayerPos[playerid][posX], PlayerPos[playerid][posY], PlayerPos[playerid][posZ];
if(IsPlayerConnected(playerid))
{
dini_FloatSet(filename, "X", PlayerPos[playerid][posX]);
dini_FloatSet(filename, "Y", PlayerPos[playerid][posY]);
dini_FloatSet(filename,"Z", PlayerPos[playerid][posZ]);
FirstSpawn[playerid] = false;
}
return 1;
}
public OnPlayerSpawn
{
if(FirstSpawn[playerid])
{
SetPlayerPos(playerid,PlayerPos[playerid][posX],PlayerPos[playerid][posY],PlayerPos[playerid][posZ]);
FirstSpawn[playerid] = false;
}
return 1;
}
sollte so funktionieren, kann auch sein dass einige Tippfeher drinne sind
gompfy bei einem bool nutzt man true und false
Das ist doch egal ob man statt true 1 oder statt false 0 benutzt. Ist beides das gleiche!
klar geht das, machs einfach mit nem bool.
new bool: RampeAn;
und dann setzt du einfach in dem FS eine if abfrage davor
if(RampeAn==1)
{
//...
und dann machst du natürlich noch die befehle ins FS
if (strcmp("/rampean", cmdtext, true, 10) == 0)
{
if(RampeAn == 1)
{
SendClientMessage(playerid,0xFFFFFFAA,"Rampe ist bereits an!");
}
else
{
RampeAn = 1
}
Zitat von PsychokillaEin HausSystem für ein GM ?
Also ein Selfmade kein GodFather ?
Wer lesen kann, ist klar im Vorteil....
Zitat von Loadup[GERhab kein GF also pls non GF ...
alle oder nur ein paar?
ist es vielleicht möglich, dass im GM und im FS die gleichen befehle sind? sprich mit gleichen "namen"?
Versuchs mal so
new bool: DeathMatchON[MAX_PLAYERS];
public OnPlayerSpawn(playerid)
{
if(DeathMatchON[playerid] == true) //überprüft, ob der befehl /dm schon einmal eingegeben wurde
{
SetPlayerPos(playerid,x,y,z); //Die coords von deinem Spawn bei der Dm area
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/dm", cmdtext, true, 10) == 0)
{
if(DeathMatchON[playerid] = false)
{
SetPlayerPos(playerid,x,y,z); //coords von der DM Zone
DeathMatchON[playerid] = true;
}
else
{
SetPlayerHealth(playerid, 0.0);
SetPlayerPos(playerid,x,y,z); // Die coords von deinem normalen Spawn
DeathMatchON[playerid] = false;
}
return 1;
}
return 0;
}
beim ersten mal eingeben von "/dm" spawnt er in der Dm zone und nach dem Tod wird er dort wieder Spawnen. Beim 2ten eingeben spawnt er wieder ganz normal
Das könnte man mittels der IP Adresse rausfinden.
EDIT: zu langsam xD
kein kommentar
warum machst du es nicht so??
new name[MAX_PLAYER_NAME], string[48];
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),"%s",name);
SetTimerEx(string, 1000,0,"s");
ich würde es ja gerne noch mehr erweitern, aber mir gehen die Ideen aus, ihr könnt mir ja vielleicht noch ein paar Ideen sagen
Version 1.2 ist Online (siehe oben)
ich würde es so machen
public OnPlayerDeath(playerid, killerid, reason)
{
if(killerid == INVALID_PLAYER_ID)
{
new string[256], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string),"%s hat sich selbst umgebracht",name);
SendClientMessageToAll(rot,string);
}
else
{
new str[256], string[256], name[MAX_PLAYER_NAME], killername[MAX_PLAYER_NAME];
GetPlayerName(killerid, killername, sizeof(killername));
GetPlayerName(playerid, name, sizeof(name));
format(str, sizeof(str), "%s hat %s umgebracht, er ist nun ein BadBoy", killername, name);
SendClientMessageToAll(rot, str);
format(string, sizeof(string),"%s hat dich umgebracht.", killername);
SendClientMessage(playerid, rot, string);
SendDeathMessage(killerid,playerid,reason);
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
GivePlayerMoney(killerid, 10000);
}
return true;
}
bei dcmd ist das nicht so
das kann auch garnich gehen
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
schau dir doch die coords doch mal an, sind doch alles die gleichen Sprich die Kamera ist genau in dem Typ drinne, dann kann sie ihn schlecht sehen
So ist es richtig
if (strcmp("/nitro", cmdtext, true) == 0)
{
if (PlayerInfo[playerid][pAdmin] >= 1)
{
if (IsPlayerInAnyVehicle(playerid))
{
AddVehicleComponent(playerid, 1010);
}
else
{
SendClientMessage(playerid, COLOR_GREEN,"Du bist in keinem Fahrzeug");
}
}
else
{
SendClientMessage(playerid, COLOR_GREEN, "Du bist kein Admin");
}
return 1;
}