Klappt gut Jeffry. Ist aber die Möglichkeit die ich oben beschrieben habe nicht besser bzw. besser? Also mit meiner Variable inEvent[playerid] = true; abfragen ob er im Event ist, und dann die Befehle hintereinander eintragen die er nicht im Event benutzen kann.
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Das kannst du auch machen, ja.
Allerdings musst du die Variable in den Filterscript bekommen, das würde nur wirklich sinnvoll über PVars gehen (oder über CallRemoteFunction, das ist aber nicht so gut). -
Danke dir, dann belasse ich es einfach mit der aktuellen Methode.
Andere Frage: Benötige eine gute Animation o.Ä um den Spielern das Punchen nicht zu ermöglichen. Habe an die Cuff Animation gedacht aber damit kann man trotzdem anderen Schaden hinzufügen. Kennt jemand eine andere?
Hab's hiermit ausprobiert, man kann aber leider immer noch punchen.
Edit2:
Kann ich auch mit einem Code ALLE Befehle blockieren und irgendwie eine Ausnahmeliste hinzufügen?
-
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?
CSetPlayerPos(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:
C
Alles anzeigenenum 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"} };
-
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 IncludesC
Alles anzeigenCMD: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."); } } }
--
C
Alles anzeigenCMD: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; }
C
Alles anzeigenCMD: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; }
-
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/SetPlayerNameLaut 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.CSS
Alles anzeigenCMD: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; }
-