Beiträge von dnlk
-
-
Ist bei mir jetzt auch seit ein paar minuten..
-
Load_Config wird leider nicht aufgerufen. Hat jemand dort einen Ansatz für mich?
Code
Alles anzeigenpublic OnGameModeInit() { static query[256]; mysql_format(myCon, query, sizeof(query), "SELECT * FROM `server_config`"); mysql_tquery(myCon, query, "Load_Configs"); return CallLocalFunction("Config_OnGameModeInit", "", ""); } forward Config_OnGameModeInit(); #if defined _ALS_OnGameModeInit #undef OnGameModeInit #else #define _ALS_OnGameModeInit #endif #define OnGameModeInit Config_OnGameModeInit static stock Load_Configs() { print("Load_Configs"); new row, count; if(!cache_get_row_count(row_count)) { print("Konfiguration >> Der Server kann nicht gestartet werden, da wichtige MySQL Tabellen fehlen!"); print("Konfiguration >> Der Server wird nun zum Schutz gestoppt!"); return SendRconCommand("exit"); } else {
Load_Configs muss eine public funktion sein.
-
Idealerweise wären alle 3 Ports offen
Für die reine funktionalität des Servers werden aber nur 22003/UDP und 22005/TCP benötigt
-
Irgendein Port wird nicht offen sein.
Der Konsolen Befehl "openports" sagt dir welcher.
Müsste 22005/TCP sein.
-
-
Auch mein erstes Apple Smartphone
-
Ich habe bei vielen globalen Timern folgende Zeile:
if(!IsPlayerConnected(i) && !IsPlayerInAnyVehicle(i)) continue;Ich will ja abfragen, ob der Spieler connected ist und in einem Fahrzeug ist, aber warum benutzte ich da ein '!' davor.
Ich frage, weil es so funktioniert und ich einfach nicht weiß, wie es so funktionieren kannIch mein, bin ich doof? Wenn man !IsPlayerConnected abfragt, dann fragt man doch ob der Spieler nicht connected ist hä?
Das ist einer meiner ersten Codeversuche von damals, hoffe einer kann mich aufklären, ich mein das continue hat da nichts zusuchen aber der Code funktioniert und genau das macht mir KopfschmerzenErstmal ist deine Abfrage falsch, es muss if (!IsPlayerConnected(i) || !IsPlayerInAnyVehicle(i)) continue; sein
Wenn du dort ein && verwendest, reicht es schon dass der Spieler verbunden ist damit das continue; nicht ausgeführt wird, also wird der Code darunter ausgeführt, was ja nicht sein soll.Wenn du alsoif (!IsPlayerConnected(i) || !IsPlayerInAnyVehicle(i)) continue;machst,
Dann wird dein continue; ausgeführt wenn der Spieler entweder nicht Verbunden ist, oder wenn er Verbunden ist aber sich in keinem Fahrzeug befindet. -
Sag ich ja, bist zu schlau...
oder ich zu doofEdit:
Also sobald mehr als 8 Spieler auf dem Server sind, soll es funktionieren.
Würde es so gehen? Kann es nicht testenWas passiert wenn 15 Leute auf dem Server sind und ID:14 nicht belegt ist, kann man dass auc
h abfragen?
Das ist so nicht ganz richtig, GetPlayerPoolSize gibt dir die höchste Spieler ID zurück.
Heißt also wenn du z.B. 20 Spieler hattest und dann Spieler 2-18 Disconnecten würden, gibt dir GetPlayerPoolSize dennoch 20 zurück.
Wenn du also willst dass etwas nur funktioniert wenn mehr als X Spieler Online sind, musst du dir eine funktion machen.GetPlayerCount() {
new count;
for(new playerid, j = GetPlayerPoolSize(); playerid <= j; playerid++) {
if(IsPlayerConnected(playerid)) count++;
}
return count;
} -
Habe ich kann mir mal jemand helfen per Anydesk und zusehn wie ich es mache das trozudem der fehler bleibt? ich bin mir sicher das es richtig ist!
E:
Nein @BrightLeaN und @Rocky
Es lag an Streamer_VisibleItems(0, 1000); warum kann man das nicht mehr nutzen?
Wurde in Streamer_SetVisibleItems umbenannt
-
Mit dem Include ist ja auch alles in ordnung, das plugin an sich ist das falsche (.dll bzw. .so), hast du beide wirklich ersetzt?
-
*** Streamer Plugin: Include file version (0x294) does not match plugin version (0x291) (script might need to be recompiled with the correct include file).
Kann mir einer sagen warum?
Habe die akuellen Streamer + Plugins hinzugefügt und neu compeliert.
Anscheinend ja nicht.
Include version ist neuer als die version vom plugin.
-
Danke Jungs!
http://prntscr.com/o5d87m
Das steht in meiner Konsole, irgendwie wird das geladen, irgendwie aber auch nicht.
Im Log steht ja das er den Wert bzw. den Namen herausgefunden hat.Hole ich mir den Wert falsch?
Sonst funktioniert das, wenn ich mir das nicht herausladen lasse.Probier mal bitte
cache_get_value_name(garageid, "Besitzer_Name", gInfo[garageid][gBesitzer], MAX_PLAYER_NAME); -
C:\Users\User\Desktop\Script\gamemodes\Script-reallife.pwn(6737) : warning 202: number of arguments does not match definition
Code
Alles anzeigenpublic LoadBizes() { new rows, fields, count; cache_get_row_count(rows); cache_get_field_count(fields); for(new i=0;i<rows;i++) { new bizID = cache_get_value_name_int(i, "id"); //6737 if(bizID < MAX_BIZ) { Biz[bizID][bCreated] = 1; cache_get_value_name_int(i, "id", Biz[bizID][bdbID]); cache_get_value_name_int(i, "Type", Biz[bizID][bType]); cache_get_value_name_float(i, "EnterX", Biz[bizID][bEnterX]); cache_get_value_name_float(i, "EnterY", Biz[bizID][bEnterY]); cache_get_value_name_float(i, "EnterZ", Biz[bizID][bEnterZ]); cache_get_value_name_float(i, "ExitX", Biz[bizID][bExitX]); cache_get_value_name_float(i, "ExitY", Biz[bizID][bExitY]); cache_get_value_name_float(i, "ExitZ", Biz[bizID][bExitZ]); cache_get_value_name_int(i, "Interior", Biz[bizID][bInterior]); cache_get_value_name_int(i, "Level", Biz[bizID][bLevel]); cache_get_value_name_int(i, "Preis", Biz[bizID][bPreis]); cache_get_value_name_int(i, "Owned", Biz[bizID][bOwned]); cache_get_value_name_int(i, "Kasse", Biz[bizID][bKasse]); cache_get_value_name_int(i, "Lock", Biz[bizID][bLock]); cache_get_value_name_int(i, "Eintritt", Biz[bizID][bEintritt]); cache_get_value_name_int(i, "Produkte", Biz[bizID][bProdukte]); cache_get_value_name_int(i, "MaxProdukte", Biz[bizID][bMaxProdukte]); cache_get_value_name_int(i, "ProdPreis", Biz[bizID][bProdPreis]); cache_get_value_name(i, "Besitzer", Biz[bizID][bBesitzer], 64); cache_get_value_name(i, "Teilhaber", Biz[bizID][bTeilhaber], 64); cache_get_value_name(i, "Beschreibung", Biz[bizID][bBeschreibung], 64); Biz[bizID][bText] = CreateDynamic3DTextLabel("Laedt ...", COLOR_WHITE, Biz[bizID][bEnterX], Biz[bizID][bEnterY], Biz[bizID][bEnterZ], 20.0); if(Biz[bizID][bOwned] == 1) { Biz[bizID][bPickup] = CreatePickup(BIZ_OWNER_PICKUP, 1, Biz[bizID][bEnterX], Biz[bizID][bEnterY], Biz[bizID][bEnterZ], 0); } else if(Biz[bizID][bOwned] == 0) { Biz[bizID][bPickup] = CreatePickup(NO_BIZ_OWNER_PICKUP, 1, Biz[bizID][bEnterX], Biz[bizID][bEnterY], Biz[bizID][bEnterZ], 0); } UpdateBizLabel(bizID, Biz[bizID][bOwned]); count++; } } printf("[LOAD] BIZes geladen: %d/%d", count, MAX_BIZ); return 1; }
Kann mir einer sagen wo da der fehler liegt?
new bizID = cache_get_value_name_int(i, "id");zu
new bizID;
cache_get_value_name_int(i, "id", bizID);[wiki]MySQL/R40#cache_get_value_name_int[/wiki]
-
Hat jemand n kleine .exe die automatisch zwischen zwei definierten Wiedergabegeräten wechselt?
Ich nutze dafür den Rainmeter Skin SmartAudioSwitcher
https://github.com/mdpolson/SmartAudioSwitcher/releases -
Du kannst den string mit \ in mehrere Zeilen splitten.
Beispiel:
ShowPlayerDialog(playerid, 0, 0, "Test", "Ich bin ein \
String", " ", " "); -
Kann man irgendwie abfragen wie viele Rows bei einem Delete Statement gelöscht wurden?
https://wiki.sa-mp.com/wiki/MySQL/R40#cache_affected_rowsKann doch nicht so schwer sein mal selber zu suchen.
-
Hey,
Ist das so richtig @Mogly1
C
Alles anzeigenstock CreateDrugVegancy(playerid, drugart, samen) { new query[500]; for(new Drugs=0;Drugs<MAX_DRUGS;Drugs++) { if(Drogen[Drugs][drgArt] == 0 && drugart != 0) { //GetPlayerPos(playerid, Drogen[Drugs][drgXpos], Drogen[Drugs][drgYpos], Drogen[Drugs][drgZpos]); MapAndreas_FindZ_For2DCoord(Drogen[Drugs][drgXpos], Drogen[Drugs][drgYpos], Drogen[Drugs][drgZpos]); Drogen[Drugs][drgfraktid] = Spieler[playerid][pFraktion]; Drogen[Drugs][drgArt] = drugart; Drogen[Drugs][drginterior] = GetPlayerInterior(playerid); Drogen[Drugs][drgvirtualworld] = GetPlayerVirtualWorld(playerid); Drogen[Drugs][drgProduceDrugs] = 0; Drogen[Drugs][drgWasserzustand] = 100; format(Drogen[Drugs][drgOwner], 24, "%s", GetName(playerid)); Drogen[Drugs][drgNextDrugsIn] = (60*60); format(query,sizeof(query),"{00FF00}Pflanzen-ID {FFFFFF}%i\n%s\n{00FF00}Besitzer: {FFFFFF}%s, %s\n{00FF00}Drogenmenge: {FFFFFF}%i{00FF00}g\n{00FF00}Neue Drogen in {FFFFFF}%i:%02d {00FF00}Minuten\n{00FF00}Wasserzustand: {FFFFFF}%i%", Drugs, DrugArtByName(Drogen[Drugs][drgArt]), Drogen[Drugs][drgOwner], FraktionsName(Drogen[Drugs][drgfraktid]), Drogen[Drugs][drgProduceDrugs], Drogen[Drugs][drgNextDrugsIn]/60, Drogen[Drugs][drgNextDrugsIn]%60, Drogen[Drugs][drgWasserzustand]); DrugLabel[Drugs] = CreateDynamic3DTextLabel(query, COLOR_WHITE, Drogen[Drugs][drgXpos], Drogen[Drugs][drgYpos], Drogen[Drugs][drgZpos], 7.5, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, Drogen[Drugs][drgvirtualworld]); mysql_format(MySqlConnection, query, sizeof(query), "INSERT INTO `server_drogen` (`pflanze`,`drgfraktid`,`drgArt`,`drgXpos`,`drgYpos`,`drgZpos`,`drginterior`,`drgvirtualworld`,`drgProduceDrugs`,`drgNextDrugsIn`,`drgWasserzustand`,`drgOwner`) VALUES ('%i', '%i', '%i', '%f', '%f', '%f', '%i', '%i', '%i', '%i', '%i', '%s')", Drugs, Drogen[Drugs][drgfraktid], Drogen[Drugs][drgArt], Drogen[Drugs][drgXpos], Drogen[Drugs][drgYpos], Drogen[Drugs][drgZpos], Drogen[Drugs][drginterior], Drogen[Drugs][drgvirtualworld], Drogen[Drugs][drgProduceDrugs], Drogen[Drugs][drgNextDrugsIn], Drogen[Drugs][drgWasserzustand], Drogen[Drugs][drgOwner]); mysql_tquery(MySqlConnection, query, "",""); format(query ,sizeof(query), "{33CCFF}(( %s %s: Eine Pflanze (%s) wurde gepflanzt! ))", GetRankName(Spieler[playerid][pFraktion], Spieler[playerid][pRank]), GetName(playerid), DrugArtByName(drugart)); SendFraktionMessage(Spieler[playerid][pFraktion], COLOR_WHITE, query); format(query, sizeof(query), "{C2A2DA}* %s pflanzt %s Pflanze an", GetName(playerid), DrugArtByName(drugart)); RoundMessage(playerid, COLOR_WHITE, query, 10.0); switch(Drogen[Drugs][drgArt]) { case 1://Ganja { Spieler[playerid][pGanjaSammen] -= samen; Drogen[Drugs][drgobject] = CreateDynamicObject(822, Drogen[Drugs][drgXpos], Drogen[Drugs][drgYpos], Drogen[Drugs][drgZpos], 0.0, 0.0, 0.0, Drogen[Drugs][drgvirtualworld]); } case 2://KOKAIN { Spieler[playerid][pKokainSammen] -= samen; Drogen[Drugs][drgobject] = CreateDynamicObject(825, Drogen[Drugs][drgXpos], Drogen[Drugs][drgYpos], Drogen[Drugs][drgZpos], 0.0, 0.0, 0.0, Drogen[Drugs][drgvirtualworld]); } case 3://OPIUM { Spieler[playerid][pOpiumSammen] -= samen; Drogen[Drugs][drgobject] = CreateDynamicObject(866, Drogen[Drugs][drgXpos], Drogen[Drugs][drgYpos], Drogen[Drugs][drgZpos], 0.0, 0.0, 0.0, Drogen[Drugs][drgvirtualworld]); } case 4://spice { Spieler[playerid][pSpiceSammen] -= samen; Drogen[Drugs][drgobject] = CreateDynamicObject(866, Drogen[Drugs][drgXpos], Drogen[Drugs][drgYpos], Drogen[Drugs][drgZpos], 0.0, 0.0, 0.0, Drogen[Drugs][drgvirtualworld]); } default: printf("FEHLER » Stock 'CreateDrugVegancy(pid: %i, drugart: %i)' wurde nicht erkannt.",playerid,drugart); } return 1; } } return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Es wurde bereits die maximal Anzahl an Drogenpflanzen gepflanzt."); }
Du musst trotzdem GetPlayerPos nutzen.
Die MapAndreas funktion gibt dir lediglich eine Z Koordinate zurück, abhängig von den X & Y Koordinaten die du ihr gibst.
MapAndreas_FindZ_For2DCoord(Float:X, Float:Y, &Float:Z) <- nur Z ist eine referenz -
Ich versteh es nicht. Ich will, dass man das TextLabel nicht durch Objekte sehen kann, heißt Testlos = 0
füge ich hiernach 0, 0 , 0 ein sehe ich das TextLabel nicht einmal
CreateDynamic3DTextLabel(const text[], color, Float:x, Float:y, Float:z, Float:drawdistance, attachedplayer = INVALID_PLAYER_ID, attachedvehicle = INVALID_VEHICLE_ID, testlos = 0, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 100.0);
Dann setz die default werte anstatt 0...
Also INVALID_PLAYER_ID, INVALID_VEHICLE_ID und dann 0 für testlos
0 sind nämlich für beides valide IDs, also versucht der Streamer des text label an einen Spieler bzw. ein Fahrzeug zu attachen, somit siehst du es nicht. -
Hat X[] einen Text3D: Tag?