Stimmt, so ist es richtig. Mit Komma kompiliert er zwar, aber der Code würde nicht funktionieren. Habe meinen Code angepasst.
[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
-
-
Wollte jetzt keinen extra Thread machen, aber wieso kommt dieser Error?
Code
Alles anzeigenstock IsNummeric(string[]) { for(new i=0,j=strlen(string),i<j;++) { if((string[i] > '9' || string[i] < '0'))return 0; } return 1; } C:\Users\xxx\OneDrive\Desktop\Selfmade\gamemodes\selfmade.pwn(14221) : error 010: invalid function or declaration Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 1 Error. -
Beitrag von Mister_Miguel ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: gefunden (). -
Moin,
hat jemand noch die TimestampToDate Funktion ? Die die ich gefunden habe hat leider keine Einrückung mehr (Beitrag von 2014).
MfG
-
Moin,
hat jemand noch die TimestampToDate Funktion ? Die die ich gefunden habe hat leider keine Einrückung mehr (Beitrag von 2014).
MfG
https://github.com/Agneese-Sai…er/filterscripts/gban.pwn
?
-
Hab ich auch schon probiert zeigt leider komplett andere Tage an also z.B. anstatt den 6.12 dann 11.10.
-
Hier das Original von Jochemd: https://pastebin.com/7LQB5Ki1
Bitte beachte, dass du in Zeile 89 das "month" zu "month-1" ändern musst, sonst gibt es im Dezember Probleme.
-
Moin,
Gibt es eine Möglichkeit an die Koordinaten eines Pickup's zu kommen?
Ich möchte wenn ein Benutzer in der Nähe eines Pickup's ist, etwas passiert.
Code
Alles anzeigennew pickup; public OnGameModeInit() { pickup = CreatePickup(Model, Type, X, Y, Z, Virtual World); return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { if (pickupid == pickup) { if (IsPlayerInRangeOfPoint(playerid, pickupX, pickupY, pickupZ)) { // etwas passiert } } return 1; }Prinzipiell will ich danach noch die Taste-Abfragen, aber dass ist erstmal nicht wichtig.
Wie kann ich ohne #define oder enum wo ich vorab alles initialisiere die Pickup-Daten abrufen?
Oder muss ich es alles per Code festlegen?
Grüße
-
Meine SAMP-Zeiten liegen zwar in der Vergangenheit, aber mir ist keine andere Variante bekannt.
Wirst wohl oder übel auf einen Array zurück greifen müssen (wenn kein anderer da eine andere Idee hat).

-
Alles anzeigen
Moin,
Gibt es eine Möglichkeit an die Koordinaten eines Pickup's zu kommen?
Ich möchte wenn ein Benutzer in der Nähe eines Pickup's ist, etwas passiert.
Code
Alles anzeigennew pickup; public OnGameModeInit() { pickup = CreatePickup(Model, Type, X, Y, Z, Virtual World); return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { if (pickupid == pickup) { if (IsPlayerInRangeOfPoint(playerid, pickupX, pickupY, pickupZ)) { // etwas passiert } } return 1; }Prinzipiell will ich danach noch die Taste-Abfragen, aber dass ist erstmal nicht wichtig.
Wie kann ich ohne #define oder enum wo ich vorab alles initialisiere die Pickup-Daten abrufen?
Oder muss ich es alles per Code festlegen?
Grüße
Du musst Model Type X Y Z Virtual word ersetzen.
-
Code
Alles anzeigen#define MAX_PICKUP_ENUM 15 enum E_PICKUP{ pID, Float:pPos[3], pInt, pVW } new PickupInfo[MAX_PICKUP_ENUM][E_PICKUP] = { {1, X, Y, Z, -1, -1}, {2, X, Y, Z, -1, -1}, {3, X, Y, Z, -1, -1}, }; OnGameModeInit: for(new i = 0; i < MAX_OICKUP_ENUM; i++) PickupInfo[i][pID] = CreatePickup(...); public OnPlayerPickUpPickup(playerid, pickupid) { for(new i = 0; i < MAX_PICKUP_ENUM; i++) { if(pickupid == PickupInfo[i][pID]) { if(IsPlayerInRangeOfPoint(playerid, 5.0, PickupInfo[i][pPox][0], PickupInfo[i][pPox][1], PickupInfo[i][pPox][2])) // hier passiert dann wenn er in diesem pickup ist} } return 1;}ACHTUNG: Das ist kein Final Code, das ist nur ein Anstoß wie der Code aussehen könnte. (Sehr wahrscheinlich wird der Code so 1:1 nicht Funktionieren)
// Edit
Bist schon bissel Lost, oder? xD
Ihm ist klar das er "X, Y, Z" und Co ersetzten muss, es ist ein Beispiel Code....
-
Alles anzeigenCode
Alles anzeigen#define MAX_PICKUP_ENUM 15 enum E_PICKUP{ pID, Float:pPos[3], pInt, pVW } new PickupInfo[MAX_PICKUP_ENUM][E_PICKUP] = { {1, X, Y, Z, -1, -1}, {2, X, Y, Z, -1, -1}, {3, X, Y, Z, -1, -1}, }; OnGameModeInit: for(new i = 0; i < MAX_OICKUP_ENUM; i++) PickupInfo[i][pID] = CreatePickup(...); public OnPlayerPickUpPickup(playerid, pickupid) { for(new i = 0; i < MAX_PICKUP_ENUM; i++) { if(pickupid == PickupInfo[i][pID]) { if(IsPlayerInRangeOfPoint(playerid, 5.0, PickupInfo[i][pPox][0], PickupInfo[i][pPox][1], PickupInfo[i][pPox][2])) // hier passiert dann wenn er in diesem pickup ist} } return 1;}ACHTUNG: Das ist kein Final Code, das ist nur ein Anstoß wie der Code aussehen könnte. (Sehr wahrscheinlich wird der Code so 1:1 nicht Funktionieren)
// Edit
Bist schon bissel Lost, oder? xD
Ihm ist klar das er "X, Y, Z" und Co ersetzten muss, es ist ein Beispiel Code....
Bin kein Hellseher das ich weiß ob ihm das klar ist wenn er sein Problem nicht deutlich erklärt, soll er auch nicht damit rechnen das man ihm weiterhelfen kann.
Und du brauchst eigentlich keine IsPlayerInRangOfPoint abfrage, da es die Pickupid nur einmal gibt und diese kann man nur an einem punkt aufsammeln. -
Hallo,
habe 3D Texte erstellt und die sollen Ping/FPS/Packetloss für andere Spieler anzeigen.
Funktioniert nicht wie gewollt und ohne SA:MP Wiki ist einfach alles scheiße, danke Kalkor.
Gibt's ja 3D Text Global und Player 3D Text, für die globalen gibt's Attach3DTextLabelToPlayer(Text3D:id, playerid, Float:OffsetX, Float:OffsetY, Float:OffsetZ) für die Player Variante finde ich leider nichts.
Wo liegt mein Fehler?
Code
Alles anzeigennew pFPS[MAX_PLAYERS], pDrunkLevelLast[MAX_PLAYERS], PlayerText3D:pInfos2[MAX_PLAYERS], bool:labelinfoscreated[MAX_PLAYERS]; public OnPlayerConnect(playerid) { labelinfoscreated[playerid] = false; printf("LabelInfoCreated = %i", labelinfoscreated[playerid]); #if defined ping_OnPlayerConnect return ping_OnPlayerConnect(playerid); #else return 1; #endif } public OnPlayerDisconnect(playerid, reason) { labelinfoscreated[playerid] = false; printf("LabelInfoCreated = %i", labelinfoscreated[playerid]); DeletePlayer3DTextLabel(playerid, pInfos2[playerid]); #if defined ping_OnPlayerDisconnect return ping_OnPlayerDisconnect(playerid,reason); #else return 1; #endif } public OnPlayerSpawn(playerid) { DeletePlayer3DTextLabel(playerid, pInfos2[playerid]); if(labelinfoscreated[playerid] == false) { labelinfoscreated[playerid] = true; pInfos2[playerid] = CreatePlayer3DTextLabel(playerid,"",-1 ,0.0,0.0,-0.7,15.0); } printf("LabelInfoCreated = %i", labelinfoscreated[playerid]); #if defined ping_OnPlayerSpawn return ping_OnPlayerSpawn(playerid); #else return 1; #endif } public OnPlayerDeath(playerid, killerid, reason) { if(labelinfoscreated[playerid] == true) { DeletePlayer3DTextLabel(playerid, pInfos2[playerid]); labelinfoscreated[playerid] = false; } printf("LabelInfoCreated = %i", labelinfoscreated[playerid]); #if defined ping_OnPlayerDeath return ping_OnPlayerDeath(playerid, killerid, reason); #else return 1; #endif } public OnPlayerUpdate(playerid) { new drunknew; drunknew = GetPlayerDrunkLevel(playerid); if (drunknew < 100) { SetPlayerDrunkLevel(playerid, 2000); } else { if (pDrunkLevelLast[playerid] != drunknew) { new wfps = pDrunkLevelLast[playerid] - drunknew; if ((wfps > 0) && (wfps < 200)) pFPS[playerid] = wfps; pDrunkLevelLast[playerid] = drunknew; } } if(IsPlayerConnected(playerid)) { new pInfosStr[90]; format(pInfosStr, sizeof pInfosStr, "{%06x}Ping: {FFFFFF}%d\n{%06x}FPS: {FFFFFF}%d\n{%06x}PL: {FFFFFF}%0.2f", GetPlayerColor(playerid) >>> 8, GetPlayerPing(playerid), GetPlayerColor(playerid) >>> 8, pFPS[playerid], GetPlayerColor(playerid) >>> 8, GetPlayerPacketLoss(playerid)); UpdatePlayer3DTextLabelText(playerid, pInfos2[playerid], 0xFFFFFFFF, pInfosStr); } #if defined ping_OnPlayerUpdate return ping_OnPlayerUpdate(playerid); #else return 1; #endif } -
Alles anzeigen
Hallo,
habe 3D Texte erstellt und die sollen Ping/FPS/Packetloss für andere Spieler anzeigen.
Funktioniert nicht wie gewollt und ohne SA:MP Wiki ist einfach alles scheiße, danke Kalkor.
Gibt's ja 3D Text Global und Player 3D Text, für die globalen gibt's Attach3DTextLabelToPlayer(Text3D:id, playerid, Float:OffsetX, Float:OffsetY, Float:OffsetZ) für die Player Variante finde ich leider nichts.
Wo liegt mein Fehler?
Code
Alles anzeigennew pFPS[MAX_PLAYERS], pDrunkLevelLast[MAX_PLAYERS], PlayerText3D:pInfos2[MAX_PLAYERS], bool:labelinfoscreated[MAX_PLAYERS]; public OnPlayerConnect(playerid) { labelinfoscreated[playerid] = false; printf("LabelInfoCreated = %i", labelinfoscreated[playerid]); #if defined ping_OnPlayerConnect return ping_OnPlayerConnect(playerid); #else return 1; #endif } public OnPlayerDisconnect(playerid, reason) { labelinfoscreated[playerid] = false; printf("LabelInfoCreated = %i", labelinfoscreated[playerid]); DeletePlayer3DTextLabel(playerid, pInfos2[playerid]); #if defined ping_OnPlayerDisconnect return ping_OnPlayerDisconnect(playerid,reason); #else return 1; #endif } public OnPlayerSpawn(playerid) { DeletePlayer3DTextLabel(playerid, pInfos2[playerid]); if(labelinfoscreated[playerid] == false) { labelinfoscreated[playerid] = true; pInfos2[playerid] = CreatePlayer3DTextLabel(playerid,"",-1 ,0.0,0.0,-0.7,15.0); } printf("LabelInfoCreated = %i", labelinfoscreated[playerid]); #if defined ping_OnPlayerSpawn return ping_OnPlayerSpawn(playerid); #else return 1; #endif } public OnPlayerDeath(playerid, killerid, reason) { if(labelinfoscreated[playerid] == true) { DeletePlayer3DTextLabel(playerid, pInfos2[playerid]); labelinfoscreated[playerid] = false; } printf("LabelInfoCreated = %i", labelinfoscreated[playerid]); #if defined ping_OnPlayerDeath return ping_OnPlayerDeath(playerid, killerid, reason); #else return 1; #endif } public OnPlayerUpdate(playerid) { new drunknew; drunknew = GetPlayerDrunkLevel(playerid); if (drunknew < 100) { SetPlayerDrunkLevel(playerid, 2000); } else { if (pDrunkLevelLast[playerid] != drunknew) { new wfps = pDrunkLevelLast[playerid] - drunknew; if ((wfps > 0) && (wfps < 200)) pFPS[playerid] = wfps; pDrunkLevelLast[playerid] = drunknew; } } if(IsPlayerConnected(playerid)) { new pInfosStr[90]; format(pInfosStr, sizeof pInfosStr, "{%06x}Ping: {FFFFFF}%d\n{%06x}FPS: {FFFFFF}%d\n{%06x}PL: {FFFFFF}%0.2f", GetPlayerColor(playerid) >>> 8, GetPlayerPing(playerid), GetPlayerColor(playerid) >>> 8, pFPS[playerid], GetPlayerColor(playerid) >>> 8, GetPlayerPacketLoss(playerid)); UpdatePlayer3DTextLabelText(playerid, pInfos2[playerid], 0xFFFFFFFF, pInfosStr); } #if defined ping_OnPlayerUpdate return ping_OnPlayerUpdate(playerid); #else return 1; #endif }Player 3D Text Label kannst du nicht Attachen.
Und wenn ich das richtig verstanden hab dann hast du da einen denkfehler drin.
Wenn du für andere Spieler Ping, FPS & Paketverlust anzeigen willst brauchst du ganz normale Text Label die du an den jeweiligen Spieler attached.
-
Okay, hab's jetzt umgestellt, kann Sie leider immer noch nicht sehen.
C
Alles anzeigen//Ping, FPS & Packetloss 3D Textlabel #include <a_samp> new pFPS[MAX_PLAYERS], pDrunkLevelLast[MAX_PLAYERS], Text3D:pInfos2[MAX_PLAYERS], bool:labelinfoscreated[MAX_PLAYERS]; public OnPlayerConnect(playerid) { labelinfoscreated[playerid] = false; printf("LabelInfoCreated = %i", labelinfoscreated[playerid]); #if defined ping_OnPlayerConnect return ping_OnPlayerConnect(playerid); #else return 1; #endif } public OnPlayerDisconnect(playerid, reason) { labelinfoscreated[playerid] = false; printf("LabelInfoCreated = %i", labelinfoscreated[playerid]); Delete3DTextLabel(pInfos2[playerid]); #if defined ping_OnPlayerDisconnect return ping_OnPlayerDisconnect(playerid,reason); #else return 1; #endif } public OnPlayerSpawn(playerid) { Delete3DTextLabel(pInfos2[playerid]); if(labelinfoscreated[playerid] == false) { labelinfoscreated[playerid] = true; pInfos2[playerid] = Create3DTextLabel("",-1 ,0.0,0.0,0.0,25.0,0, 1); Attach3DTextLabelToPlayer(pInfos2[playerid], playerid, 0.0, 0.0,-0.7); } printf("LabelInfoCreated = %i", labelinfoscreated[playerid]); printf("%i", GetPlayerVirtualWorld(playerid)); #if defined ping_OnPlayerSpawn return ping_OnPlayerSpawn(playerid); #else return 1; #endif } public OnPlayerDeath(playerid, killerid, reason) { if(labelinfoscreated[playerid] == true) { Delete3DTextLabel(pInfos2[playerid]); labelinfoscreated[playerid] = false; } printf("LabelInfoCreated = %i", labelinfoscreated[playerid]); #if defined ping_OnPlayerDeath return ping_OnPlayerDeath(playerid, killerid, reason); #else return 1; #endif } public OnPlayerUpdate(playerid) { new drunknew; drunknew = GetPlayerDrunkLevel(playerid); if (drunknew < 100) { SetPlayerDrunkLevel(playerid, 2000); } else { if (pDrunkLevelLast[playerid] != drunknew) { new wfps = pDrunkLevelLast[playerid] - drunknew; if ((wfps > 0) && (wfps < 200)) pFPS[playerid] = wfps; pDrunkLevelLast[playerid] = drunknew; } } if(IsPlayerConnected(playerid)) { new pInfosStr[90]; format(pInfosStr, sizeof pInfosStr, "{%06x}Ping: {FFFFFF}%d\n{%06x}FPS: {FFFFFF}%d\n{%06x}PL: {FFFFFF}%0.2f", GetPlayerColor(playerid) >>> 8, GetPlayerPing(playerid), GetPlayerColor(playerid) >>> 8, pFPS[playerid], GetPlayerColor(playerid) >>> 8, GetPlayerPacketLoss(playerid)); Update3DTextLabelText(pInfos2[playerid], 0xFFFFFFFF, pInfosStr); } #if defined ping_OnPlayerUpdate return ping_OnPlayerUpdate(playerid); #else return 1; #endif } -
Okay, hab's jetzt umgestellt, kann Sie leider immer noch nicht sehen.
C
Alles anzeigen//Ping, FPS & Packetloss 3D Textlabel #include <a_samp> new pFPS[MAX_PLAYERS], pDrunkLevelLast[MAX_PLAYERS], Text3D:pInfos2[MAX_PLAYERS], bool:labelinfoscreated[MAX_PLAYERS]; public OnPlayerConnect(playerid) { labelinfoscreated[playerid] = false; printf("LabelInfoCreated = %i", labelinfoscreated[playerid]); #if defined ping_OnPlayerConnect return ping_OnPlayerConnect(playerid); #else return 1; #endif } public OnPlayerDisconnect(playerid, reason) { labelinfoscreated[playerid] = false; printf("LabelInfoCreated = %i", labelinfoscreated[playerid]); Delete3DTextLabel(pInfos2[playerid]); #if defined ping_OnPlayerDisconnect return ping_OnPlayerDisconnect(playerid,reason); #else return 1; #endif } public OnPlayerSpawn(playerid) { Delete3DTextLabel(pInfos2[playerid]); if(labelinfoscreated[playerid] == false) { labelinfoscreated[playerid] = true; pInfos2[playerid] = Create3DTextLabel("",-1 ,0.0,0.0,0.0,25.0,0, 1); Attach3DTextLabelToPlayer(pInfos2[playerid], playerid, 0.0, 0.0,-0.7); } printf("LabelInfoCreated = %i", labelinfoscreated[playerid]); printf("%i", GetPlayerVirtualWorld(playerid)); #if defined ping_OnPlayerSpawn return ping_OnPlayerSpawn(playerid); #else return 1; #endif } public OnPlayerDeath(playerid, killerid, reason) { if(labelinfoscreated[playerid] == true) { Delete3DTextLabel(pInfos2[playerid]); labelinfoscreated[playerid] = false; } printf("LabelInfoCreated = %i", labelinfoscreated[playerid]); #if defined ping_OnPlayerDeath return ping_OnPlayerDeath(playerid, killerid, reason); #else return 1; #endif } public OnPlayerUpdate(playerid) { new drunknew; drunknew = GetPlayerDrunkLevel(playerid); if (drunknew < 100) { SetPlayerDrunkLevel(playerid, 2000); } else { if (pDrunkLevelLast[playerid] != drunknew) { new wfps = pDrunkLevelLast[playerid] - drunknew; if ((wfps > 0) && (wfps < 200)) pFPS[playerid] = wfps; pDrunkLevelLast[playerid] = drunknew; } } if(IsPlayerConnected(playerid)) { new pInfosStr[90]; format(pInfosStr, sizeof pInfosStr, "{%06x}Ping: {FFFFFF}%d\n{%06x}FPS: {FFFFFF}%d\n{%06x}PL: {FFFFFF}%0.2f", GetPlayerColor(playerid) >>> 8, GetPlayerPing(playerid), GetPlayerColor(playerid) >>> 8, pFPS[playerid], GetPlayerColor(playerid) >>> 8, GetPlayerPacketLoss(playerid)); Update3DTextLabelText(pInfos2[playerid], 0xFFFFFFFF, pInfosStr); } #if defined ping_OnPlayerUpdate return ping_OnPlayerUpdate(playerid); #else return 1; #endif }Du selber kannst Text Label die an dir attached sind nicht sehen, nur andere.
Wenn du dir selber diese Infos Anzeigen willst nimm halt einfach Textdraws.
-
Ich will die Labels ja auch anderen zeigen und nicht mir selbst -> funktioniert nicht.
-
Ich will die Labels ja auch anderen zeigen und nicht mir selbst -> funktioniert nicht.
Lade dir einfach das los Script runter da sollte denk ich so weit ich weis so eine Funktion drin sein unter UpdateAnzeigeWar oder so wenn das das ist was du meinst
-
-
Player 3D Text Label kannst du nicht Attachen.
Player3DTextLabel heißt das die playerid nur diesen sehen kann und doch diesen kannst du auch an einen Spieler Attachen heißt. Nur Playerid1 sieht diesen Label an z.b. Playerid2.

