Guten Tag,
immer wenn ich mich zu einem Spieler porte, der im LSPD ist , fliege ich über die Map.
Wenn ich einen aus dem Interior porte, muss ich entweder immer sein vworld ändern oder ich muss ihn spawnen.
Kann mir jemand helfen?
Befehle:
if(strcmp(cmd, "/goto", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /goto [playerid/PartOfName]"); return 1; } new Float:plocx,Float:plocy,Float:plocz; new plo; plo = ReturnUser(tmp); if(IsPlayerConnected(plo)) { if(plo != INVALID_PLAYER_ID) { if(PlayerInfo[playerid][pAdmin] >= 1) { if(Spectate[playerid] != 255) { Spectate[playerid] = 256; } GetPlayerPos(plo, plocx, plocy, plocz); if (GetPlayerState(playerid) == 2) { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, plocx, plocy+4, plocz); TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0; } else { SetPlayerPos(playerid,plocx,plocy+2, plocz); SetPlayerInterior(playerid,GetPlayerInterior(plo)); // Unter SetPlayerPos Setzen (falls du nicht pID hast durch was andares ersetzen! (nicht playerid!) SetPlayerInterior(playerid,GetPlayerInterior(playerid)); } PlayerInfo[playerid][pLocal] = PlayerInfo[plo][pLocal]; PlayerInfo[playerid][pInt] = PlayerInfo[plo][pInt]; SetPlayerInterior(playerid,PlayerInfo[plo][pInt]); SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(plo)); SendClientMessage(playerid, COLOR_GRAD1, "Du hast dich Teleportiert."); GetPlayerName(plo, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); if(PlayerInfo[playerid][pAdmin] >= 2000) { } else { format(string, sizeof(string), "%s hat sich zu %s geportet.", sendername, giveplayer); ABroadCast(0x00F5FFFF,string,4); } } else { SendClientMessage(playerid, COLOR_GRAD1, "Du bist nicht befugt!"); } } }
if(strcmp(cmd, "/gethere", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /gethere [Spieler ID]"); return 1; } new Float:plocx,Float:plocy,Float:plocz; new plo; plo = ReturnUser(tmp); if (IsPlayerConnected(plo)) { if(plo != INVALID_PLAYER_ID) { if (PlayerInfo[playerid][pAdmin] >= 1) { GetPlayerPos(playerid, plocx, plocy, plocz); if (GetPlayerState(plo) == 2) { TelePos[plo][0] = 0.0; TelePos[plo][1] = 0.0; new tmpcar = GetPlayerVehicleID(plo); SetVehiclePos(tmpcar, plocx, plocy+4, plocz); } else { SetPlayerPos(plo,plocx,plocy+2, plocz); SetPlayerInterior(playerid,GetPlayerInterior(playerid)); } PlayerInfo[plo][pLocal] = PlayerInfo[playerid][pLocal]; PlayerInfo[plo][pInt] = PlayerInfo[playerid][pInt]; SetPlayerInterior(plo,PlayerInfo[playerid][pInt]); SetPlayerVirtualWorld(plo,GetPlayerVirtualWorld(playerid)); GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "%s hat %s zu sich geportet.", sendername,giveplayer); ABroadCast(0x00F5FFFF,string,4); } else { SendClientMessage(playerid, COLOR_GRAD1, "Du bist nicht befugt!"); } } } else { format(string, sizeof(string), "%d ist kein Aktiver Spieler.", plo); SendClientMessage(playerid, COLOR_GRAD1, string); } } return 1; }
-
-
versuch mal das hier
das ist alles via interrior und co.ocmd:goto(playerid,params[])
{
if(SpielerInfo[playerid][pAdmin]>=1)
{
new pID;
if(sscanf(params, "u", pID))
{
return SendClientMessage(playerid,cRed,"/goto [Playerid]");
}
if(!IsPlayerConnected(pID))
{
return SendClientMessage(playerid,cRed,"Kein Spieler mit angegebener ID Online");
}
else
{
new Float:x, Float:y, Float:z;
GetPlayerPos(pID, x, y, z);
SetPlayerPos(playerid, x+2, y+2, z+2);
new pint = GetPlayerInterior(pID);
SetPlayerInterior(playerid, pint);
if(IsPlayerInAnyVehicle(playerid))
{
new plveh = GetPlayerVehicleID(playerid);
SetVehiclePos(plveh, x+2, y+2, z+2);
PutPlayerInVehicle(playerid, plveh, 0);
}
new name[MAX_PLAYER_NAME], string[128];
GetPlayerName(pID, name, sizeof(name));
format(string, sizeof(string), "Du hast dich zu %s geportet.", name );
SendClientMessage(playerid, cGreen, string);
}
}
else
{
SendClientMessage(playerid,cRed,"Diesen Befehl kannst du nicht nutzen. Mindestens benötigter Rang: {00FF5A}Supporter");
}
return 1;
}ocmd:gethere(playerid,params[])
{
if(SpielerInfo[playerid][pAdmin]>=1)
{
new pID;
if(sscanf(params, "u", pID))
{
return SendClientMessage(playerid,cRed,"Benutzung: /gethere [Playerid]");
}
if(!IsPlayerConnected(pID))
{
return SendClientMessage(playerid,cRed,"Kein Spieler mit angegebener ID Online");
}
else
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
SetPlayerPos(pID, x+2, y+2, z+2);
new admint = GetPlayerInterior(playerid);
SetPlayerInterior(pID, admint);
new aname[MAX_PLAYER_NAME], string2[128];
GetPlayerName(playerid, aname, sizeof(aname));
format(string2, sizeof(string2), "[AdmCmd] Du wurdest von %s zu sich teleportiert.", aname);
SendClientMessage(pID, cRed, string2);
new name[MAX_PLAYER_NAME], string[128];
GetPlayerName(pID, name, sizeof(name));
format(string, sizeof(string), "Du hast %s zu dir teleportiert.", name );
SendClientMessage(playerid, cGreen, string);
}
}
else
{
SendClientMessage(playerid,cRed,"Diesen Befehl kannst du nicht nutzen. Mindestens benötigter Rang: {00FF5A}Supporter");
}
return 1;
} -
Hi versuch es mal mit SetPlayerInterior(playerid,6);
Wen es ned geht sag mal ob du errors hast
-
bei meinen befehl frag er erst nach in welchen interior der user ist, dann setzt er den darein mach es so wie ich es hab dann kannst du alle interriors nurtzen nicht wie es andere machen nur für 1 interrior...
-
Hi versuch es mal mit SetPlayerInterior(playerid,6);Wen es ned geht sag mal ob du errors hast
Auch bei /gethere?
PS: Kommen keine Errrors -
Hi versuch es mal mit SetPlayerInterior(playerid,6);
Wen es ned geht sag mal ob du errors hast
der hat keine errors...wenn man sich halt Portet kommt man ins Interior dann muss man immer setint machen oder halt spawnen.
Ich habe letztens so ein Befehl gebastel das wenn man sich Portet das int sich auch ändert, hat aber bei mir nicht FUnktioniert. -
Auf anderen Servern, wie z.B Nova müssen die auch nichts machen, klappt irgendwie
-
versuch mal das hier
das ist alles via interrior und co.ocmd:goto(playerid,params[])
{
if(SpielerInfo[playerid][pAdmin]>=1)
{
new pID;
if(sscanf(params, "u", pID))
{
return SendClientMessage(playerid,cRed,"/goto [Playerid]");
}
if(!IsPlayerConnected(pID))
{
return SendClientMessage(playerid,cRed,"Kein Spieler mit angegebener ID Online");
}
else
{
new Float:x, Float:y, Float:z;
GetPlayerPos(pID, x, y, z);
SetPlayerPos(playerid, x+2, y+2, z+2);
new pint = GetPlayerInterior(pID);
SetPlayerInterior(playerid, pint);
if(IsPlayerInAnyVehicle(playerid))
{
new plveh = GetPlayerVehicleID(playerid);
SetVehiclePos(plveh, x+2, y+2, z+2);
PutPlayerInVehicle(playerid, plveh, 0);
}
new name[MAX_PLAYER_NAME], string[128];
GetPlayerName(pID, name, sizeof(name));
format(string, sizeof(string), "Du hast dich zu %s geportet.", name );
SendClientMessage(playerid, cGreen, string);
}
}
else
{
SendClientMessage(playerid,cRed,"Diesen Befehl kannst du nicht nutzen. Mindestens benötigter Rang: {00FF5A}Supporter");
}
return 1;
}ocmd:gethere(playerid,params[])
{
if(SpielerInfo[playerid][pAdmin]>=1)
{
new pID;
if(sscanf(params, "u", pID))
{
return SendClientMessage(playerid,cRed,"Benutzung: /gethere [Playerid]");
}
if(!IsPlayerConnected(pID))
{
return SendClientMessage(playerid,cRed,"Kein Spieler mit angegebener ID Online");
}
else
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
SetPlayerPos(pID, x+2, y+2, z+2);
new admint = GetPlayerInterior(playerid);
SetPlayerInterior(pID, admint);
new aname[MAX_PLAYER_NAME], string2[128];
GetPlayerName(playerid, aname, sizeof(aname));
format(string2, sizeof(string2), "[AdmCmd] Du wurdest von %s zu sich teleportiert.", aname);
SendClientMessage(pID, cRed, string2);
new name[MAX_PLAYER_NAME], string[128];
GetPlayerName(pID, name, sizeof(name));
format(string, sizeof(string), "Du hast %s zu dir teleportiert.", name );
SendClientMessage(playerid, cGreen, string);
}
}
else
{
SendClientMessage(playerid,cRed,"Diesen Befehl kannst du nicht nutzen. Mindestens benötigter Rang: {00FF5A}Supporter");
}
return 1;
}mensch leute die Lösung ist das hier -.-
nimmt das und probiert es es klappt 1A
egal welche interrior ID der spieler ist er geht dahin und auch /gethere ist genau so aufgebaut -
ich benutze kein ocmd, kommen errrors
-
ja umschreiben musst du es ja auch selber..
statt ocmd deine if abfragen
//edit
aber hier zum schlau werdenif(strcmp(cmd, "/goto", true) == 0)
{
if(SpielerInfo[playerid][pAdmin]>=1)
{
new pID;
if(sscanf(params, "u", pID))
{
return SendClientMessage(playerid,cRed,"/goto [Playerid]");
}
if(!IsPlayerConnected(pID))
{
return SendClientMessage(playerid,cRed,"Kein Spieler mit angegebener ID Online");
}
else
{
new Float:x, Float:y, Float:z;
GetPlayerPos(pID, x, y, z);
SetPlayerPos(playerid, x+2, y+2, z+2);
new pint = GetPlayerInterior(pID);
SetPlayerInterior(playerid, pint);
if(IsPlayerInAnyVehicle(playerid))
{
new plveh = GetPlayerVehicleID(playerid);
SetVehiclePos(plveh, x+2, y+2, z+2);
PutPlayerInVehicle(playerid, plveh, 0);
}
new name[MAX_PLAYER_NAME], string[128];
GetPlayerName(pID, name, sizeof(name));
format(string, sizeof(string), "Du hast dich zu %s geportet.", name );
SendClientMessage(playerid, cGreen, string);
}
}
else
{
SendClientMessage(playerid,cRed,"Diesen Befehl kannst du nicht nutzen. Mindestens benötigter Rang: {00FF5A}Supporter");
}
return 1;
}if(strcmp(cmd, "/gethere", true) == 0)
{
if(SpielerInfo[playerid][pAdmin]>=1)
{
new pID;
if(sscanf(params, "u", pID))
{
return SendClientMessage(playerid,cRed,"Benutzung: /gethere [Playerid]");
}
if(!IsPlayerConnected(pID))
{
return SendClientMessage(playerid,cRed,"Kein Spieler mit angegebener ID Online");
}
else
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
SetPlayerPos(pID, x+2, y+2, z+2);
new admint = GetPlayerInterior(playerid);
SetPlayerInterior(pID, admint);
new aname[MAX_PLAYER_NAME], string2[128];
GetPlayerName(playerid, aname, sizeof(aname));
format(string2, sizeof(string2), "[AdmCmd] Du wurdest von %s zu sich teleportiert.", aname);
SendClientMessage(pID, cRed, string2);
new name[MAX_PLAYER_NAME], string[128];
GetPlayerName(pID, name, sizeof(name));
format(string, sizeof(string), "Du hast %s zu dir teleportiert.", name );
SendClientMessage(playerid, cGreen, string);
}
}
else
{
SendClientMessage(playerid,cRed,"Diesen Befehl kannst du nicht nutzen. Mindestens benötigter Rang: {00FF5A}Supporter");
}
return 1;
} -
-
Kommt ein Error:
error 017: undefined symbol "params"
-
Du brauchst scanf..
-
breadfish.de
Hat das Thema geschlossen.