Du trägst den Rang auch nirgendwo in das Array ein, soweit ich das sehe.
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
-
-
hatte ich glaube schon gemacht, da war aber irgendwas falsch weswegen 26 errors kamen.
was müsste denn da hin? -
Bei dem Command sSpieler[pid][Rang] = rang;
-
hat gefunkt
die letzte sache die nicht funktioniert wäre dies hier.
mein /leader ist exakt genauso aufgebaut und funktioniert tadelos
dcmd_admins(playerid,params[])
{
#pragma unused params
new admin[MAX_PLAYER_NAME];
new string[256];
SendClientMessage(playerid,Weiß, "Anwesende Admins:");
//for(new i; i < MAX_PLAYERS; i++)
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(sSpieler[i][Adminlevel] == 1)
{
GetPlayerName(i,admin,sizeof(admin));
format(string,sizeof(string),"Supporter: %s",admin);
SendClientMessage(playerid,Weiß,string);
}
if(sSpieler[i][Adminlevel] == 2)
{
GetPlayerName(i,admin,sizeof(admin));
format(string,sizeof(string),"Moderator: %s",admin);
SendClientMessage(playerid,Weiß,string);
}
if(sSpieler[i][Adminlevel] == 3)
{
GetPlayerName(i,admin,sizeof(admin));
format(string,sizeof(string),"Super Moderator: %s",admin);
SendClientMessage(playerid,Weiß,string);
}
if(sSpieler[i][Adminlevel] == 4)
{
GetPlayerName(i,admin,sizeof(admin));
format(string,sizeof(string),"Vorstand: %s",admin);
SendClientMessage(playerid,Weiß,string);
return 1;
}
}
}
return 1;
} -
Ich würde es eher so machen:
C
Alles anzeigennew admin[MAX_PLAYER_NAME]; new string[256]; SendClientMessage(playerid, Weiß, "Anwesende Admins:"); for(new i = 0; i < MAX_PLAYERS; i++) { if(!IsPlayerConnected(i) || sSpieler[i][Adminlevel] == 0) continue; GetPlayerName(i, admin, sizeof(admin)); switch(sSpieler[i][Adminlevel]) { case 1: format(string, sizeof(string), "Supporter: %s", admin); case 2: format(string, sizeof(string), "Moderator: %s", admin); case 3: format(string, sizeof(string), "Super Moderator: %s", admin); case 4: format(string, sizeof(string), "Vorstand: %s", admin); default: continue; } SendClientMessage(playerid, Weiß, string); } return 1;
-
passt das default continue hats gebracht
-
Das kann eigentlich nur daran liegen, dass das Adminlevel des einen Spielers nicht zwischen 1 und 4 liegt.
-
Der Spieler hatte ein ausreichendes Adminlevel, aber durch das default: continue; gings dann aufeinmal!
-
wollte ma fragen ob jemand eine Funktion kennt die das Vehicle Model zu dem Vehicle Namen umwandelt so wie in zahlreichen anderen "Id To Name" Funktionen, da es sehr aufwändig wäre das ganze selbst von ID 400 bis 600 zu schreiben frage ich mal ob jemand solch eine funktion kennt bzw ob es so eine schon gibt
-
-
-
Hier, pack das am besten in ein seperates Include mit nützlichen Funktionen:
C
Alles anzeigenstock const CarName[][] = { "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic","Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "Blista Compact", "Police Maverick", "Boxvillde", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt", "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune", "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito", "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club", "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car", "Police Car", "Police Car", "Police Ranger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale Shit", "Sadler Shit", "Luggage", "Luggage", "Stairs", "Boxville", "Tiller", "Utility Trailer" }; #define GetVehicleName(%0) CarName[(%0)-400]
#i failed xD
-
Ich teste grad alle meine Befehle und Optimiere sie ein wenig.
Dabei ist mir aufgefallen, das mein /ban Command nicht korrekt funktioniert bzw. die abfrage ob ein Spieler gebannt ist garnicht funktioniert.Wenn bei OnPlayerConnect
Meine abfrage if (sSpieler [playerid][gebannt] = 1 abgefragt wird soll eine nachricht kommen und ein timer starten dsmit der spieler gekickt wird.
Leider passiert dies nichtpublic OnPlayerConnect (playerid)
{
if (sSpieler[playerid][Gebannt] = 1)
{
SendclientMessage ...
SetTimer("KickTimer",300,0);
return 1;
} -
Ungetestet, aber sollte so funktionieren.
PS: Wieso überhaupt ein Timer? Kannst ihn ja auch ohne kicken..new DelayKick[MAX_PLAYERS];
public OnPlayerConnect (playerid)
{
if(sSpieler[playerid][Gebannt] = 1)
{
DelayKick[playerid] = SetTimerEx("DelayKickPlayer", 1000, false, "i", playerid);
}
return 1;
}forward DelayKickPlayer(playerid);
public DelayKickPlayer(playerid)
{
SendClientMessage(playerid, -1, "Du bist gebannt. Erstelle ein Entbann Antrag...");
KillTimer(DelayKick[playerid]);
return 1;
} -
der timer sollte nur sein damit die nachricht gesendet wird bevor er wieder gekickt wird.
Werde das heute abend oder morgen mal testen und mich melden dsnke erstmal -
Kann mir bitte jemand sagen, wie ich alle Spieler abfrage also Ich möchte z.B. bei OnGameModeExit alle Spieler Speichern
-
-
Bitte um Hilfe^^
Tank[i] = Tank[i] - ((mass / (mass * 4.5)) * ((speed / 60) + 0.015) / 30) * ((dist / 10) + 0.001);
-> Tagmismatch ?!
der geht: Tank[i] = Tank[i] - 1; hätte es gern aber realistischer^^
-
-
Ich frag mich wie man eine /members - Liste per Dialog Liste macht, statt den Chat voll zu spammen.
Hat da jemand eine Idee?
-
Ganz normal eine Spielerschleife, allerdings statt jedes mal SendClientMessage zu nutzen, fügst du mit format oder strcat den Namen, Rang oder was auch immer an einen vorher definierten String an, den du nach der Schleife in einem Dialog anzeigen lässt.