Wie erstellst du das Benutzerkonto beim Registrieren, und wie speicherst du den Spieler beim Verlassen des Servers?
Beiträge von Jeffry
-
-
Strings mit Platzhaltern müssen immer formatiert werden.
new str[32];
format(str, sizeof(str), "Maskierter %d", random(100));
MaskLabel[playerid] = Create3DTextLabel(str, 0x008080FF, 30.0, 40.0, 50.0, 40.0, 0); -
Die Fehlermeldung sollte im Server Log erscheinen, wenn du den Befehl eingibst.
-
Schaue dir dazu diese Funktion an:
https://wiki.sa-mp.com/wiki/Attach3DTextLabelToPlayerBeachte auch, dass du die Label-ID in eine Spielervariable speichern musst, sprich:
MaskLabel[playerid] = Create3DTextLabel(/*...*/);
Und beim Entfernen entsprechend löschen musst.
-
Versuche es mal andersherum, das wäre sowieso besser, auch wenn weitere Plätze dazu kommen, also so:
if(dialogid == DIALOG_GARAGE)
{
if(response)
{
if(listitem == 0)
{
// LSPD Hof
if(!IsPlayerInRangeOfPoint(playerid, 6.0, 1572.7601, -1646.0165, 13.5639/* LSPD Hof */))
{
SetPlayerPos(playerid, 1572.7601, -1646.0165, 13.5639);
CreateBox(playerid, "", "~w~Du ~g~bist~w~ nun am LSPD Hof.");
}
else SendClientMessage(playerid, COLOR_WHITE, "Du befindest dich {FF8484}bereits{FFFFFF} im LSPD Hof!");
}
if(listitem == 1)
{
// LSPD Heliplatz
if(!IsPlayerInRangeOfPoint(playerid, 6.0, 1549.0814, -1673.4092, 44.8531/* LSPD Heliplatz */))
{
SetPlayerPos(playerid, 1549.0814, -1673.4092, 44.8531);
CreateBox(playerid, "", "~w~Du ~g~bist~w~ nun am LSPD Heliplatz.");
}
else SendClientMessage(playerid, COLOR_WHITE, "Du befindest dich {FF8484}bereits{FFFFFF} im LSPD Heliplatz!");
}
if(listitem == 2)
{
// LSPD Präsidium
if(!IsPlayerInRangeOfPoint(playerid, 6.0, 1560.5579, -1689.9689, 25.5188/* LSPD Interior */))
{
SetPlayerPos(playerid, 1560.5579, -1689.9689, 25.5188);
CreateBox(playerid, "","~w~Du ~g~bist~w~ nun im LSPD Praesidium.");
}
else SendClientMessage(playerid, COLOR_WHITE, "Du befindest dich {FF8484}bereits{FFFFFF} im Präsidium!");
}
}
else SendClientMessage(playerid, COLOR_WHITE, "{FF8484}Abgebrochen{FFFFFF}.");
} -
Von selbst nicht, das musst du hinzufügen. Habe dir hier erklärt wie:
Du musst die Skin ID (GetPlayerSkin) sowie den Name in dem undercover-Befehl in eine Spielervariable speichern, und beim zurücksetzen dem Spieler wieder geben (SetPlayerSkin / SetPlayerName).
Versuche das mal umzusetzen.
-
Wie sieht denn dein Dialog dazu aus?
Denn eigentlich passt das alles so. -
Welcher Abschnitt ist denn mit "Dach" gemeint?
-
In Zeile 13 die Klammer umdrehen.
-
Kleiner Hinweis dazu noch:
Es ist nicht zu empfehlen die Deklaration einer Variable innerhalb einer Schleife zu machen, das kann unter Umständen zu Fehlern im Programmablauf führen.
Daher besser so:
public beispieltimer(playerid)
{
new str[2];
for(new i=1;i<5;i++)
{
format(str, sizeof(str), "%i", i);
SendClientMessageToAll(COLOR_RED,str);
}
return 1;
} -
und wen er aus swat rausgeht soll er wider sein Normalen namen bekommen und den skin was er hatte
Du musst die Skin ID (GetPlayerSkin) sowie den Name in dem undercover-Befehl in eine Spielervariable speichern, und beim zurücksetzen dem Spieler wieder geben (SetPlayerSkin / SetPlayerName).
wie lasse ich sein Namen Cangen auf Agent (randomzahl)
new name[MAX_PLAYER_NAME], c;
NOCHMAL_NAME:
c++;
if(c > 1000) return SendClientMessage(playerid, 0xFF0000FF, "Error: Nicht möglich.");
format(name, MAX_PLAYER_NAME, "Agent_%d", random(100000));
if(ReturnPlayerID(name) != INVALID_PLAYER_ID) goto NOCHMAL_NAME;
SetPlayerName(playerid, name); -
giveplayerid = ReturnUser(tmp);
zu:
giveplayerid = ReturnUser(params);Dann entferne das "tmp" bei "new..." und setze vor die letzte Klammer-Zu am Ende des Befehls ein return 1 hin.
-
if(!IsPlayerInRangeOfPoint(playerid,4.0,255.0789,77.4782,1003.6406) || IsPlayerInRangeOfPoint(playerid,4.0,197.8206,168.2515,1003.0234) || IsPlayerInRangeOfPoint(playerid,4.0,225.0941,121.8315,999.0803)) return SendClientMessage(playerid, COLOR_RED, "Du bist nicht am Punkt um Undercover zu gehen!");
zu:
if(!IsPlayerInRangeOfPoint(playerid,4.0,255.0789,77.4782,1003.6406) && !IsPlayerInRangeOfPoint(playerid,4.0,197.8206,168.2515,1003.0234) && !IsPlayerInRangeOfPoint(playerid,4.0,225.0941,121.8315,999.0803)) return SendClientMessage(playerid, COLOR_RED, "Du bist nicht am Punkt um Undercover zu gehen!");Wie kann ich machen wen der Spieler "/skin 0" eingibt sein Skin wider erhält?
Du musst die Skin ID (GetPlayerSkin) in dem undercover-Befehl in eine Spielervariable speichern, und bei /skin 0 dem Spieler wieder geben.
-
-
Hier ist eine 179 zu viel:
IsPlayerInRangeOfPoint(playerid,4.0,322.2144,302.7917,999.1484,179)
zu:
IsPlayerInRangeOfPoint(playerid,4.0,322.2144,302.7917,999.1484) -
Das Problem ist die Länge der Zeile.
Versuche es so:
ocmd:heal(playerid)
{
if(IsPlayerInFrac(playerid,1) || IsPlayerInFrac(playerid,2) || IsPlayerInFrac(playerid,3))
{
if(IsPlayerInRangeOfPoint(playerid,4.0,255.0789,77.4782,1003.6406) || IsPlayerInRangeOfPoint(playerid,4.0,197.8206,168.2515,1003.0234) || IsPlayerInRangeOfPoint(playerid,4.0,225.0941,121.8315,999.0803))
{
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,100);
}
}
else if(IsPlayerInFrac(playerid,6) || IsPlayerInFrac(playerid,7) || IsPlayerInFrac(playerid,8) || IsPlayerInFrac(playerid,9) || IsPlayerInFrac(playerid,13) ||
IsPlayerInFrac(playerid,14) || IsPlayerInFrac(playerid,18) || IsPlayerInFrac(playerid,23) || IsPlayerInFrac(playerid,24) || IsPlayerInFrac(playerid,4))
{
if(IsPlayerInRangeOfPoint(playerid,4.0,2324.4922,-1149.0463,1050.7101) || IsPlayerInRangeOfPoint(playerid,4.0,2807.6880,-1174.2935,1025.5703) ||
IsPlayerInRangeOfPoint(playerid,4.0,318.6295,1115.3989,1083.8828) || IsPlayerInRangeOfPoint(playerid,4.0,2807.6880,-1174.2935,1025.5703) ||
IsPlayerInRangeOfPoint(playerid,4.0,1494.4487,1304.0544,1093.2891) || IsPlayerInRangeOfPoint(playerid,4.0,140.3376,1366.1144,1083.4369) ||
IsPlayerInRangeOfPoint(playerid,4.0,1261.3036,-785.4796,1091.9063) || IsPlayerInRangeOfPoint(playerid,4.0,-2636.7258,1402.9813,906.4609) ||
IsPlayerInRangeOfPoint(playerid,4.0,-2636.7258,1402.9813,906.4609) || IsPlayerInRangeOfPoint(playerid,4.0,-308.4424,1538.4647,75.5625) ||
IsPlayerInRangeOfPoint(playerid,4.0,2324.4922,-1149.0463,1050.7101) || IsPlayerInRangeOfPoint(playerid,4.0,322.2144,302.7917,999.1484,179))
{
SetPlayerHealth(playerid,100);
}
}
return 1;
} -
ocmd:heal(playerid)
{
if(IsPlayerInFrac(playerid,1) || IsPlayerInFrac(playerid,2) || IsPlayerInFrac(playerid,3))
{
if(IsPlayerInRangeOfPoint(playerid,4.0,255.0789,77.4782,1003.6406) || IsPlayerInRangeOfPoint(playerid,4.0,197.8206,168.2515,1003.0234) || IsPlayerInRangeOfPoint(playerid,4.0,225.0941,121.8315,999.0803))
{
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,100);
}
}
else if(IsPlayerInFrac(playerid,ANDERE_ID))
{
if(IsPlayerInRangeOfPoint(playerid,4.0,WOANDERS_KOORDINATEN))
{
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,100);
}
}
return 1;
} -
Versuche es so:
stock CreateMapIcon(markerid,Float:x,Float:y,Float:z,mapicon = MAPICON_GLOBAL){
new valuemapicon;
LOOP(MAX_MAPICONS,i){
if(MapIconData[i][mapicon_id] != 0) continue; //Damit nur ein freier Index gefunden wird
MapIconData[i][mapicon_id] = i + 1;
MapIconData[i][mapicon_x] = x;
MapIconData[i][mapicon_y] = y;
MapIconData[i][mapicon_z] = z;
MapIconData[i][mapicon_markerid] = markerid;
MapIconData[i][mapicon_type] = mapicon;
MapIconData[i][mapicon_timer] = SetTimerEx("UpdateMapIcon",20000,1,"i",i);
valuemapicon = MapIconData[i][mapicon_id];
break; //Beenden der Schleife, wenn ein freier Index gefunden wurde
}
return valuemapicon;
}Function UpdateMapIcon(id){
LOOP(MAX_PLAYERS,i){
if(IsPlayerConnected(i)){
SetPlayerMapIcon(i, id,MapIconData[id][mapicon_x], MapIconData[id][mapicon_y], MapIconData[id][mapicon_z], MapIconData[id][mapicon_markerid], 0, MapIconData[id][mapicon_type]); //Hier hattest du im Index 2x "i" anstatt "id"
}
}
return 1;
} -
ocmd:heal(playerid)
{
if(SpielerInfo[playerid][Gang] == GANG_MAFIA)
{
if(IsPlayerInRangeOfPoint(playerid,4.0,255.0789,77.4782,1003.6406) || IsPlayerInRangeOfPoint(playerid,4.0,197.8206,168.2515,1003.0234) || IsPlayerInRangeOfPoint(playerid,4.0,225.0941,121.8315,999.0803))
{
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,100);
}
}
return 1;
}
Die Variable in der Abfrage musst du natürlich entsprechend deinem System anpassen. -
ich bin dabei ein /lock befehl zu machen klappt soweit auch. Bisauf wenn ich nicht mehr im Radius von einem Fahrzeug bin gibt er mir eine Meldung Unknow Command
Erstelle in deinem /pawno/ Ordner bitte eine Datei "pawn.cfg" und schreibe dort "-d3" rein (ohne Anführungszeichen).
Dann öffne die /pawno/pawno.exe und öffne über "Öffnen" deinen Code und kompiliere ihn.Starte dann den Server wieder und reproduziere den Fehler. Poste die dann erscheinende Meldung nochmal, und, wenn du es siehst, die entsprechende Zeile Code dazu (bzw. ein paar Zeilen).