ich glaube mal so:
public OnPlayerSpawn(playerid)
{
if(IsPlayerAdmin(playerid))
{
Create3DTextLabel("I'bla bla bla",0x008080FF,x,y,z,drawdistance,0);
return 1;
}
else
return 1;
}
ungetested
mfg xXganzereuroXx
ich glaube mal so:
public OnPlayerSpawn(playerid)
{
if(IsPlayerAdmin(playerid))
{
Create3DTextLabel("I'bla bla bla",0x008080FF,x,y,z,drawdistance,0);
return 1;
}
else
return 1;
}
ungetested
mfg xXganzereuroXx
bitte sehr:
new cmd[256];
new tmp[256];
new Message[256];
new gMessage[256];
new pName[MAX_PLAYER_NAME+1];
new iName[MAX_PLAYER_NAME+1];
new idx;
cmd = strtok(cmdtext, idx);
// PM Command
if(strcmp("/pm", cmd, true) == 0)
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp) || strlen(tmp) > 5) {
SendClientMessage(playerid,0xFF444499,"Benutze: /pm (id) (nachricht)");
return 1;
}
new id = strval(tmp);
gMessage = strrest(cmdtext,idx);
if(!strlen(gMessage)) {
SendClientMessage(playerid,0xFF444499,"Benutze: /pm (id) (nachricht)");
return 1;
}
if(!IsPlayerConnected(id)) {
SendClientMessage(playerid,0xFF444499,"/pm : Diese ID ist nicht aktiv!");
return 1;
}
if(playerid != id) {
GetPlayerName(id,iName,sizeof(iName));
GetPlayerName(playerid,pName,sizeof(pName));
format(Message,sizeof(Message),">> %s(%d): %s",iName,id,gMessage);
SendClientMessage(playerid,0xFFCC2299,Message);
format(Message,sizeof(Message),"** %s(%d): %s",pName,playerid,gMessage);
SendClientMessage(id,0xFFFF22AA,Message);
PlayerPlaySound(id,1085,0.0,0.0,0.0);
printf("PM: %s",Message);
}
else {
SendClientMessage(playerid,0xFF444499,"Du kanst dir selber keine Nachricht schreiben!");
}
return 1;
}
mfg xXganzereuroXx
ok in die restlichen autos kann als leader und als nichtleader wieder betreten.
weiteres problem:
wenn ich nichtleader bin, kann ich in die autos, die eigentlich für nichtleader unzugänglich sind
wenn ich leader bin, werde ich aus dem auto geworfen und er sagt, ich wäre nicht bei der US army
//EDIT: hat sich erledigt, ich hatte lediglich ein ! vergessen, danke allen für die hilfe
mfg xXganzereuroXx
lol, wenn ich jetzt in ein auto gehe, werde ich herrausgeschmissen und er sagt, das ich nicht bei der us army bin. Wenn ich aber in das auto gehe, in das man ohne us army nicht rein kann, kann ich einfach reingehen ohne rausgeschmissen zu werden.
heyho leute;
ich habe eine frage, undzwar, wenn man in das und das auto geht, dass man danach rausgeworfen wird, esseiden, man ist leader.
soweit bin ich schon:
public IsAArmyCar(playerid)
{
if(IsAArmy(playerid))
{
new modelid = GetVehicleModel(GetPlayerVehicleID(playerid));
if(modelid == 520)
{
return 1;
}
}
else
{
SendClientMessage(playerid, 0xFF0000FF, "Du bist nicht Angehöriger der US-Army!");
RemovePlayerFromVehicle(playerid);
}
return 0;
}
und bei OnPlayerEnterVehicle:
if(IsAArmyCar(playerid))
aber wenn ich in irgentein auto gehe, steht oben, du bist kein angehöriger der US-Army!
was habe ich falsch gemacht?
mfg xXganzereuroXx
@multivan wenn ich deine variante benutze, hängt sich mein PAWN compiler auf....-.-
ich habe es einwenig umgeschrieben, und so:
if (strcmp(cmdtext, "/savepos", true)==0)
{
GetPlayerPos(playerid, PosX[playerid], PosY[playerid], PosZ[playerid]);
GetPlayerFacingAngle(playerid, PosA[playerid]);
SendClientMessage(playerid, COLOR_LIGHTBLUE, ".:SERVER:. Position gespeichert! Du kannst sie mit /loadpos Laden.");
PosI[playerid] = (GetPlayerInterior(playerid));
PlayerPlaySound(playerid, 1137 , 0.0, 0.0, 0.0);
return 1;
}
if (strcmp(cmdtext, "/loadpos", true)==0)
{
if (!floatsqroot(PosX[playerid]+PosY[playerid]+PosZ[playerid]))
{
return SendClientMessage(playerid, COLOR_RED, "[ERROR:] Benutze /savep Als erstes!");
}
else
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
SetVehiclePos(GetPlayerVehicleID(playerid), PosX[playerid], PosY[playerid], PosZ[playerid]);
SetVehicleZAngle(GetPlayerVehicleID(playerid), PosA[playerid]);
SetCameraBehindPlayer(playerid);
LinkVehicleToInterior(GetPlayerVehicleID(playerid), PosI[playerid]);
}
else if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
SetPlayerPos(playerid, PosX[playerid], PosY[playerid], PosZ[playerid]);
SetPlayerFacingAngle(playerid, PosA[playerid]);
SetCameraBehindPlayer(playerid);
}
PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
SetPlayerInterior(playerid, PosI[playerid]);
SendClientMessage(playerid, COLOR_LIGHTBLUE, ".:SERVER:. Gespeicherte Position Geladen!");
return 1;
}
}
funktioniert es, nochmals danke für die hilfe
mfg xXganzereuroXx
Und für was das dann in einer Datei speichern?
ich weiß nicht ... war meine erste vermutung
eig nur für einem moment, die datei soll nach dem /loadpos wieder gelöscht ewrden, wenn das geht.
so mein cih dass:
max musterman gibt /savepos ein
daraufhin werden seine position gespeichert
max mustermann bibt /loadpos ein
daraufhin kehrt er zu der position zurück, die er gespeichert hat
die datei mit den gespeicherten cords von ihm wird nun gelöscht.
ne ich mein, wie lade ich die gespeicherten cords, und setze den spieler dann auch an die cords?
wenn du mta benutzt, benutze die 'bild nach unten' taste, dann sollte es gehen(markiere das object dafür)
du mappst das tor einmal offen und einmal zu und immst die cords
ganz einfach:
um ein object zu bewegen, musst du erst mal eins machen, mit CreateObject(objectid, X, Y, Z, rX, rY, rZ);
danach musst du einen command dafür erstellen:
bei OnGameModeInit():
new tor1 = CreateObject(objectid, X, Y, Z, rX, rY, rZ);
bei OnPlayerCommandText(playerid, cmdtext[])
if(strcmp(cmdtext, "/auf", true) == 0)
{
MoveObject(tor1, X, Y, Z, geschwindigkeit(das ist die geschwindikeit, mit der sich das object bewegt z.B. 4.0)); //das sind die cords, die das tor hat, wenn es OFFEN ist!
return 1;
}
if(strcmp(cmdtext, "/zu", true) == 0)
{
MoveObject(tor1, X, Y, Z, geschwindigkeit); //das sind die cords, die das tor hat, wenn es ZU ist!
return 1;
}
mfg xXganzereuroXx
nabend leute;
wie kann ich aus einer .ini datei informationen wieder laden?
d.h. ein spieler tippt /savepos ein. nun werden seine cords gespeichert, soweit bin ich auch schon:
if(!strcmp(cmdtext,"/savepos"))
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
new Float:xx, Float:yy, Float:zz, save[512];
GetPlayerPos(playerid,xx,yy,zz);
format(save,sizeof(save),"%s pos.txt",name);
dini_IntSet(save, "-----------------------", 1);
dini_FloatSet(save,"X: %d",xx);
dini_FloatSet(save,"Y: %d",yy);
dini_FloatSet(save,"Z: %d",zz);
SendClientMessage(playerid, 0x00C600FF, "Deine Position wurde gespeichert! Benutze /loadpos, um sie wieder zu laden");
return 1;
{
wie mache ich das, wenn ich /loadpos eintippe, das ich dann wieder an den gespeicherten cords lande?
mfg xXganzereuroXx
benutze die Suchfunktion, oder schau dich im showroom um, da gibt es massig dcmd/sscanf registersysteme.
mfg xXganzereuroXx
ok ich werds mal ausprobieren
sry wegen doppelpost, weis den keiner die antwort?
Soweit ich weiß, ist dies nicht möglich
es ist glaube ich möglich mit MapEditor (ka why der so heist)
wenn du da etwas speicherst, sieste es nur im singleplayer.
hier ist der link zu einem youtube video, da wird erklärt, wie es funktioniert.
der downloadlink steht in der beschreibung des videos
(es kan sein, dann ma die objecte dan auch in einem multiplayerspiel sieht(aber nur für sich) also vorsicht)
http://www.youtube.com/watch?v=HQNOtqwQMAk
mfg xXganzereuroXx
mach es einfach darunter:
public OnGameModeInit()
{
UsePlayerPedAnims();
//anderer code
return 1;
}
mfg xXganzereuroXx
nabend leute;
wie mache ich es, das wenn ma aus einer definierten area herrausgeht, das die hp wieder auf 100 geht?
das ist mein skript
forward Areacheck(playerid);
SetTimer("Areacheck", 1000, 1);
stock IsPlayerInArea(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY)
{
new Float:pX,Float:pY,Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
if(pX >= minX && pX <= maxX && pY >= minY && pY <= maxY) return 1;
return 0;
}
public Areacheck(playerid)
{
for(new i = 0; i<GetMaxPlayers(); i++)
{
if( IsPlayerConnected(i) && IsPlayerInArea(playerid, 69.9446 , 1904.1500 , 97.6615 , 1937.5177 ) )
{
SetPlayerHealth(playerid,9999999);
}
}
wie mach ich dass?
mfg xXganzereuroXx
es soll eigentlich angeben, wieviel uhr es ist....