Sieht du nicht ganz richtig, im Code vom TE bekommt der User die o.g. Nachricht, wenn playerInfo[playerid][pbanID] NICHT zutrifft und wird außerdem gekickt (unabhängig von der IF-Abfrage).
Ich habe den Code soweit berichtigt, dass der Spieler nunmehr nur gekickt wird, wenn er gebannt ist und außerdem hab ich die Nachricht ausgeklammert, da ohnehin nirgends eine IP überprüft wird.
Beiträge von [ASAP]Frosty
-
-
Probier es mal so
Code
Alles anzeigenpublic OnServerAddPlayerToWhiteList(senderid, setname[]) { if(cache_affected_rows()) { new string[128]; format(string, sizeof(string), "* %s %s hat %s auf die Login-Whitelist gesetzt.",GetPlayerTitle(senderid), GetPlayerNameEx(senderid), setname); SendAdminMessage(COLOR_GREEN, string); return 1; } SendClientMessage(senderid, COLOR_LESSRED, "Dieser Spieler existiert nicht oder ist bereits auf der Whitelist."); return 1; } public OnServerCheckIpWhitelist(playerid) { if(cache_num_rows()) { SendClientMessage(playerid, COLOR_YELLOW, "Du stehst auf der Ip - Whitelist. Dein Account wurde nun verbunden."); playerInfo[playerid][pIgnoreIp] = true; new query[128]; mysql_format(dbHandle, query, sizeof(query), "DELETE FROM `ipwhitelist` WHERE `id` = '%d'",cache_get_field_content_int(0, "id")); mysql_tquery(dbHandle, query, "", ""); ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration (1 / 4)","Bitte gebe zur späteren Verifizierung deiner Person ein Passwort ein:","Registieren","Verlassen"); } else { if(playerInfo[playerid][pBanIp]) { SendClientMessage(playerid, COLOR_RED, "Dein Account ist nicht in der Lage, zu verbinden (banned)."); KickEx(playerid); } //else SendClientMessage(playerid, COLOR_RED, "Auf unserem Server sind nur IPs aus Deutschland, Österreich und der Schweiz erlaubt."); } return 1; }
-
Ich wäre auch dabei, wenn noch ein paar mehr dabei sind
-
stimmt.. hatte das Problem auch mal..
dann mach es so:Code
Alles anzeigenpublic OnFilterScriptInit() { RNPC_SetUpdateRate(80); MapAndreas_Init(MAP_ANDREAS_MODE_NOBUFFER); new count = 0; for(new npcid = 0; npcid < MAX_ZOMBIES; npcid++) { SetTimerEx("SpawnZombie", 1000, false, "i", npcid); count++; } printf("Number of zombies created: %i", count); return 1; } forward SpawnZombie(npcid); public SpawnZombie(npcid) { new name[24]; format(name, sizeof(name), ZOMBIE_NAME, npcid + 1); ConnectRNPC(name); return 1; }
-
versuch mal weniger Bots spawnen zu lassen
-
Naja, aus 'server full' würde ich schließen, dass der Server halt voll ist.
Entweder, du hast keine freien Slots mehr oder die max. NPC Zahl in der server.cfg ist zu klein -
Den brauchst du in dem Fall auch nicht mehr, das macht jetzt die Schleife
-
-
Code
Alles anzeigennew countedCars, modelid[MAX_CARS]; //MAX_CARS = maximale Fahrzeuge pro Spieler #define MAX_CARS 2 z.b. wenn du das noch nicht hast for(new i = 0; i < sizeof(pVehicle); i++)//sizeof(pVehicle) bedeutet dass er alle Fahrzeuge durchsucht { if(!strlen(pVehicle[i][vehicleUser]))//wenn das Fahrzeug exisiert continue; if(!strcmp(pVehicle[i][vehicleUser], Playername(playerid), true)) //Wenn das Fahrzeug dem Spieler gehört.. countedCars++; //..geht die Variable hoch modelid[countedCars-1] = pVehicle[i][vehicleModel]; //Speichert das Model des Fahrzeugs in eine Variable } new money; for(new i = 0; i < countedCars; i++)//wird so oft ausgeführt wie der Spieler Fahrzeuge hat { money += pVehicle[modelid[i]-400][vehKFZsteuer]; //modelid[i] enthält logischerweise die ModelID des Fahrzeugs und -400 weil beim Model 520 z.b. stehen die Informationen an 120. stelle in dem enum, bei 402 an 2. undsoweiter.. } GivePlayerMoney(playerid,-money);
Dürfte so funktionieren habs aber nicht getestet
das alles beim PayDay rein oder wo auch immer halt die Steuer abgezogen werden sollWenn du fragen dazu hast, kann ich dir die auch gerne beantworten..
-
Ok gut, wenn ich das richtig verstehe fragt man mit der schleife ab wv Fahrzeuge ein spieler hat
du kannst also die schleife beim Payday einfügen und dann machst du countedCars x 8$kann dir später wenn ich zuhause bin zeigen was ich meine falls du nicht verstehst was ich mein
-
Können denn bei dir im Script Fahrzeuge gekauft werden? zeig mal die stelle wo das Fahrzeug dem spieler zugewiesen wird (also beim kaufen)
Aus den Daten oben kann man nicht erschließen wv fahrzeuge ein Spieler hat
-
Haha, danke für deine Hilfe!
Code
Alles anzeigen//Fraktionsautos enum fCarEnum { id, vehid, faction, modelid, Float:fPosX, Float:fPosY, Float:fPosZ, Float:fPosR, fColor1, fColor2, fSirene } new fCarInfo[MAX_FRAKCARS][fCarEnum];
So.. und MAX_FRAKCARS ist gleich 200, das wird der Fehler sein...
/edit: Ja, funktioniert jetzt alles. #erledigt -
Hallo!
Bin gerade dabei ein dynamisches Fraktionsfahrzeug-System zu schreiben und hab ein kleines Problem mit dem Befehl /reloadfrakcarsCode
Alles anzeigenocmd:reloadfrakcars(playerid, params[]) { if(PlayerInfo[playerid][pAdmin] >= 2) { for(new i = 1; i < MAX_VEHICLES; i++) { if(IsFrakCar(i)) { printf("i = %d",i); DestroyVehicle(i); } } ALL_FRAKCARS = 0; LoadFrakCars(); SendClientMessage(playerid,-1,"INFO: Alle Fraktionsfahrzeuge wurden neu geladen."); return 1; } else return SendClientMessage(playerid,-1,"INFO: Du hast keine Berechtigung dafür."); }
Das Problem ist, die Schleife geht genau bis i auf 200 ist und dann wird der Befehl abgebrochen (im Chat erscheint Unkown Command) und alles was nach der Schleife kommt wird nicht ausgeführt.Wenn ich statt MAX_VEHICLES bspw. ne kleinere Zahl benutze funktioniert alles perfekt.
-
Zeig mal die Funktion "IsATM(playerid)"
-
Ich Akzeptiere, dass WENN ich das FSK 18 Spiel gewinne, einen Altersnachweis bringe und nehme an diesem Gewinnspiel Teil
-
Liebe Leser, liebe Leserinnen,
ich möchte euch heute gerne mein neues Projekt "Dreamwin" vorstellen.Im Internet gibt es sehr viele Gewinnspiel-Angebote, einige davon sind seriös und empfehlenswert, andere davon leider weniger. Viele sogenannte Gewinnspiele haben es nur auf deine Daten abgesehen, einige andere versuchen dich in irgendwelche Abonnements zu bekommen. Da ist es für Interessenten schwierig, ordentlich Gewinnspiele herauszufiltern. Deshalb habe ich das Projekt "Dreamwin" gestartet. Auf Dreamwin.de findest Du aussschließlich Gewinnspiele von ausgewählten Partnern. Zu jedem Gewinnspiel wirst du auf unserer Seite einen verantwortliches Unternehmen bzw. eine verantwortliche Person finden.
Dreamwin bietet für dich als Gewinnspiel-Interessierten folgende Vorteile:
- Kein Suchen mehr nach Gewinnspielen, alles auf einer Seite!
- Kein Filtern mehr von Fake-Gewinnspiel, nur seriöse Anbieter!
- Immer die aktuellsten Gewinnspiele!Dreamwin befindet sich noch in der Anfangs- und Aufbauphase, deshalb sind wir über jede Unterstütztung extrem dankbar!
http://www.dreamwin.de
FacebookMit freundlichen Grüßen
[ASAP]Frosty / Marc -
Siehe hier: https://wiki.sa-mp.com/wiki/TextDraw_Sprites#LD_BEAT.txd
Weiter unten sind Pfeile (Gray arrow..) -
Ich hab mir die Grundlagen auch mit den Videos von Mr. Monat beigebracht und danach geht mMn nach nichts über learning by doing auch wenn du anfangs noch viele Probleme haben wirst aber dafür sind wir ja da
-
Dynamische Überwachungskameras
Ersteller: [ASAP]Frosty (Script basiert auf dem CCTV Script von Sandra18[NL])
Version: 0.1
Arbeitsaufwand: bisher ca. 2 StundenErklärung:
Man kann im Spiel Überwachungskameras erstellen, indem man /addcam eingibst. Es wird ein Kameraobjekt erstellt (1616), welches du beliebig platzieren kannst und anschließend wirst du dazu aufgefordert (mithilfe des flymode-Filterscripts) die Position zu speichern, in die die Kamera schauen soll. Mit /cams lassen sich alle Kameras in einem Dialog anzeigen und auswählen. Man kann die Kamera mithilfe von den Pfeiltasten um 360° drehen.http://fs5.directupload.net/images/160323/sgagpc3n.png
http://fs5.directupload.net/images/160323/u93ryb7b.png
http://fs5.directupload.net/images/160323/o7bal64t.png
http://fs5.directupload.net/images/160323/a9sg7k4k.png
http://fs5.directupload.net/images/160323/ysxurlp5.png
http://fs5.directupload.net/images/160323/o9r3lxpy.png
http://fs5.directupload.net/images/160323/kzv834s7.png
http://fs5.directupload.net/images/160323/oe8fu2e4.pngToDo:
Kameras mit MySQL speichern
weitere FeaturesMit freundlichen Grüßen
[ASAP]Frosty -
Code
Alles anzeigennew progressbartimer[MAX_PLAYERS]; //Nach oben im Script (global!) new PlayerBar:bar1; //Nach oben im Script (global!) forward progressbar(playerid); //Nach oben im Script if(listitem == 8) { if(Flasche[playerid] == 0) { Flasche[playerid] = 1; alterskin2[playerid] = GetPlayerSkin(playerid); SetPlayerSkin(playerid,278); atemtaimer[playerid] = SetTimerEx("atemschutztaimer",1500000,true,"i",playerid); bar1 = CreatePlayerProgressBar(playerid,510.00, 118.00, 77.50, 3.20, 0x11acFFFF, 100.0); SetPlayerProgressBarValue(playerid, bar1, 100); ShowPlayerProgressBar(playerid, bar1); progressbartimer[playerid] = SetTimerEx("progressbar", 1000, true, "i", playerid); PlayAudioStreamForPlayer(playerid, "http://funkspiel-bb.de/AGTneu.wav"); return SendClientMessage(playerid,0x0041FFFF,"Sie haben sich mit einer Pressluftflasche ausgerüstet Achtung Luft reicht für 21min!"); } else { Flasche[playerid] = 0; RemovePlayerAttachedObject(playerid,1); SetPlayerSkin(playerid, alterskin2[playerid]); new bar1; DestroyPlayerProgressBar(playerid, bar1); KillTimer(atemtaimer[playerid]); StopAudioStreamForPlayer(playerid); // Stop the audio stream return SendClientMessage(playerid,0x0041FFFF,"Sie haben die Pressluftflasche wieder abgenommen!"); } } public progressbar(playerid) { new Float:val = GetPlayerProgressBarValue(playerid, bar1); if(val <= 0.0794) { SetPlayerProgressBarValue(playerid, bar1, 0); KillTimer(progressbartimer[playerid]); } SetPlayerProgressBarValue(playerid, bar1, val-0.0794); }