Kann ich auch mit einem Code ALLE Befehle blockieren und irgendwie eine Ausnahmeliste hinzufügen?
Natürlich.
Dann einfach dort ein return 1 einfügen, das du sperren willst, entweder nur Heal, dann oben, oder alles außer Heal, dann unten.
Kann ich auch mit einem Code ALLE Befehle blockieren und irgendwie eine Ausnahmeliste hinzufügen?
Natürlich.
Dann einfach dort ein return 1 einfügen, das du sperren willst, entweder nur Heal, dann oben, oder alles außer Heal, dann unten.
Abend.
Warum werden mir in diesen Zeilen tag mismatch Fehler ausgegeben?
SetPlayerPos(playerid,Interior[inteid][1],Interior[inteid][2],Interior[inteid][3]);
SetPlayerFacingAngle(playerid,Interior[inteid][4]);
SetPlayerInterior(playerid,Interior[inteid][0]);
Das Enum sowie das Array dazu:
enum hausInteriors
{
interID,
Float:InterPosX,
Float:InterPosY,
Float:InterPosZ,
Float:InterPosR,
intName[25]
};
new Interior[12][hausInteriors] =
{
{11,501.980987,-69.150199,998.757812,0.0,"Bar"},
{15,2215.454833,-1147.475585,1025.796875,0.0,"Jefferson Motel"},
{12,444.646911,508.239044,1001.419494,0.0,"Budget inn motel room"},
{3,1038.531372,0.111030,1001.284484,0.0,"Blastin fools hallway"},
{3,2496.049804,-1695.238159,1014.742187,0.0,"Cj's house"},
{2,2454.717041,-1700.871582,1013.515197,0.0,"Ryders house"},
{1,2527.654052,-1679.388305,1015.498596,0.0,"Sweet's house"},
{2,1204.809936,-11.586799,1000.921875,0.0,"Strip club"},
{3,-2640.762939,1406.682006,906.460937,0.0,"Pleasure domes"},
{5,2350.339843,-1181.649902,1027.976562,0.0,"Gang house"},
{12,2324.419921,-1145.568359,1050.710083,0.0,"Unused safe house"},
{18,1710.433715,-1669.379272,20.225049,0.0,"LS Atruim"}
};
Alles anzeigen
Du darfst nicht 0,1,... im Array nutzen, sondern musst die Definitionen aus dem enum nehmen.
Wie lade ich eine Boolean Variable aus der MySQL Datenbank?
Mit cache_get_field_content_int(... bekomme ich immer tag mismatch. Wird es mit cache_get_field_content(... funktionieren?
Versuche vor das cache_get_field_content_int ein "bool:" zu setzen, das nennt sich casten.
Kann ich Nametags an/ausschalten für ALLE aber z.B Admins die Möglichkeiten geben trotzdem die Nametags zu sehen?
Sollen die Nametags per Befehl versteckt werden oder sollen sie direkt zum Serverstart verschwinden?
Habe vor die Nametags bei meinem /ejoin Befehl für ALLE verschwinden zu lassen. Beim /eleave Befehl wieder zeigenzu lassen. Ich weiß eigentlich wie das geht, aber nur für den einzelnen Spieler, nicht wie das für alle geht..
Ok alles klar, ich gebe dir trotzdem eine Version als Befehl.
Befehl:
Unter den Includes
CMD:nametag(playerid, params[])
{
for(new i=0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))continue;
if(IsPlayerAdmin(i))continue;
if(NametagStatus == true) {
ShowPlayerNameTagForPlayer(i, i, 0);
NametagStatus = false;
SendClientMessageToAll(COLOR_RED, "Die Nametags wurden soeben ausgeblendet.");
} else {
ShowPlayerNameTagForPlayer(i, i, 1);
NametagStatus = true;
SendClientMessageToAll(COLOR_RED, "Die Nametags sind wieder eingeblendet.");
}
}
}
Alles anzeigen
--
CMD:ejoin(playerid,params[])
{
new name[MAX_PLAYER_NAME], string[100];
GetPlayerName(playerid, name, sizeof(name));
if(inEvent[playerid] != false)return SendClientMessage(playerid, WHITE, "{FF1717}ERROR:{FFFFFF} You're already in the event. Use {FF1717}/eleave{FFFFFF} to leave it.");
if(!IsPlayerAdmin(playerid))
{
for(new i=0; i < MAX_PLAYERS; i++) {
if(!IsPlayerConnected(i) || IsPlayerAdmin(i))continue;
ShowPlayerNameTagForPlayer(playerid, i, 0), SendClientMessageToAll(COLOR_RED, "Die Nametags wurden soeben ausgeblendet. ( Admin sind aber sichtbar )");
}
}
new Float:HP, Float:Pos[4], Float:Armour;
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
GetPlayerFacingAngle(playerid, Pos[3]);
GetPlayerHealth(playerid, HP);
GetPlayerArmour(playerid, Armour);
for(new i=0; i <= 12; i++)GetPlayerWeaponData(playerid, i, PlayerInfo[playerid][weapons][i], PlayerInfo[playerid][ammo][i]);
PlayerInfo[playerid][p_Health] = HP;
PlayerInfo[playerid][p_Armour] = Armour;
PlayerInfo[playerid][p_X] = Pos[0];
PlayerInfo[playerid][p_Y] = Pos[1];
PlayerInfo[playerid][p_Z] = Pos[2];
PlayerInfo[playerid][p_A] = Pos[3];
PlayerInfo[playerid][p_Interior] = GetPlayerInterior(playerid);
PlayerInfo[playerid][p_VirtualWorld] = GetPlayerVirtualWorld(playerid);
if(zaehler >= sizeof(RandomSpawns)) zaehler = 0;
SetPlayerPos(playerid, RandomSpawns[zaehler][0], RandomSpawns[zaehler][1], RandomSpawns[zaehler][2]);
format(string, sizeof(string), "{FF1717}[EVENT]:{FFFFFF}{%06x} %s{FFFFFF} joined the Event - {FF1717}/ejoin", GetPlayerColor(playerid) >>> 8,name);
SendClientMessageToAll(0xC4C4C4FF, string);
zaehler++;
inEvent[playerid] = true;
return 1;
}
Alles anzeigen
CMD:eleave(playerid,params[])
{
new name[MAX_PLAYER_NAME], string[100];
GetPlayerName(playerid, name, sizeof(name));
if(inEvent[playerid] != true)return SendClientMessage(playerid, WHITE, "{FF1717}ERROR:{FFFFFF} You're not in an event. Use {FF1717}/ejoin{FFFFFF} to join one.");
format(string, sizeof(string), "{FF1717}[EVENT]:{FFFFFF}{%06x} %s{FFFFFF} has left the Event - {FF1717}/eleave", GetPlayerColor(playerid) >>> 8,name);
SendClientMessageToAll(0xC4C4C4FF, string);
inEvent[playerid] = false;
// Setzt den Spieler die zuvor gespeicherten Variablen zurück.
SetPlayerPos(playerid, PlayerInfo[playerid][p_X], PlayerInfo[playerid][p_Y], PlayerInfo[playerid][p_Z]);
SetPlayerFacingAngle(playerid, PlayerInfo[playerid][p_A]);
SetPlayerInterior(playerid, PlayerInfo[playerid][p_Interior]);
SetPlayerVirtualWorld(playerid, PlayerInfo[playerid][p_VirtualWorld]);
SetPlayerHealth(playerid, PlayerInfo[playerid][p_Health]);
SetPlayerArmour(playerid, PlayerInfo[playerid][p_Armour]);
GivePlayerWeapon(playerid,PlayerInfo[playerid][weapons], PlayerInfo[playerid][ammo]);
for(new i=0; i < MAX_PLAYERS; i++)if(!IsPlayerConnected(i) || IsPlayerAdmin(i))continue; ShowPlayerNameTagForPlayer(playerid, i, 1), SendClientMessageToAll(COLOR_RED, "Die Nametags werden wieder eingeblendet.");
return 1;
}
Alles anzeigen
hey was ist das für ein plugin was ihr alle benutzt?
CMD:nametag(playerid, params[])
bei mir steht da nicht cmd sondern ocmd
Der Command-Prozessor heißt ZCMD.
http://forum.sa-mp.com/showthread.php?t=91354
Das scheint nicht gut zu fuktionieren @malE
Ich sehe zwar die Nametags nicht, aber ein 2. Spieler (Tester) kann sie sehen und nein er ist kein Admin ^^.
Ich möchte einfach das die Nametags ausgeschaltet sind für die Spieler die dem Event beitreten /ejoin. Und sie wieder angezeigt werden nachdem sie verloren bzw. das Event verlassen haben. (/eleave)
Und dann ein seperaten Befehl welchen ich nur für Admins machen werde der alle Nametags anzeigt.
Wenn man sein Namen änder will über: SetPlayerName(... muss man Abfragen ob der eingegebene Name schon existiert oder funktioniert das automatisch?
Wenn du einen Namen eingibst, der bereits online ist, dann passiert gar nichts und 0 wird returnt, wenn der Spieler selbst den Namen hat, oder -1 wenn ihn ein anderer Spieler hat, bzw der Name ungültig ist.
http://wiki.sa-mp.com/wiki/SetPlayerName
Wenn du einen Namen eingibst, der bereits online ist, dann passiert gar nichts und 0 wird returnt.
http://wiki.sa-mp.com/wiki/SetPlayerName
Laut Wiki wird -1 Returnt wenn es den Namen schon gibt, 0 wird returnt wenn der Spieler den Namen schon hat. Will dich nicht verbessern, nur falls irgendjemand das mal sucht und findet ![]()
Wie behebe ich diesen Error?
event.pwn(403) : error 017: undefined symbol "i"
1 Error.
CMD:eleave(playerid,params[])
{
new name[MAX_PLAYER_NAME], string[100];
GetPlayerName(playerid, name, sizeof(name));
if(inEvent[playerid] != true)return SendClientMessage(playerid, WHITE, "{FF1717}ERROR:{FFFFFF} You're not in an event. Use {FF1717}/ejoin{FFFFFF} to join one.");
format(string, sizeof(string), "{FF1717}[EVENT]:{FFFFFF}{%06x} %s{FFFFFF} has left the Event - {FF1717}/eleave", GetPlayerColor(playerid) >>> 8,name);
SendClientMessageToAll(0xC4C4C4FF, string);
inEvent[playerid] = false;
for(new i=0; i < 13; i++)GivePlayerWeapon(playerid,PlayerInfo[playerid][weapons][i], PlayerInfo[playerid][ammo][i]);
// Setzt den Spieler die zuvor gespeicherten Variablen zurück.
SetPlayerPos(playerid, PlayerInfo[playerid][p_X], PlayerInfo[playerid][p_Y], PlayerInfo[playerid][p_Z]);
SetPlayerFacingAngle(playerid, PlayerInfo[playerid][p_A]);
SetPlayerInterior(playerid, PlayerInfo[playerid][p_Interior]);
SetPlayerVirtualWorld(playerid, PlayerInfo[playerid][p_VirtualWorld]);
SetPlayerHealth(playerid, PlayerInfo[playerid][p_Health]);
SetPlayerArmour(playerid, PlayerInfo[playerid][p_Armour]);
GivePlayerWeapon(playerid,PlayerInfo[playerid][weapons], PlayerInfo[playerid][ammo]);
SetPlayerSkin(playerid, PlayerInfo[playerid][p_Playerskin]);
for(new i=0; i < MAX_PLAYERS; i++)if(!IsPlayerConnected(i) || IsPlayerAdmin(i))continue; ShowPlayerNameTagForPlayer(i,playerid,0), SendClientMessageToAll(WHITE, "Die Nametags werden wieder eingeblendet.");
return 1;
}
Alles anzeigen
Habe mal ein Beispiel von MrMonat für meinem Gebrauch umgeändert.
Nunja. Jetzt bekomm ich aber leider ein tag mismatch in Zeile 16 und ich habe kein Plan warum.
Vielleicht, weil man keine Floats returnen kann?
stock GetNearestMedic(playerid)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
new Float:nearest = 9999999;
for(new i=0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerStreamedIn(i, playerid))continue;
if(PlayerInfo[i][p_Fraktion] != 4)continue;
new Float:distance = GetPlayerDistanceFromPoint(playerid, x, y, z);
if(distance < nearest)
{
nearest = distance;
}
}
return nearest;
}
Alles anzeigen