Hey Ho
ich brauche hifle und zwar soll eine teleport befehl /auf & /ab nur an einem bestimmten punkt gehen also /auf nur in nem ICON und /ab auch nur in nem ICON und nicht das man sich von überall dahin porten kann
MFG: Nico Porath
Hey Ho
ich brauche hifle und zwar soll eine teleport befehl /auf & /ab nur an einem bestimmten punkt gehen also /auf nur in nem ICON und /ab auch nur in nem ICON und nicht das man sich von überall dahin porten kann
MFG: Nico Porath
in deinem befehl musst du dann PlayerToPoint benutzen hoffe du weist was es ist...
wenn nicht poste dein command
also
ungefähr so soll der aussehen
if (strcmp("/Ganginfo4", cmdtext, true, 10) == 0)
{
setplayerpos blablabla
sendclientmessage "du bist nun da und da
also halt nur richtig
kannst du mir sagen wo ich playertopoint einfügen muss ?
if (strcmp("/Ganginfo4", cmdtext, true, 10) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerToPoint(6.0,playerid,207.5627,-103.7291,1005.2578)) // mit deiner position ändern wo es benutz werden soll
SetPlayerPos(playerid, x,y,z); // x,y,z durch position ändern wohin er geportet werden soll
SendClientMessage(playerid, COLOR_PURPLE , "Du bist nun da ");
}
return 1;
}
solltest du wegen dem abstand am rand erros bekommen mach das oben rein
#pragma tabsize 0
if (strcmp("/Ganginfo4", cmdtext, true, 10) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerToPoint(6.0,playerid,207.5627,-103.7291,1005.2578)) // mit deiner position ändern wo es benutz werden soll
SetPlayerPos(playerid, x,y,z); // x,y,z durch position ändern wohin er geportet werden soll
SendClientMessage(playerid, COLOR_PURPLE , "Du bist nun da ");
}
return 1;
}
du musst aber auch
PlayerToPoint Definiert haben
wie definiere ich plaertopoint das mcaht mir auch stress
so
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
und unter OnGameModeInit
public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
//printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
}
return 0;
}
nur das zu forwards einfügen?
hab oben noch was editier^^ so müsste es gehen bei mir klappts jedenfalls
wie geht das wenn ich nur durch ICON laufe das ich schon zu einem anderen punkt geportet werde ohne CMD ?
edit: oder das ein text kommt mit /auf bzw. /ab ?
Zitat#pragma tabsize 0
Ja, ist okay... aber ich mein mal. Wenn alles so auf gut deutsch gesagt "scheiße" aussieht. verliert man den überblick. Dann entstehen bugs. Sieht unordentlich aus. Und ....
I think its nooblike...
Lieber überarbeiten und das dann sauber und schön in der pawno datei drin haben. als alles vollgemüllt.
LG SureShot
C:\Dokumente und Einstellungen\Administrator\Desktop\Army_Fahrschule.pwn(44) : error 029: invalid expression, assumed zero
C:\Dokumente und Einstellungen\Administrator\Desktop\Army_Fahrschule.pwn(44) : error 017: undefined symbol "radi"
C:\Dokumente und Einstellungen\Administrator\Desktop\Army_Fahrschule.pwn(46) : error 017: undefined symbol "playerid"
C:\Dokumente und Einstellungen\Administrator\Desktop\Army_Fahrschule.pwn(50) : error 017: undefined symbol "playerid"
C:\Dokumente und Einstellungen\Administrator\Desktop\Army_Fahrschule.pwn(51) : error 017: undefined symbol "x"
C:\Dokumente und Einstellungen\Administrator\Desktop\Army_Fahrschule.pwn(52) : error 017: undefined symbol "y"
C:\Dokumente und Einstellungen\Administrator\Desktop\Army_Fahrschule.pwn(53) : error 017: undefined symbol "z"
C:\Dokumente und Einstellungen\Administrator\Desktop\Army_Fahrschule.pwn(55) : error 017: undefined symbol "radi"
public OnGameModeInit()
{
public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
//printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
}
return 0;
}
in der morphinc include änder mal am 3 zeile das hier
Float:GetPointDistanceToPointExMorph(Float:mx1,Float:my1,Float:mz1,Float:mx2,Float:my2,Float:mz2)
{
new Float:x, Float:y, Float:z;
x = mx1-mx2;
y = my1-my2;
z = mz1-mz2;
return floatsqroot(x*x+y*y+z*z);
}
hab keinen include kann mir den wer geben?
Die bessere Version von PlayerToPoint:
/* By Alex "Y_Less" Cole. */
stock IsPlayerInRangeOfPoint(playerid, Float:range, Float:x, Float:y, Float:z)
{
new
Float:px,
Float:py,
Float:pz;
GetPlayerPos(playerid, px, py, pz);
px -= x;
py -= y;
pz -= z;
return ((px * px) + (py * py) + (pz * pz)) < (range * range);
}
Anwendungsbeispiel:
if(strcmp("/wtf",cmdtext,true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid, 20.0, 0.0, 0.0, 1.0))
{
print("Bla = erfolgreich");
return 1;
}
}
was daran besser?
hier
Die Version von Y_Less ist 1. besser gecodet und 2. ressourcenschonender gecodet.
Der Unterschied sollte dir spätestens bei der Server Auslastung mit 25 Usern und einem riesigen RP Script auffallen.
dann gib ma defininition von deiner sache bright und alles was dazu gehört^^
danke an euch