Das wird mit xy.xy gespeichert, weil es eine Float ist, da dir von samp her GetPlayerHealth immer eine Float zurück gibt. Ich würd das auch als Float lassen, da du sonst beim Einloggen probleme mit SetPlayerHealth und dem Integer bekommen könntest.
[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
-
-
Naja ich gebe ja nen Float vor ("Float:hp"), mit GetPlayerHealth(playerid, hp); müsste laut Definition doch die HP des Spielers in hp gespeichert werden, und die HP sind ja Float, d.h. sie müssten doch in dem Float:hp gespeichert werden, oder nicht? Und trotzdem wirds in der Datei nur als "Health=1.0000" abgespeichert, obwohl ich eigentlich volle HP hatte.
-
enum pInfo {
Skin,
float:lastX,
float:lastY,
float:lastZ,
lastjob,
float:Health,
float:Armour,
Geld
}new player[MAX_PLAYERS][pInfo];
player[playerid][lastX] = dini_Float(file, "lastX");
player[playerid][lastY] = dini_Float(file, "lastY");
player[playerid][lastZ] = dini_Float(file, "lastZ");
SetPlayerPos(playerid, player[playerid][lastX], player[playerid][lastX], player[playerid][lastX]);Kriege Tag Mismatch, in dem 2. Quellcode und ich komm ums verrecken nicht drauf, was der fehler ist.
player[playerid][lastX] = dini_Float(file, "lastX");
player[playerid][lastY] = dini_Float(file, "lastY");
player[playerid][lastZ] = dini_Float(file, "lastZ");
SetPlayerPos(playerid, player[playerid][lastX], player[playerid][lastX], player[playerid][lastZ]); -
public OnPlayerDisconnect(playerid, reason)
{
format(file, 128, "YSA/Accounts/%s.ini", GetName(playerid));
if(GetPVarInt(playerid, "Logged") == 1) {
dini_IntSet(file, "Geld", GetPlayerMoney(playerid));
new Float:hp, Float:arm;
GetPlayerHealth(playerid, hp);
GetPlayerArmour(playerid, arm);
dini_FloatSet(file, "Health", hp);
dini_FloatSet(file, "Armour", arm);
new Float:px, Float:py, Float:pz;
GetPlayerPos(playerid, px, py, pz);
dini_FloatSet(file, "lastX", px);
dini_FloatSet(file, "lastY", py);
dini_FloatSet(file, "lastZ", pz);
SetPVarInt(playerid, "Logged", 0);
}
return 1;
}wieso speichert er hier die Health mit 1.0000 ab, obwohl ich eigentlich mich mit 100 HP auslogge? das selbe bei armour auch.. errors hab ich keine, aber es geht trotzdem nicht iwie
Also paar Tests gemacht: Wenn ich volle HP habe (also 100), speichert er es mit 1.000 ab, habe ich aber 85 HP, speichert er es auch normal mit 85.000 ab, ich krieg die krise. xD
-
dann mach doch eifach GiveplayerMoney(-geld); und geld fragste ab wieviel geld er hat, und erstellst ne variable die dann in zehnerschritter erkannt (scheiß idee)
andere frage:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
if (isinwaesche[playerid] == 0)
{
if (!IsPlayerInRangeOfPoint(playerid,10.0,609.1162,-1511.0936,15.9790))
{
MoveObject(wassergate1, 615.37341308594, -1510.8579101563, 11.178580284119,0);
MoveObject(wassergate2, 615.32415771484, -1510.9470214844, 22.481658935547,0);
}
else
{
MoveObject(wassergate1, 615.37341308594, -1510.8579101563, 14.407376289368,0);
MoveObject(wassergate2, 615.32415771484, -1510.9470214844, 17.190818786621,0);
}
}
}
return 1;
}
tut sich nix warum?mfg multivan
-
if(newstate == PLAYER_STATE_DRIVER)
// zu
if(newstate & PLAYER_STATE_DRIVER)
// so müsste es gehen.
// Bekommste kein error bei der zeile "return 1;" ? -
Brauch /warn /ban und /kick Befehl mit gAdmin.Sollte Selfmade sein hoffe ihr könnt mir helfen.
MFG
EgoShooter -
Wir sind hier bei:
ZitatUnd nicht bei Scripting Wünsche.
Natürlich ist es Selfmade, meinse die GM's / FS's kommen einfach von nirgendwo? -
Brauch /warn /ban und /kick Befehl mit gAdmin.Sollte Selfmade sein hoffe ihr könnt mir helfen.
Hier deine Frage:Kann mir da einer bitte helfen ?
MFG
EgoShooter -
Brauch /warn /ban und /kick Befehl mit gAdmin.Sollte Selfmade sein hoffe ihr könnt mir helfen.
Hier deine Frage:Kann mir da einer bitte helfen ?
MFG
EgoShooterDu hast den Sinn dieses Threads nicht verstanden, es geht hier darum, dass man Fragen zu seinen eigenen Codeteilen stellen kann, wenn was nicht funktioniert, oder nicht so funktioniert, wie es soll.
-
-
also hier deine antowort: nein können wir nicht, weil wir kein scriptwunschtherad sind. such im showroom.
-
-- Hier wird der Name des Spielers abgefragt und der Name des Spielern auf Name geändern - es ändert sich nichts, da Name == Name ist.
Kannst du mir sagen, wie da denn was geändert wird?
Im Moment sieht der Command bei mir so aus:
//--------------Umbenennen----------------
if(strcmp(strget(cmdtext,0),"/rename",true) == 0)
{
if(!IsPlayerConnected(ziel))
{
SendClientMessage(playerid,COLOR_GREY,"Diesen Spieler gibt es nicht.");
return 1;
}
if(pInfo[playerid][admin] >= 7)
{
if(!strlen(strget(cmdtext,2)) || !strlen(strget(cmdtext,2)))
{
SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /rename [spielerid] [neuer Name]");
return 1;
}
new string[28];
new Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, sizeof(Name));
format(string,sizeof(string),"%s",Name);
SetPlayerName(playerid, string);
return 1;
}
else
{
SendClientMessage(playerid,COLOR_GRAD2,"Du darfst diesen Command nicht nutzen!");
}
return 1;
}Aber wie du schon geschrieben hast, wird da nichts geändert, was nicht so sein soll.
-
dcmd_rename(playerid, params[])
{
new id,name[25];
if(sscanf(params, "ds",id,name)) return SendClientMessage(playerid,FARBE,"HINWEIS: /rename [ID] [Name]");
if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,FARBE,"HINWEIS: Ungültige ID");
SetPlayerName(id, name);
return 1;
} -
Kannst du das mir auch an dem Beispiel machen, wie ich das oben gepostet hab? Von dcmd hab ich keine Ahnung :D.
/edit: Und es soll auf andere verwendbar sein, also nicht auf mich selbst.
-
Hi, ich wollte, dass man in das Krankenhaus teleportiert und 1,5 Sekunden eingefroren wird.
else if (PlayerToPointStripped(1, playerid,2033.9652,-1404.8622,17.2486, cx,cy,cz))
{
//Hospital enter
TogglePlayerControllable(playerid, 0);
SetTimer("UnfreezePlayer",1500,0);
GameTextForPlayer(playerid, "~w~County General Hospital",5000,1);
SetPlayerInterior(playerid,6);
SetPlayerFacingAngle(playerid, 0);
PlayerInfo[playerid][pInt] = 6;
SetPlayerPos(playerid, 1171.8793,-1335.3782,1006.4965);
}public UnfreezePlayer(playerid)
{
TogglePlayerControllable(playerid, 1);
}Aber im Krankenhaus werde ich nicht unfreezed?
-
-
SetTimerEx("UnfreezePlayer",1500,0,"d",playerid);
einfach mit deinem timer ersetzen -
Okay, danke
...\gamemodes\larp03.pwn(12904) : warning 225: unreachable code
1 Warning.if(gEngine[playerid] == 1) { return 1; }
new playerveh = GetPlayerVehicleID(playerid);
PutPlayerInVehicle(playerid, playerveh, 0);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* %s versucht, den Motor zu starten.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetTimerEx("StartingTheVehicle",1000,0,"i",playerid);
GameTextForPlayer(playerid, "~w~S",1,3);
gEngine[playerid] = 1;
return 1;
}
else
{
//GameTextForPlayer(playerid, "Dein Motor ist kaputt!", 5000, 6);
}if(engineOn[GetPlayerVehicleID(playerid)]) //12904
Was ist da falsch?
Ganzer CMD:
http://pastebin.com/6KHMiDAC -
if(gEngine[playerid] == 1)
{new playerveh = GetPlayerVehicleID(playerid);
PutPlayerInVehicle(playerid, playerveh, 0);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* %s versucht, den Motor zu starten.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetTimerEx("StartingTheVehicle",1000,0,"i",playerid);
GameTextForPlayer(playerid, "~w~S",1,3);
gEngine[playerid] = 1;
}
else
{
//GameTextForPlayer(playerid, "Dein Motor ist kaputt!", 5000, 6);
}und noch was ... wie soll das Bitte klappen ?
if(gEngine[playerid] == 1) { return 1; }
new playerveh = GetPlayerVehicleID(playerid);
PutPlayerInVehicle(playerid, playerveh, 0);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* %s versucht, den Motor zu starten.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetTimerEx("StartingTheVehicle",1000,0,"i",playerid);
GameTextForPlayer(playerid, "~w~S",1,3);
gEngine[playerid] = 1;
return 1;
}Erstens der Block ist ungültig zweitens würde "return" das ganze Abbrechen und der Funkion einen Wert übergeben ...
-
Gut zu wissen Danke