[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
-
-
format(SpielerDaten[playerid][player_LastLoginZeit], 50, "%d:%d:%d",Time[0],Time[1],Time[2]);
Einfach:
format(SpielerDaten[playerid][player_LastLoginZeit], 50, "%02d:%02d:%02d",Time[0],Time[1],Time[2]);
hat jemand einen Plan was ich Flasch mache ?
Was heißt denn Bin am Blitzer vor?
Wieso stimmt das denn nicht?
Er blitzt doch nur auf einer Seite...wenn es die falsche Seite ist, dreh einfach den Winkel:
GetPlayerFacingAngle(playerid, pY);
pY = floatround(pY + 180.0) % 360; -
Ich hab folgendes Problem, wenn ich spawne lande ich am 0 Punkt und die Koordinaten werden nicht in die DB eingetragen, obwohl alles richtig zu sein scheint.
Code
Alles anzeigenpublic OnUserRegister(playerid) { SpielerDaten[playerid][player_ID] = cache_insert_id(); SpielerDaten[playerid][player_Eingeloggt] = true; SpielerDaten[playerid][player_Level] = 1; SpielerDaten[playerid][player_Spawn][0] = -2765.4102; SpielerDaten[playerid][player_Spawn][1] = 375.5445; SpielerDaten[playerid][player_Spawn][2] = 6.3359; SpielerDaten[playerid][player_Spawn][3] = 277.2229; printf("%f",SpielerDaten[playerid][player_Spawn][0]); SaveUserStats(playerid); new string[128]; format(string,sizeof(string),"{FFFFFF}Herzlich Willkommen auf Austrian Roleplay %s [%d]",SpielerDaten[playerid][player_Name],playerid); SendInfoMessage(playerid,string); SpawnPlayer(playerid); return 1; }
Codepublic OnPlayerSpawn(playerid) { SetPlayerPos(playerid, SpielerDaten[playerid][player_Spawn][0], SpielerDaten[playerid][player_Spawn][1], SpielerDaten[playerid][player_Spawn][2]); SetPlayerFacingAngle(playerid, SpielerDaten[playerid][player_Spawn][3]); SetPlayerInterior(playerid, SpielerDaten[playerid][player_Interior]); SetPlayerVirtualWorld(playerid, SpielerDaten[playerid][player_World]); SetCameraBehindPlayer(playerid); SetPlayerSkin(playerid, SpielerDaten[playerid][player_Skin]); return 1; }
-
Wird denn OnUserRegister sicher davor aufgerufen?
Was steht unter SaveUserStats?
Sagt crashdetect etwas?
-
Die Query bei SaveUserStats war zu kurz.
Jetzt werden die Datn in die DB eingetragen, jedoch spawne ich jetzt imer noch am 0 Punkt. -
Direkt danach?
Oder beim Einloggen?
printe mal die Werte unter OnPlayerSpawn.
Schau ob alles aufgerufen wird, wie sehen die Werte nach dem Register aus?
Veränderst du die?
Wird alles richtig geladen?
...wiiir können leider nicht hellsehen
-
Während dem Registrierungsvorgang falle ich und landeam 0 Punkt, wenn die Registrierung abgeschlossen ist lande ich ebenso am 0 Punkt.
SaveUserStats sieht so aus
CodeUPDATE `accounts` SET `Level` = '1', `Euro` = '0', `Cent` = '0', `Skin` = '78',`Admin` = '0', `SpawnX` = '132.000000',`SpawnY` = '-67.288498',`SpawnZ` = '1.578125',`SpawnR` = '-0.000000', `SpawnInt` = '0', `SpawnWorld` = '0', `LastLogin` = '14.02.2019', `LastLoginZeit` = '18:10:56' WHERE `ID` = '16'
Über kurze Hilfe am TS wäre ich sehr dankbar
Schau ob alles aufgerufen wird, wie sehen die Werte nach dem Register aus
Veränderst du die?Wird alles richtig geladen?
Wie meinst das?
-
Während dem Registrierungsvorgang falle ich und landeam 0 Punkt, wenn die Registrierung abgeschlossen ist lande ich ebenso am 0 Punkt.
SaveUserStats sieht so aus
CodeUPDATE `accounts` SET `Level` = '1', `Euro` = '0', `Cent` = '0', `Skin` = '78',`Admin` = '0', `SpawnX` = '132.000000',`SpawnY` = '-67.288498',`SpawnZ` = '1.578125',`SpawnR` = '-0.000000', `SpawnInt` = '0', `SpawnWorld` = '0', `LastLogin` = '14.02.2019', `LastLoginZeit` = '18:10:56' WHERE `ID` = '16'
Über kurze Hilfe am TS wäre ich sehr dankbar
Wie meinst das?
Wird SpielerDaten[playerid][player_Spawn] irgendwo erneut überschrieben?
Printe dir doch mal ob bei OnPlayerSpawn ob diese Variablen richtig sind. Setzt du sonst noch irgendwo die Position vom Spieler?
-
OnPlayerSpawn wird nicht aufgerufen
[19:01:11] 1: 132.000000
[19:01:11] 2: -67.290840
[19:01:11] 3: 1.578125
[19:01:11] 3: 0.000000Dassind die Werte von OnUserRegister
-
OnPlayerSpawn wird nicht aufgerufen
Wie OnPlayerSpawn wird nicht aufgerufen?
Wie soll er dann auch Spawnen?
Befindet er sich beim Register etwa im SpectateModus?
Dann schreib mal unter OnUserRegister, anstatt SpawnPlayer TogglePlayerSpectating(playerid, false);
Aber wirklich nur, wenn er im Spectate Modus ist.
Ansonsten, hast du irgendwo einen anderen Fehler, wenn das nicht aufgerufen wird...wie falsche Hooks o.ä.
-
-
SpactateModus scheint es wohl nicht zu sein.
Er fält ja bei registrierungsvorgangCode#include "../include/core/defines.inc" #include "../include/core/enums.inc" #include "../include/core/news.inc" #include "../include/core/basis.inc" #include "../include/core/stocks.inc" #include "../include/core/daten.inc" hier snd due publcs udn forwards #include "../include/core/dialoge.inc" #include "../include/core/befehle.inc" //Systeme #include "../include/systeme/anmeldesystem.inc" hier ist onplaerquestclass udn onplayer spawn drin
Code
Alles anzeigenpublic OnPlayerRequestClass(playerid) { if(!SpielerDaten[playerid][player_Eingeloggt]) { new query[128]; mysql_format(handle, query, sizeof(query), "SELECT `ID` FROM `accounts` WHERE `Name` = '%e'", SpielerDaten[playerid][player_Name]); mysql_pquery(handle, query, "OnUserCheck", "d", playerid); SetSpawnInfo(playerid,-1, 187, -2765.4102,375.5445,6.3359,277.2229, 0, 0, 0, 0, 0, 0); SetPlayerSkin(playerid,SpielerDaten[playerid][player_Skin]); SpawnPlayer(playerid); } return 1; }
Edit:
Mein LogCode
Alles anzeigen[19:21:35] OnPlayerSpawn [19:21:35] 1ops: 0.000000 [19:21:35] 2ops: 0.000000 [19:21:35] 3ops: 0.000000 [19:21:35] 3ops: 0.000000 [19:22:00] OnUserRegister [19:22:00] 1our: 0.000000 [19:22:00] 2our: 0.000000 [19:22:00] 3our: 0.000000 [19:22:00] 3our: 0.000000 [19:22:00] UPDATE `accounts` SET `Level` = '1', `Euro` = '0', `Cent` = '0', `Skin` = '78',`Admin` = '0', `SpawnX` = '132.000000',`SpawnY` = '-67.283760',`SpawnZ` = '1.578125',`SpawnR` = '-0.000000', `SpawnInt` = '0', `SpawnWorld` = '0', `LastLogin` = '14.02.2019', `LastLoginZeit` = '19:22:00' WHERE `ID` = '19' [19:22:00] OnPlayerSpawn [19:22:00] 1ops: 132.000000 [19:22:00] 2ops: -67.283760 [19:22:00] 3ops: 1.578125 [19:22:00] 3ops: 0.000000
-
Offensichtlich wird OnPlayerSpawn ...mit den richtigen Koordinaten aufgerufen...
wo ist jetzt dein Problem?
Wenn die Position nicht gesetzt wird...liegt es offenbar nicht daran, sondern, dass du sie danach wieder anders setzt oder so...
Keine Ahnung, was du da machst.
-
Habe es mal an 2 Blitzern aufprobiert.
Blitzer 1; Ich werde Geblitze wenn ich auf den Blitzer zufahre und wenn ich wegfahre von dem Blitzer.
Blitzer 2: Wenn ich auf den Blitzer zufahre Passiert nichts, bin ich daran vorbei werde ich geblitzt.sa-mp 015
sa-mp 016
So werde ich Geblitzt ( Blitzer 1 )so werde ich bei Blitzer 2 Geblitzt.
sa-mp 017 -
Problem wurde gelöst.
Code
Alles anzeigenstock SendRangeColorMessage(playerid,string[]) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); for(new i=GetPlayerPoolSize(),chat_color,Float:distance; i!=-1; i--) { if(!SpielerDaten[i][player_Eingeloggt] || !IsPlayerInRangeOfPoint(i, CHAT_RADIUS, x, y, z)) continue; distance = GetPlayerDistanceFromPoint(i, x, y, z); if(distance < CHAT_RADIUS / CHAT_FADES) { chat_color = COLOR_CHAT; } else if(distance < CHAT_RADIUS / CHAT_FADES * 2) { chat_color = COLOR_FADE1; } else if(distance < CHAT_RADIUS / CHAT_FADES * 3) { chat_color = COLOR_FADE2; } else if(distance < CHAT_RADIUS / CHAT_FADES * 4) { chat_color = COLOR_FADE3; } else if(distance <= CHAT_RADIUS / CHAT_FADES * 5) { chat_color = COLOR_FADE4; } SendClientToChat(chat_color,string,i); } return 1; }
Wie mache ich hier, dass sich nicht je weitrman weg ist die Nachricht farblich verändert sondern der Name?
@Kaliber -
Habe es mal an 2 Blitzern aufprobiert.
Habe doch gesagt, in der Funktion auch das GetPlayerFacingAngle austauschen mit GetVehicleZAngle...
Wie mache ich hier, dass sich nicht je weitrman weg ist die Nachricht farblich verändert sondern der Name?
Was meinst du damit?
Der Name ist doch das einzige was sich verfärbt...die Chat-Nachricht selbst ist doch schon immer weiß?!
-
Es sollte doch so sein, wenn ich was schreibe, dass die Farbe je weiter der andere Spieler von mir entfernt ist sich bei ihm die Farbe des Namens ändert. Dies ist aber bei uns nicht so.
-
Habe das System Jetzt so und es ist immernoch wie oben beschrieben
Codeif(IsPlayerFacingPos(playerid, 50.0, Blitzi[i][blitz_x], Blitzi[i][blitz_y])) { if(Blitztime[playerid] == 0 || Blitztime[playerid] > gettime()) { Blitz_Player(playerid); Blitztime[playerid] = gettime() + 60*15; } }
Code
Alles anzeigenIsPlayerFacingPos(playerid, Float: de, Float: X, Float: Y) { new Float: pX, Float: pY, Float: pZ ; if(GetPlayerPos(playerid, pX, pY, pZ)) { pX = -atan2(pX - X, pY - Y); if(pX < 0.0) { pX += 360.0; } GetVehicleZAngle(GetPlayerVehicleID(playerid), pY); pY = floatround(pY + 180.0) % 360; printf("pX = %f pY = %f", pX, pY); pX -= pY; if(pX < -180) { pX += 360.0; } else if(pX > 180.0) { pX -= 360.0; } printf("%f < %f < %f", -de, pX, de); return (-de < pX < de); } return false; }
-
Es sollte doch so sein, wenn ich was schreibe, dass die Farbe je weiter der andere Spieler von mir entfernt ist sich bei ihm die Farbe des Namens ändert. Dies ist aber bei uns nicht so.
Die Farbe..des Namens in der Chat-Nachricht...jaa..
Wie sind denn so deine defines von CHAT_RADIUS und CHAT_FADES und COLOR_FADE1 usw...
-
Die sind so:
#define COLOR_CHAT 0x505050DD
#define COLOR_FADE1 0x505050FF
#define COLOR_FADE2 0x50505095
#define COLOR_FADE3 0x50505060
#define COLOR_FADE4 0x50505032Edit: Das SendClientToChat
Code
Alles anzeigenstock SendClientToChat(color, string[], playerid = -1) { new count, length = 72; for(new i, l = strlen(string); i != l; i++) { if(string[i] == '{' && string[i+7] == '}')count += 8; } if(strlen(string) > (length+count)) { new text[2][152]; strmid(text[0], string, 0, length+count); strmid(text[1], string, length+count, strlen(string)); format(text[0], 152, "{FFFFFF}%s...", text[0]); format(text[1], 152, "...%s", text[1]); if(~playerid) { SendClientMessage(playerid, color, text[0]); SendClientMessage(playerid, color, text[1]); } else { SendClientMessageToAll(color, text[0]); SendClientMessageToAll(color, text[1]); } return 1; } if(~playerid) SendClientMessage(playerid, color, string); else SendClientMessageToAll(color, string); return 1; }
-
SendClientToChat
Ahhhhja...
ganz kurz nur zum Testen, verwende mal SendClientMessage, geht es dann?
-