Hahah Kaliber So ein dummer Scripter bin ich auch wieder nicht hahahah Digga hast mich zum lachen gebracht
Ne ich hab Sie ja ersetzt aber es geht nicht.
Hahah Kaliber So ein dummer Scripter bin ich auch wieder nicht hahahah Digga hast mich zum lachen gebracht
Ne ich hab Sie ja ersetzt aber es geht nicht.
Dann printe dir mal deine Position und die, die du eingegeben hast und vergleiche diese.
Bzw checke ob OnPlayerCommandText aufgerufen wird
Irgendwo muss ja der Fehler sein
Wo ist mein Fehler Hab ehrlich ka warum es nicht geht
if(newkeys & KEY_CTRL_BACK)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(IsPlayerInRangeOfPoint(playerid,10.0, X, Y, Z))
{
OnPlayerCommandText(playerid,"/mv");
}
else if(IsPlayerInRangeOfPoint(playerid,10.0, X, Y, Z))
{
OnPlayerCommandText(playerid,"/mv2");
}
else OnPlayerCommandText(playerid, "/kacken");
}
}
MFG
Du hast nichts von dem gemacht...was ich gerade geschrieben habe.
Wie soll ich dir jetzt helfen?
Doch habe ich auch vorhin so eingefügt. Es klappt trotzdem nicht
if(newkeys & KEY_CTRL_BACK)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(IsPlayerInRangeOfPoint(playerid,10.0, X, -Y, Z)) OnPlayerCommandText(playerid,"/mv");
else if(IsPlayerInRangeOfPoint(playerid,10.0, X, -Y, Z)) OnPlayerCommandText(playerid,"/mv2");
}
else OnPlayerCommandText(playerid, "/enter");
}
Dann printe dir mal deine Position und die, die du eingegeben hast und vergleiche diese.
Bzw checke ob OnPlayerCommandText aufgerufen wird
Irgendwo muss ja der Fehler sein
Das meinte ich...
IsPlayerConnected ist da komplett überflüssig, da der Spieler ja online sein muss..um zu hupen...wird für offline Spieler eher schwierig haha xD
Stimmt jetzt nicht so ganz da man theoretisch Pakete an den Server senden kann mit denen man hupt (auch wenn das seeeeeeeeeeeeeeeeeehr unwahrscheinlich ist)
Hmm ka was Schuld ist aber es klappt nicht Pfffff
if(newkeys == KEY_CTRL_BACK)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(IsPlayerInRangeOfPoint(playerid,10.0, 1589.60828, -1638.15710, 14.57770)) OnPlayerCommandText(playerid,"/mv");
else if(IsPlayerInRangeOfPoint(playerid,10.0, 1544.68750, -1630.83167, 13.11210)) OnPlayerCommandText(playerid,"/mv2");
}
else OnPlayerCommandText(playerid, "/enter");
}
Stimmt jetzt nicht so ganz da man theoretisch Pakete an den Server senden kann mit denen man hupt
...klar...man kann so einiges. Kann auch eine Bot Armada draufpacken und alle hupen lassen, damit die Tore aufgehen, Mensch jetzt hab ichs dem Server aber gezeigt
Zumal man auch durch das package sagen könnte, dass man online ist...
In der 0.1 Version gab es auch mal einen Bug, dass gekickte Spieler immer noch Commands eingeben konnten haha
Aber sind wir mal realistisch und bleiben bei normalem Code Flow.
Hmm ka was Schuld ist aber es klappt nicht Pfffff
Ja, wir haben es verstanden. Es geht darum, dass du diese print Statements setzt und es herausfindest.
Hahhaha man man man.
So ich habs es war ein anderer key Code einfach
Kaliber Vielen Dank
Habe ein kleines Problem mit meinem alten Script.
das Enter Exit System funktioniert nur bei einem enum und bräuchte das für mehrere Systeme.
Hier sind meine Codes:
ocmd:enter(playerid, params[])
{
for(new x=0; x<sizeof(fmInfo); x++)
{
if(!fmInfo[x][fff_id])continue;
if(fmInfo[x][fhi_x]==0.0)continue;
if(!IsPlayerInRangeOfPoint(playerid,2,fmInfo[x][fhx],fmInfo[x][fhy],fmInfo[x][fhz]))continue;
SetPlayerPos(playerid,fmInfo[x][fhi_x],fmInfo[x][fhi_y],fmInfo[x][fhi_z]);
SetPlayerInterior(playerid,fmInfo[x][ff_Interior]);
SetPlayerVirtualWorld(playerid,x);
}
for(new i=0; i<50; i++)
{
if(IsPlayerInRangeOfPoint(playerid, 5.0, sbInfo[i][sbx], sbInfo[i][sby], sbInfo[i][sbz]))
{
SetPlayerInterior(playerid, sbInfo[i][sbint]);
SetPlayerPos(playerid, sbInfo[i][isbx], sbInfo[i][isby], sbInfo[i][isbz]);
SetPlayerVirtualWorld(playerid, i);
return 1;
}
}
for(new e=0; e<sizeof(hInfo); e++)
{
if(!hInfo[e][h_id])continue;
if(hInfo[e][ih_x]==0.0)continue;
if(!IsPlayerInRangeOfPoint(playerid,2,hInfo[e][h_x],hInfo[e][h_y],hInfo[e][h_z]))continue;
SetPlayerPos(playerid,hInfo[e][ih_x],hInfo[e][ih_y],hInfo[e][ih_z]);
SetPlayerInterior(playerid,hInfo[e][h_interior]);
SetPlayerVirtualWorld(playerid,e);
return 1;
}
for(new u=0; u<sizeof(bInfo); u++)
{
if(!bInfo[u][b_id])continue;
if(bInfo[u][ibx]==0.0)continue;
if(!IsPlayerInRangeOfPoint(playerid,2,bInfo[u][bx],bInfo[u][by],bInfo[u][bz]))continue;
SetPlayerPos(playerid,bInfo[u][ibx],bInfo[u][iby],bInfo[u][ibz]);
SetPlayerInterior(playerid,bInfo[u][b_interior]);
SetPlayerVirtualWorld(playerid,u);
return 1;
}
return 0;
}
ocmd:exit(playerid, params[])
{
for(new x=0; x<sizeof(fmInfo); x++)
{
if(GetPlayerVirtualWorld(playerid)!=x)continue;
if(!IsPlayerInRangeOfPoint(playerid,2,fmInfo[x][fhi_x],fmInfo[x][fhi_y],fmInfo[x][fhi_z]))continue;
SetPlayerPos(playerid, fmInfo[x][fhx], fmInfo[x][fhy], fmInfo[x][fhz]);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
}
for(new i=0; i<50; i++)
{
if(GetPlayerInterior(playerid) == 0)continue;
if(IsPlayerInRangeOfPoint(playerid, 5.0, sbInfo[i][isbx], sbInfo[i][isby], sbInfo[i][isbz]))
{
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid, sbInfo[i][sbx], sbInfo[i][sby], sbInfo[i][sbz]);
SetPlayerVirtualWorld(playerid, 0);
return 1;
}
}
for(new e=0; e<sizeof(hInfo); e++)
{
if(GetPlayerVirtualWorld(playerid)!=e)continue;
if(!IsPlayerInRangeOfPoint(playerid,2,hInfo[e][ih_x],hInfo[e][ih_y],hInfo[e][ih_z]))continue;
SetPlayerPos(playerid, hInfo[e][h_x], hInfo[e][h_y], hInfo[e][h_z]);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
return 1;
}
for(new u=0; u<sizeof(bInfo); u++)
{
if(GetPlayerVirtualWorld(playerid)!=u)continue;
if(!IsPlayerInRangeOfPoint(playerid,2,bInfo[u][ibx],bInfo[u][iby],bInfo[u][ibz]))continue;
SetPlayerPos(playerid, bInfo[u][bx], bInfo[u][by], bInfo[u][bz]);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
return 1;
}
if(IsPlayerInRangeOfPoint(playerid, 5.0, 866.91089, 1857.31665, -30.40188))//Stadthallen Exit
{
SetPlayerPos(playerid, 1481.0325,-1772.2615,18.7958);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
return 1;
}
return 0;
}
Wenn ich an einem Haus stehe und /enter eingebe kriege ich die Meldung dass dieser Befehl nicht existiert. Doch bei den StaticBuildings(enum,new) funktioniert es.
Hoffe ihr könnt mir weiter helfen.
Liebe Grüße,
Genadj_Andrenov
kriege ich die Meldung dass dieser Befehl nicht existiert
Das liegt daran, dass am Ende return 0; steht.
ocmd:enter(playerid, params[])
{
for(new x; x<sizeof(fmInfo); x++)
{
if(!fmInfo[x][fff_id] || fmInfo[x][fhi_x]==0.0 || !IsPlayerInRangeOfPoint(playerid,2,fmInfo[x][fhx],fmInfo[x][fhy],fmInfo[x][fhz]))continue;
SetPlayerPos(playerid,fmInfo[x][fhi_x],fmInfo[x][fhi_y],fmInfo[x][fhi_z]);
SetPlayerInterior(playerid,fmInfo[x][ff_Interior]);
SetPlayerVirtualWorld(playerid,x);
return 1;
}
for(new i; i<sizeof(sbInfo); i++)
{
if(!IsPlayerInRangeOfPoint(playerid, 5.0, sbInfo[i][sbx], sbInfo[i][sby], sbInfo[i][sbz])) continue;
SetPlayerInterior(playerid, sbInfo[i][sbint]);
SetPlayerPos(playerid, sbInfo[i][isbx], sbInfo[i][isby], sbInfo[i][isbz]);
SetPlayerVirtualWorld(playerid, i);
return 1;
}
for(new e; e<sizeof(hInfo); e++)
{
if(!hInfo[e][h_id] || hInfo[e][ih_x]==0.0 || !IsPlayerInRangeOfPoint(playerid,2,hInfo[e][h_x],hInfo[e][h_y],hInfo[e][h_z])) continue;
SetPlayerPos(playerid,hInfo[e][ih_x],hInfo[e][ih_y],hInfo[e][ih_z]);
SetPlayerInterior(playerid,hInfo[e][h_interior]);
SetPlayerVirtualWorld(playerid,e);
return 1;
}
for(new u; u<sizeof(bInfo); u++)
{
if(!bInfo[u][b_id]||bInfo[u][ibx]==0.0||!IsPlayerInRangeOfPoint(playerid,2,bInfo[u][bx],bInfo[u][by],bInfo[u][bz]))continue;
SetPlayerPos(playerid,bInfo[u][ibx],bInfo[u][iby],bInfo[u][ibz]);
SetPlayerInterior(playerid,bInfo[u][b_interior]);
SetPlayerVirtualWorld(playerid,u);
return 1;
}
return SendClientMessage(playerid,-1,"* Sie befinden sich an keinem Eingang!");
}
ocmd:exit(playerid, params[])
{
for(new x; x<sizeof(fmInfo); x++)
{
if(GetPlayerVirtualWorld(playerid)!=x || !IsPlayerInRangeOfPoint(playerid,2,fmInfo[x][fhi_x],fmInfo[x][fhi_y],fmInfo[x][fhi_z]))continue;
SetPlayerPos(playerid, fmInfo[x][fhx], fmInfo[x][fhy], fmInfo[x][fhz]);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
return 1;
}
if(GetPlayerInterior(playerid) != 0)
{
for(new i; i<sizeof(sbInfo); i++)
{
if(!IsPlayerInRangeOfPoint(playerid, 5.0, sbInfo[i][isbx], sbInfo[i][isby], sbInfo[i][isbz])) continue;
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid, sbInfo[i][sbx], sbInfo[i][sby], sbInfo[i][sbz]);
SetPlayerVirtualWorld(playerid, 0);
return 1;
}
}
for(new e; e<sizeof(hInfo); e++)
{
if(GetPlayerVirtualWorld(playerid)!=e || !IsPlayerInRangeOfPoint(playerid,2,hInfo[e][ih_x],hInfo[e][ih_y],hInfo[e][ih_z]))continue;
SetPlayerPos(playerid, hInfo[e][h_x], hInfo[e][h_y], hInfo[e][h_z]);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
return 1;
}
for(new u; u<sizeof(bInfo); u++)
{
if(GetPlayerVirtualWorld(playerid)!=u || !IsPlayerInRangeOfPoint(playerid,2,bInfo[u][ibx],bInfo[u][iby],bInfo[u][ibz]))continue;
SetPlayerPos(playerid, bInfo[u][bx], bInfo[u][by], bInfo[u][bz]);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
return 1;
}
if(IsPlayerInRangeOfPoint(playerid, 5.0, 866.91089, 1857.31665, -30.40188))//Stadthallen Exit
{
SetPlayerPos(playerid, 1481.0325,-1772.2615,18.7958);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
return 1;
}
return SendClientMessage(playerid,-1,"* Sie befinden sich an keinem Exit Punkt!");
}
Alles anzeigen
Probiers mal so
PS: Du kannst in den Schleifen auch die Variablen alle gleich nennen (nur so als Tipp) ist n bisschen übersichtlicher
Ahnung, warum mir das nicht ausgelesen wird?
cache_get_value_name(i, "verwendungszweck", InstructionInfo[i][iVerwendungszweck]);
cache_get_value_name(i, "time", InstructionInfo[i][iTime]);
enum e_Instructions_System
{
iID,
iMyNumber,
iOtherNumber,
iValue,
iOldValue,
iNewValue,
iVerwendungszweck[64],
iTime[64]
}
new InstructionInfo[MAX_INSTRUCTIONS][e_Instructions_System];
Versuche es als String auszugeben, was ja richtig wäre.
Versuchs mal so:
cache_get_value_name(i, "verwendungszweck", InstructionInfo[i][iVerwendungszweck], 64);
cache_get_value_name(i, "time", InstructionInfo[i][iTime], 64);
Du musst die maximale lände des strings angeben da es sonst Buggy ist hatte das problem auch mal.
Danke klappt, stehe aber gerade auf dem Schlauch.. xD
Die Formatierung haut einfach 0 hin.
Danke klappt, stehe aber gerade auf dem Schlauch.. xD
Die Formatierung haut einfach 0 hin.
Dann poste dazu mal den Dialog
Ach mist, ganz vergessen. Sorry.
format(DialogString, sizeof(DialogString),"Empfänger\tBetrag\tAlter Kontostand\tNeuer Kontostand\tVerwendungszweck\tUhrzeit\n%s\n"HTML_WHITE"%d\t"HTML_WHITE"$%d\t"HTML_RED"$%d\t"HTML_GREEN"$%d\t"HTML_WHITE"%s\t"HTML_WHITE"%s", DialogString, InstructionInfo[i][iOtherNumber], InstructionInfo[i][iValue], InstructionInfo[i][iOldValue], InstructionInfo[i][iNewValue], InstructionInfo[i][iVerwendungszweck], InstructionInfo[i][iTime]);
https://pastebin.com/UqqA448j
@Alva.
PS: Falls ein paar Zahlen länger sind, dann mach einfach \t\t bei den jeweiligen, sodass du mehr Abstand zum nächsten kriegst
so wirds nicht gehen.
versuchs so:
der Header des Dialogs muss ausserhalb der Schleife stehen:
strcat(string, "Empfänger\tBetrag\tAlter Kontostand\tNeuer Kontostand\tVerwendungszweck\tUhrzeit\n");
for().....{
format"(%s\nHTML_WHITE"%d\t"HTML_WHITE"$%d\t"HTML_RED"$%d\t"HTML_GREEN"$%d\t"HTML_WHITE"%s\t"HTML_WHITE"%s",stirng1, , InstructionInfo[i][iOtherNumber], InstructionInfo[i][iValue], InstructionInfo[i][iOldValue], InstructionInfo[i][iNewValue], InstructionInfo[i][iVerwendungszweck], InstructionInfo[i][iTime);
}
strcat(string, string1, sizeof(string1));