Wird denn OnUserRegister sicher davor aufgerufen?
Was steht unter SaveUserStats?
Sagt crashdetect etwas?
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
UPDATE `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.000000
Dassind 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 registrierungsvorgang
#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
public 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;
}
Alles anzeigen
Edit:
Mein Log
[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
Alles anzeigen
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.
stock 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;
}
Alles anzeigen
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
if(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;
}
}
IsPlayerFacingPos(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;
}
Alles anzeigen
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 0x50505032
Edit: Das SendClientToChat
stock 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;
}
Alles anzeigen
SendClientToChat
Ahhhhja...
ganz kurz nur zum Testen, verwende mal SendClientMessage, geht es dann?
Ich hab jetzt mit SendClientMessage(i,chat_color,string); probiert, jedoch geht das leider auch nicht.
Habe das System Jetzt so und es ist immernoch wie oben beschrieben
Keine Ahnung, ich bin aktuell zu faul die Funktion selbst zu testen.
Kannst ja auch einfach sowas machen:
const Float:distance=5.0; //5m vor dem Blitzer wird er geblitzt
new Float:x = Blitzer[id][x] + distance * floatsin(-Blitzer[id][rotation], degrees);
new Float:y = Blitzer[id][y] + distance * floatcos(-Blitzer[id][rotation], degrees);
if(IsPlayerInRangeOfPoint(playerid,5.0,x,y,Blitzer[id][z]))
{
//Blitz
}
@Allrounder18
Ich hab nach mehr defines gefragt gehabt..lies nochmal genau..
Ich hab ne Lösung gefunden, wie es funktioniert.
Jedoch möchte ich nun haben, dass wenn die Zeile zu lange ist ein Umbruch kommt und in der näcsten Zeile der Text weitergeht.
public OnPlayerText(playerid, text[])
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
new text1[2][128],inputtext[128],msg[152];
if(strlen(inputtext) > 128)
{
strmid(text1[0],inputtext,0,127,128);
strmid(text1[1],inputtext,128,strlen(inputtext),128);
}
format(msg, 152, "%s sagt: {FFFFFF}%s...",RemoveUnderscore(SpielerDaten[playerid][player_RPName]), text1[0]);
format(msg, 152, "...%s",text1[1]);
new chat_color;
for(new i=0; i<MAX_PLAYERS; i++)
{
if(!SpielerDaten[playerid][player_Eingeloggt])continue;
if(!IsPlayerInRangeOfPoint(i, CHAT_RADIUS, x, y, z))continue;
new Float: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;
}
SendClientMessage(i, chat_color, msg);
}
return 0;
}
Alles anzeigen
So habe ich es versucht, jedoch kommt egal was ich schreibe nur ...