Danke Keine Fehler mehr, werde es gleich testen.
Jetzt will ich dir aber nochmal zurück helfen.
Auf der Seite von Bayside Life steht unter Immobilien "kleine, aber fReine Immobilien"
Crossline
Beiträge von Crossline
-
-
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_YES)
{
OnPlayerKeyStateChange(playerid,"/rv");
}
return 1;
}C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(5 [geändert]) : error 035: argument type mismatch (argument 2)
-
Eigentlich müsste das gehen, wenn du es richtig machst.
Pack diese .dll mal in dein System32 -
So klappt soweit Jetzt wollte ichs aber austauschen mit dem Reperaturkommando. Da kommt aber ein Fehler auf:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (PRESSED(KEY_YES))
{
if(strcmp(cmdtext, "/rv", true) == 0)
{
new vid = GetPlayerVehicleID(playerid);
RepairVehicle(vid);
return 1;
}
}
return 0;
}
C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(336) : error 017: undefined symbol "cmdtext" -
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
if (PRESSED(KEY_FIRE))
{
if(IsPlayerInAnyVehicle(playerid))
{
new currentveh;
new Float:angle;
currentveh = GetPlayerVehicleID(playerid);
GetVehicleZAngle(currentveh, angle);
SetVehicleZAngle(currentveh, angle);
SendClientMessage(playerid, 0xFFFFFFFF, "Dein Fahrzeug wurde gedreht.");
}
else
{
SendClientMessage(playerid, 0xFFFFFFFF, "Du bist in keinem Fahrzeug!");
}
return 1;
}
return 0;C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(356) : warning 209: function "OnPlayerKeyStateChange" should return a value
C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(356) : error 010: invalid function or declarationWas ist da falsch?
Und wie kann ich das Kommando nun mit L ausführen?
Danke für deine Hilfe :))
Crossline -
Ist das so richtig? Bekomme SEHR viele Fehlermeldungen
#include <a_samp>
#include <Dini>
#include <dudb>
#include <ocmd>
#include <Sscanf>
#define PRESSED(%0) \
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (PRESSED(KEY_FIRE))
{
if(IsPlayerInAnyVehicle(playerid))
{
new currentveh;
new Float:angle;
currentveh = GetPlayerVehicleID(playerid);
GetVehicleZAngle(currentveh, angle);
SetVehicleZAngle(currentveh, angle);
SendClientMessage(playerid, 0xFFFFFFFF, "Dein Fahrzeug wurde gedreht.");
return 1;
}
else
{
SendClientMessage(playerid, 0xFFFFFFFF, "Du bist in keinem Fahrzeug!");
}
return 1; -
Wie genau sieht das aus? Sorry, kann mir nicht vorstellen wie das gehen soll :x
if(strcmp(cmdtext, "/flip", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
new currentveh;
new Float:angle;
currentveh = GetPlayerVehicleID(playerid);
GetVehicleZAngle(currentveh, angle);
SetVehicleZAngle(currentveh, angle);
SendClientMessage(playerid, 0xFFFFFFFF, "Dein Fahrzeug wurde gedreht.");
return 1;
}
else
{
SendClientMessage(playerid, 0xFFFFFFFF, "Du bist in keinem Fahrzeug!");
return 1;
}Wie muss das da rein?
-
Ich habe ein Kommando "/flip" eingefügt. Wenn mein Wagen auf dem Rücken liegt wird er dadurch wieder umgedreht.
Geht es, dass man z.B. L drücken muss um den Wagen umzudrehen?
Crossline -
Haha, irgendwie logisch Danke
-
Vielen Dank! Hat geklappt!
Jetzt wollte ich noch ein Kommando "/up ID" einfügen, womit man Spieler nach oben versetzt.ocmd:up(playerid,params[])
{
new pID2; //Der Parameter wird in dieser Variable gespeichert
if(sscanf(params, "i", pID2))
{
return SendClientMessage(playerid,0xFFFFFFFF,"/up [Spieler-ID]"); //Hier wird eine Fehlermeldung ausgegeben, sollte kein Parameter eingegeben worden sein
}
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
SetPlayerPos(playerid,x,y,z+20.0);
SendClientMessage(pID2, 0xFFFFFFFF, "Du wurdest nach oben versetzt!"); //... und bekommt diese Message ausgegeben
return 1;
}
Bei /up kommt die Fehlermeldung, dass eine ID fehlt, das ist ja auch gut so.
Aber egal welche ID ich eingebe, immer werde ich hochversetzt. Warum? -
#include <a_samp>
#include <Dini>
#include <dudb>
#include <ocmd>
#include <Sscanf>public OnPlayerCommandText(playerid, cmdtext[])
{
ocmd:heal(playerid,params[])
{
new pID; //Der Parameter wird in dieser Variable gespeichert
if(sscanf(params, "i", pID))
{
return SendClientMessage(playerid,0xFFFFFFFF,"/heal [Spieler-ID 1]"); //Hier wird eine Fehlermeldung ausgegeben, sollte kein Parameter eingegeben worden sein
}
SetPlayerHealth(pID, 100); // Dieser Spieler wird gehealt ...
SendClientMessage(pID, 0xFFFFFFFF, "Du wurdest geheilt!"); //... und bekommt diese Message ausgegeben
return 1;
}
return 0;
} -
ocmd:heal(playerid,params[])
{
new pID; //Der Parameter wird in dieser Variable gespeichert
if(sscanf(params, "i", pID))
{
return SendClientMessage(playerid,0xFFFFFFFF,"/heal [Spieler-ID 1]"); //Hier wird eine Fehlermeldung ausgegeben, sollte kein Parameter eingegeben worden sein
}
SetPlayerHealth(pID, 100); // Dieser Spieler wird gehealt ...
SendClientMessage(pID, 0xFFFFFFFF, "Du wurdest geheilt!"); //... und bekommt diese Message ausgegeben
return 1;
}C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(1) : error 029: invalid expression, assumed zero
C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(1) : error 017: undefined symbol "ocmd_heal"
C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(1) : error 029: invalid expression, assumed zero
C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(1) : fatal error 107: too many error messages on one line// Die 1'en wurden geändert damit es verständlich ist
-
Ich hab ne ganz knappe Frage.
Ich habe ein Kommando mit dem man sich selbst healt
if(strcmp(cmdtext,"/heal",true)==0)
{
SetPlayerHealth(playerid, 100);
SendClientMessage(playerid, 0xFFFFFFFF, "Du wurdest geheilt!");
}
Wie kann man nun /heal Crossline oder /heal ID einfügen?
Crossline -
Mir auch ..
Hier mal alles was ich verändert habe, vielleicht findest du was.
Code #include <a_samp>
#include <Dini>
#include <dudb>Code //Spawn an gleicher Stelle nach Disconnect
new Float:positionx;
new Float:positiony;
new Float:positionz;
Code public OnPlayerConnect(playerid)
{
SpawnPlayer(playerid);
SendClientMessage(playerid,0x00A93CFF,"Herzlich Willkommen auf Crosslines GTA SA RL Server!");
new pfad[50], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));Code format(pfad,sizeof(pfad),"/scriptfiles/Crossline.ini",name);//hier ersetzt Du "%s" mit dem NamenCode SetSpawnInfo(playerid,0,dini_Int(pfad,"skin"),1765.6999511719, -1921.0999755859, 13.60000038147,212.2234,0,0,0,0,0,0);
LoadStats(playerid);
return 1;
}Code public OnPlayerDisconnect(playerid, reason)
{
new pfad[50], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));Code format(pfad,sizeof(pfad),"/scriptfiles/Crossline.ini",name);Code dini_IntSet(pfad,"skin",GetPlayerSkin(playerid));Code new Float:x;
new Float:y;
new Float:z;Code GetPlayerPos(playerid,x,y,z);
positionx = x;
positiony = y;
positionz = z;
if (!dini_Exists(FileStats(playerid)))
{
dini_Create(FileStats(playerid));
}Code SaveStats(playerid);
return 1;
}Code public OnPlayerSpawn(playerid)
{
SetPlayerPos(playerid,positionx,positiony,positionz);
return 1;
}Code public OnPlayerDeath(playerid, killerid, reason)
{
ForceClassSelection(playerid);
return 1;
}
Code Und ganz am Ende:
Player(playerid)
{
new player[MAX_PLAYER_NAME];
GetPlayerName(playerid, player, sizeof(player));
return player;
}
//
FileStats(playerid)
{
new a[256]; format(a, sizeof(a), "%s.ini",udb_encode(Player(playerid)));
return a;
}
SaveStats(playerid)
{
dini_IntSet(FileStats(playerid), "PositionX", floatround(positionx));
dini_IntSet(FileStats(playerid), "PositionY", floatround(positiony));
dini_IntSet(FileStats(playerid), "PositionZ", floatround(positionz));
}
LoadStats(playerid)
{
positionx = dini_Int(FileStats(playerid), "PositionX");
positiony = dini_Int(FileStats(playerid), "PositionY");
positionz = dini_Int(FileStats(playerid), "PositionZ");
} -
Ja, sie existiert, allerdings ohne einen Punkt "skin" oder ähnliches.
Was muss ich dir schicken, dass ich dir helfen kann?
Und was ist wenn (z.B.) User1 joint, seine Daten müssen ja in User1.ini gespeichert werden, nicht Crossline.ini -
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid,0x00A93CFF,"Herzlich Willkommen auf Crosslines GTA SA RL Server!");
new pfad[50], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));format(pfad,sizeof(pfad),"/scriptfiles/%s.ini",name);//hier ersetzt Du "%s" mit dem Namen
SetSpawnInfo(playerid,0,dini_Int(pfad,"skin"),1765.6999511719, -1921.0999755859, 13.60000038147,212.2234,0,0,0,0,0,0);
LoadStats(playerid);
SpawnPlayer(playerid);
return 1;
}public OnPlayerDisconnect(playerid, reason)
{
new pfad[50], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));format(pfad,sizeof(pfad),"/scriptfiles/%s.ini",name);
dini_IntSet(pfad,"skin",GetPlayerSkin(playerid));
new Float:x;
new Float:y;
new Float:z;GetPlayerPos(playerid,x,y,z);
positionx = x;
positiony = y;
positionz = z;
if (!dini_Exists(FileStats(playerid)))
{
dini_Create(FileStats(playerid));
}SaveStats(playerid);
return 1;
}public OnPlayerSpawn(playerid)
{
SetPlayerPos(playerid,positionx,positiony,positionz);
return 1;
}Bei diesem Code wird nichts in die ini geschrieben.
Wenn ich das %s in Crossline abändere kann es doch gar nicht mehr funktionieren wie ich will, oder?
Wir nehmen doch extra das %s damit es mit jedem User klappt? -
Habs implementiert + getestet, aber es wird nichts in die .ini geschrieben.
Noch irgendwelche fehler?public OnPlayerConnect(playerid)
{
SendClientMessage(playerid,0x00A93CFF,"Herzlich Willkommen auf Crosslines GTA SA RL Server!");
SetSpawnInfo(playerid,0,dini_Int("/scriptfiles/%s.ini","skin"),1765.6999511719, -1921.0999755859, 13.60000038147,212.2234,0,0,0,0,0,0);
LoadStats(playerid);
SpawnPlayer(playerid);
return 1;
}public OnPlayerDisconnect(playerid, reason)
{
new pfad[50], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));format(pfad,sizeof(pfad),"/scriptfiles/%s.ini",name);
dini_IntSet(pfad,"skin",GetPlayerSkin(playerid));
new Float:x;
new Float:y;
new Float:z;GetPlayerPos(playerid,x,y,z);
positionx = x;
positiony = y;
positionz = z;
if (!dini_Exists(FileStats(playerid)))
{
dini_Create(FileStats(playerid));
}SaveStats(playerid);
return 1;
}public OnPlayerSpawn(playerid)
{
SetPlayerPos(playerid,positionx,positiony,positionz);
return 1;
}Ich wollte mich noch mal bei dir bedanken, dass du dir so lange Zeit nimmst! Super
-
Okay, ich habe gerade den überblick verloren x:
Was mache ich falsch?
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid,0x00A93CFF,"Herzlich Willkommen auf Crosslines GTA SA RL Server!");
SetSpawnInfo(playerid,0,dini_Int(pfad,"skin"),1765.6999511719, -1921.0999755859, 13.60000038147,212.2234,0,0,0,0,0,0);
LoadStats(playerid);
SpawnPlayer(playerid);
return 1;
}public OnPlayerDisconnect(playerid, reason)
new pfad[50], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));format(pfad,sizeof(pfad),"/scriptfiles/%s.ini",name);
{
dini_IntSet(pfad,"skin",GetPlayerSkin(playerid));new Float:x;
new Float:y;
new Float:z;GetPlayerPos(playerid,x,y,z);
positionx = x;
positiony = y;
positionz = z;
if (!dini_Exists(FileStats(playerid)))
{
dini_Create(FileStats(playerid));
}SaveStats(playerid);
return 1;
}Code
Alles anzeigenC:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(94 - hier 4) : error 017: undefined symbol "pfad" C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(101 - hier 11) : error 003: declaration of a local variable must appear in a compound block C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(104 - hier 14) : error 021: symbol already defined: "format" C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(106 - hier 16) : error 021: symbol already defined: "dini_IntSet" C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(106 - ") : error 010: invalid function or declaration C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(106 -- 112 - hier 16 - 22) : error 021: symbol already defined: "GetPlayerPos" C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(106 -- 112 - ") : fatal error 107: too many error messages on one line Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 7 Errors.
-
Wie genau kann ich Pfad ersetzen?
Ich kann ja nicht (z.B.) Crossline.ini angeben, da es ja für alle Nutzer funktionieren muss.
Crossline -
In einer lokalen .ini, frag mich nicht, was das ist (dann ja nicht Mysql :D)
Die Positionen werden dort gespeichert in einer "Name.ini". Kann man weitere Parameter da einfach hinzufügen? (wie?)
Crossline