Aber dann kann es es ja nur zu dem Besten bewegen und nicht zu allen Besten
stock Bester() {
new asc, sc, be;
for(new i=0; i<MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) {
sc=GetPlayerScore(i);
if(sc>=1) {
if(asc==0) {
be=i;
asc=sc; }
else {
if(sc>asc) {
asc=sc;
be=i; }}}}}
if(asc==0) { return -1; }
return be;
}
Du verwendest da dann z.b. so:
new ID=Bester();
if(ID!=-1) {
Denn wenn keiner einen Score über 0 hat, dann gibt diese Funktion -1 wieder
Beiträge von KeksOfDeath
-
-
if(strcmp(cmdtext,"/bester",true)==0) {
new s[128], asc, name[MAX_PLAYER_NAME], sc;
for(new i=0; i<MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) {
sc=GetPlayerScore(i);
if(sc>=1) {
if(asc==0) {
GetPlayerName(i,name,sizeof(name));
asc=sc;
format(s,sizeof(s),"%s ID %d",name,i); }
else {
if(sc>asc) {
GetPlayerName(i,name,sizeof(name));
asc=sc;
format(s,sizeof(s),"%s ID %d",name,i); }
else if(sc==asc) {
GetPlayerName(i,name,sizeof(name));
format(s,sizeof(s),"%s, %s ID %d",s,name,i); }}}}}
if(asc==0) { format(s,sizeof(s),"Niemand hat einen Score über 0"); }
SendClientMessage(playerid,FARBE,s);
return 1;
}
//EDIT:Ach sheiße, du wolltest ja die ID von dem Typen^^
//EDIT2: Hast du zufällig sowas wie strget oder strtok deklariert?
PS: Das mitm Einrücken bekomm ich hier i-wie nicht so ganz hin... -
10 sekunden freezen:
//ganz nach oben:
forward auftau(playerid);
//dort, wo er gefreezt werden soll:
TogglePlayerControllable(playerid,0);
SetTimerEx("auftau",10000,0,"d",playerid);
//ganz nach unten:
public auftau(playerid) {
if(IsPlayerConnected(playerid)) {
TogglePlayerControllable(playerid,1); }
return 1;
}
Für eine Stunde sperren, gleiches Prinzip, nur da würde ich eine zusätzliche Varaible einbauen, weil wenn einer off geht und ein anderer on kommt...
zwischen 20 und 22 uhr:
new s, m, se;
gettime(s,m,se);
if(s>=20 && s<=22) {
//.....
Und zu den Doppelposts: Doppelposts -
if(strcmp(cmdtext, "/teleports",true)==0) {
SendClientMessage(playerid,FARBE,"text1 gla hi pizza");
SendClientMessage(playerid,FARBE,"uhu teeports, ...");
return 1;
} -
Ganz nach oben:
Spoiler anzeigen
//-----0000----0----0--------00000---------0-------000000-----------------------
//-----0---0----0--0---------0----0-------0-0------0----------------------------
//-----0000------0-----------00000-------0---0-----00000------------------------
//-----0---0----0------------0-00-------0000000----0----------------------------
//-----0000----0-------------0---00----0-------0---0-----------------by R@f ©---
#define SLOTS 200Spoiler anzeigen forward UpdateSpeed ();Spoiler anzeigen enum SavePlayerPosEnum {
Float:LastX,
Float:LastY,
Float:LastZ
}Spoiler anzeigen new SavePlayerPos[SLOTS][SavePlayerPosEnum];
new Text:Speedo[SLOTS];
new UpdateSeconds;Spoiler anzeigen new 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", "Stratium",
"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", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville",
"Tiller", "Utility Trailer"
};
OnGameModeInit:
SetTimer("UpdateSpeed",1000, 1);
In die dazugehöhrigen publics
Spoiler anzeigen public OnPlayerConnect(playerid)
{
SendClientMessage(playerid,0x00FF00FF,"This server is running whit R@f's Speedo FilterScript");
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_ONFOOT)
{
TextDrawHideForPlayer(playerid, Speedo[playerid]);
}
return 1;
}
ganz nach unten:
Spoiler anzeigen public UpdateSpeed()
{
new Float:x,Float:y,Float:z;
new Float:distance,value,string[256];
new Float:health;
for(new i=0; i<SLOTS; i++) {
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
{
TextDrawDestroy(Speedo[i]);
}
}Spoiler anzeigen for(new i=0; i {
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
{
GetPlayerPos(i, x, y, z);
GetVehicleHealth(GetPlayerVehicleID(i), health);
distance = floatsqroot(floatpower(floatabs(floatsub(x,SavePlayerPos[i][LastX])),2)+floatpower(floatabs(floatsub(y,SavePlayerPos[i][LastY])),2)+floatpower(floatabs(floatsub(z,SavePlayerPos[i][LastZ])),2));
value = floatround(distance * 5000);
if(UpdateSeconds > 1)
{
value = floatround(value / UpdateSeconds);
}
format(string,sizeof(string),"~g~Vehicle : ~w~%s ~n~~b~MPH : ~w~%d / ~b~KM/H : ~w~%d~n~~r~Vehicle Health:~w~ %.2f",CarName[GetVehicleModel(GetPlayerVehicleID(i))-400],floatround(value/1600),floatround(value/1000),health);
Speedo[i] = TextDrawCreate(320.00, 380.00, string);
TextDrawSetOutline(Speedo[i], 0);
TextDrawFont(Speedo[i], 3);
TextDrawSetProportional(Speedo[i], 2);
TextDrawAlignment(Speedo[i], 2);
TextDrawShowForPlayer (i, Speedo[i]);
}
SavePlayerPos[i][LastX] = x;
SavePlayerPos[i][LastY] = y;
SavePlayerPos[i][LastZ] = z;
}
} -
Wow alta, damit hätst mich fast gekillt^^
-
Jetzt mal ehrlich, wenn man jedem, der gerade neu anfängt, alles erklären würden, dann wären wir jetzt noch nicht fertig^^
Lernen musst du es schon selbst, wenn du manche Sachen nicht verstehst, kannst du dich gerne ans Forum werden, aber wenn man dir alle Funktionen erklären soll, dann wirds schon ein wenig viel, worauf keiner so wirklich Lust hat
Klick mich
Mich auch -
Bei "FARBE" sollst du die gewünschte Farbe eintragen
PS: Und ja, ich meine playerid -
Wie hast du den Timer gesetzt?
Also der Code, wegen dem playerid, ob dus mit überträgst oder nicht -
if(strcmp(cmdtext,"/bugreport",true,10) == 0) {
if(!strlen(cmdtext[11])) return SendClientMessage(payerid,FARBE,"/bugreport Text");
new string[128],name[16];
GetPlayerName(playerid,name,16);
new File:reportfile = fopen("bugs.cfg",io_append);
format(string,sizeof string,"%s 's Bugreport: %s\r\n",name,cmdtext[11]);
fwrite(reportfile,string);
fclose(reportfile);
SendClientMessage(payerid,FARBE,"Bug gemeldet");
return 1;
} -
War das jetzt eine ernst gemeinte Frage?
SendClientMessage(payerid,FARBE,"Bug gemeldet"); -
Hast du auch ein Timer gesetzt?
-
Argh, was schreib ich denn da für ne Scheiße? xD
Sorry, bin ein wenig neben der Spur
if(strcmp(cmdtext,"/bugreport",true,10) == 0)
{
new string[128],name[16];
GetPlayerName(playerid,name,16);
new File:reportfile = fopen("bugs.cfg",io_append);
format(string,sizeof string,"%s 's Bugreport: %s\r\n",name,cmdtext[11]);
fwrite(reportfile,string);
fclose(reportfile);
return 1;
} -
if(strcmp(cmdtext,"/bugreport",true,10) == 0)
{
cmdtext[10];
new string[128],name[16];
GetPlayerName(playerid,name,16);
new File:reportfile = fopen("bugs.cfg",io_append);
format(string,sizeof string,"%s 's Bugreport: %s\r\n",name,cmdtext[10]);
fwrite(reportfile,string);
fclose(reportfile);
return 1;
} -
Showroom, oder bei google, oder bei forum.sa-mp.com
gibt gaaaaanz viele -
Wenn sie nicht wiederhohlt werden, dann kannst so viele einbauen, wie du willst^^
Wen nsie aber wiederhohlt werden, dann würde ich es auf 1-2 beschränken (am besten 1), da es sonst nur eine unnötige Belastung ist -
Und... if (strcmp("/ports", cmdtext, true, 10*) == 0)
* gibt an, wie lang der cmdtext ist, bei /ports wäre er 6 Zeichen lang, wenn man dort eine falsche Zahl stehen hat, dann kommt nur "Server: Unknown command"
Man kann die Zahl auch weglassen, dann kann man aber nicht mir Parametern arbeiten (was man bei diesem Befehl eh nicht brauch) -
Oder eher so
switch(GetPlayerScore(playerid)) {
case 0: { GivePlayerMoney(playerid,5000); }
case 2: { GivePlayerMoney(playerid,10000); }
case 4: { GivePlayerMoney(playerid,25000); }
//...
} -
Wo steht der andere Teil von deinem Post?
Also dieser
case 5:
{
GameTextForPlayer(playerid, "Pilot", 5000, 3);
[...] -
Dann steht der Command sicherlich nicht im public "OnPlayerCommandText" oder beim Header ist "cmdtext[]" falsch geschrieben