Da habe ich mich wohl verschrieben, ich danke euch. Klappt jetzt wunderbar so wie ich es wollte.. manche Sachen liegen einem direkt vor der Nase aber man sieht sie einfach nicht .. danke für eure Mühe.
Beiträge von Kasakow
-
-
Leider funktioniert es immer noch nicht. Ich weiß nicht ob meine Testbedingungen nicht stimmen. Sprich, ich bin während des Wechsels "auf dem Desktop" weil ich den Tab von Sandboxie zum normalen Tab wechsele.. aber kann ich mir nicht vorstellen dass es daran liegt.
Screenshot von der aktuellen Lage
-
Mein Actor Jim wird mir nicht im Interior angezeigt.
Ich habe mal seine Werte geprintet & mich auch wie dem Screenshot zu entnehmen ist an seine Stelle teleportiert.. aber er fehlt.. habe es auch schon mit verschiedenen Client Versionen versucht, nichts..
Actor_Jim = CreateActor(333, 312.1229, -168.2393, 999.5938, 8.2343),
SetActorVirtualWorld(Actor_Jim, 10),
Create3DTextLabel("{FFFA00}Jim{FFFFFF} ~ Beste Waffen!", -1, 312.1229, -168.2393, 999.5938 +1.2, 30, 10, 1);Screenshot wo er eigentlich hätte stehen sollen..
-
So, ich hätte vorher lesen sollen.
Was nur in den Gamemode sollte, habe ich nun übernommen.
Bei mir findet er in der Include aber trotzdem nicht pInfo von meinem Gamemode.C:\Users\Gringo\Desktop\NeS KF Server\pawno\include\a_spectate.inc(30) : warning 217: loose indentation
C:\Users\Gringo\Desktop\NeS KF Server\pawno\include\a_spectate.inc(34) : error 017: undefined symbol "pInfo"
C:\Users\Gringo\Desktop\NeS KF Server\pawno\include\a_spectate.inc(37) : warning 217: loose indentation
C:\Users\Gringo\Desktop\NeS KF Server\pawno\include\a_spectate.inc(41) : error 017: undefined symbol "pInfo"
C:\Users\Gringo\Desktop\NeS KF Server\pawno\include\a_spectate.inc(49) : error 017: undefined symbol "pInfo"
C:\Users\Gringo\Desktop\NeS KF Server\pawno\include\a_spectate.inc(56) : error 017: undefined symbol "pInfo" -
Ich bezweifle dass man jetzt besser helfen kann da in dieser Funktion eigentlich alles passen sollte. Funktioniert ja auch alles auf die Sachen.
@specBoxUpdate(playerid);
@specBoxUpdate(playerid)
{
if(pInfo[playerid][pSpec] == 1)
{
new SpecID = pInfo[playerid][pSpecID], string[5][45];
SetPVarInt(playerid, "updateSpecModel", GetPVarInt(playerid, "updateSpecModel") +1);
if(GetPlayerInterior(SpecID) != GetPlayerInterior(playerid)) SetPlayerInterior(playerid, GetPlayerInterior(SpecID));
if(GetPlayerVirtualWorld(SpecID) != GetPlayerVirtualWorld(playerid)) SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(SpecID));
if(IsPlayerLoggedIn(SpecID) == false)
{
SendClientMessage(playerid, COLOR_RED, "SPECTATE: {FFFFFF}Da der Spieler, dem du zugeschaut hast, Offline gegangen ist, wird der Modus beendet!"),
pInfo[playerid][pSpec] = 0,
pInfo[playerid][pSpecID] = 0,
ShowPlayerMenu(playerid, MENU_SPEC),
KillTimer(pInfo[playerid][pSpecTimer]),
TogglePlayerSpectating(playerid, false);
return 1;
}
if(GetPVarInt(playerid, "updateSpecModel") >= 4)
{
PlayerTextDrawShow(playerid, pTextDraw[playerid][3]),
PlayerTextDrawSetPreviewModel(playerid, pTextDraw[playerid][3], getPlayerSkin(SpecID));
SetPVarInt(playerid, "updateSpecModel", 0);
}
format(string[0], 45, "Name: %s", getPlayerName(SpecID)),
format(string[1], 45, "Level: %i", getPlayerScore(SpecID)),
format(string[2], 45, "Ping: %i", GetPlayerPing(SpecID)),
format(string[3], 45, "Frames: %i", getPlayerFPS(SpecID)),
format(string[4], 45, "Arena: %s", getArenaName(SpecID, 0)),
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(SpecID)),
SetPlayerInterior(playerid, GetPlayerInterior(SpecID));
PlayerTextDrawSetString(playerid, pTextDraw[playerid][0], string[0]),
PlayerTextDrawSetString(playerid, pTextDraw[playerid][1], string[1]),
PlayerTextDrawSetString(playerid, pTextDraw[playerid][2], string[2]),
PlayerTextDrawSetString(playerid, pTextDraw[playerid][4], string[3]),
PlayerTextDrawSetString(playerid, pTextDraw[playerid][5], string[4]);
return 1;
}
KillTimer(pInfo[playerid][pSpecTimer]),
pInfo[playerid][pSpecTimer] = 0,
ShowPlayerMenu(playerid, MENU_SPEC);
return 1;
} -
Ich werde es dann mal ausprobieren. Deine Idee ist aber gut.
Aber das löst ja generell nicht, das der Interior & die Virtuelle Welt sich nicht mit verändern. -
Servus, ich nage gerade an meiner Spectate Funktion. Ich möchte es so haben dass wenn der Spieler in ein Fahrzeug steigt, er auch wieder in die Third Person Kamera geht und das wenn er den Interior wechselt, das er den Spieler wieder richtig erfasst. Also wenn ich den Modus "SPECTATE_MODE_FIXED" nutze, funktioniert der Spectate schon mal gar nicht. Lass euch mal meinen Quellcode da.
/spec Befehl
ocmd:spec(playerid, params[])
{
if(pInfo[playerid][pAdmin] < 1)return 1;
if(pInfo[playerid][pSpec] == 1)return SendClientMessage(playerid, COLOR_RED, "FEHLER: {FFFFFF}Du schaust aktuell schon jemanden zu. /unspec um den Modus zu verlassen!");
new id, string[128];
if(sscanf(params, "u", id))return SendClientMessage(playerid, COLOR_GREY, "Befehl: /spec [Name/ID]");
if(IsPlayerLoggedIn(id) == false)return SendClientMessage(playerid, COLOR_RED, "LOGIN: {FFFFFF}Der Spieler muss angemeldet sein!");
format(string, sizeof string, "[ACHAT] %s beobachtet nun %s [ID:%i]", getPlayerName(playerid), getPlayerName(id), id),
SendAdminMessage(COLOR_YELLOW, string, -1);
new Float:myPos[3];
GetPlayerPos(playerid, myPos[0], myPos[1], myPos[2]),
pInfo[playerid][pSpec] = 1,
pInfo[playerid][pSpecID] = id,
pInfo[playerid][pGoBack][OldID] = playerid,
pInfo[playerid][pGoBack][OldPosX] = myPos[0],
pInfo[playerid][pGoBack][OldPosY] = myPos[1],
pInfo[playerid][pGoBack][OldPosZ] = myPos[2],
pInfo[playerid][pGoBack][OldInterior] = GetPlayerInterior(playerid),
pInfo[playerid][pGoBack][OldVirtualWorld] = GetPlayerVirtualWorld(playerid),
pInfo[playerid][pSpecTimer] = SetTimerEx("@specBoxUpdate", 650, true, "i", playerid), //In dem Timer lass ich dann auch den Interior & die VW World Updaten, falls sich was verändert hat.
SetPlayerInterior(playerid, GetPlayerInterior(id)),
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(id)),
ShowPlayerMenu(playerid, MENU_SPEC),
TogglePlayerSpectating(playerid, true),
PlayerSpectatePlayer(playerid, id, SPECTATE_MODE_NORMAL);
return 1;
}Die State Change
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new mySpecID = GetMySpec(playerid), specVEH = GetPlayerVehicleID(playerid);
if(mySpecID != INVALID_PLAYER_ID)
{
if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
{
return PlayerSpectateVehicle(mySpecID, specVEH, SPECTATE_MODE_NORMAL);
}
else if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER)
{
if(newstate == PLAYER_STATE_ONFOOT)
{
return PlayerSpectatePlayer(mySpecID, playerid, SPECTATE_MODE_NORMAL);
}
}
}
return 1;
} -
Jawoll, ich dank dir! Das mit dem GS Bug wusste ich bis jetzt noch gar nicht.
Könnte auch daran liegen dass jeder Server auf dem ich gespielt habe, den bereits gefixxt hatte. -
Habe es gestern mal kurz bei den kleinen Scripting Fragen angesprochen.
Meine Autos spawnen nicht da, wo sie sollen. Also ich kannte das von nähe Jefferson aber nicht von der Grove Street.
Da wo die GS ihren Basketballkorb hat, funktioniert das.
Ich meine, es gibt doch Skripts, wo das einwandfrei funktioniert.
Ich habe mal getestet, ob die Positionen falsch gespeichert wurden von mir.Dafür hab ich kurz einen Befehl geschrieben. (/tp [x] [y] [z] [r]) & siehe da.. ich spawne da wo die NRG zum Beispiel spawnen soll.
Da wo ich auf dem Screenshot stehe, sollte eine von den Nrg's stehen. Komischer Weiße, zeigt er mir in der Konsole auch an, dass nur 6 Fahrzeuge geladen wurden obwohl es mehr sind! -
Kann ich morgen mal ausprobieren.
Klingt aber für mich unverständlich da ich die Fahrzeuge via /save im SAMP Debug Modus gespeichert habe.
Eventuell liegt es daran? Wobei.. klingt für mich .. immer noch seltsam. Naja, werd es mal morgen, ausprobieren. -
Oh, das wusste ich noch gar nicht.
Die Angle, ist bei jedem Auto, gegeben.PWN - CODE
stock createFrakCars()
{
FrakCars[FRAK_GROVE][0] = AddStaticVehicleEx(411, 2471.7305, -1653.9286, 13.1295, 91.1799,234,234, 600); // gs_infernus_1
FrakCars[FRAK_GROVE][1] = AddStaticVehicleEx(411, 2481.5835, -1653.9379, 13.1157, 89.6524,234,234, 600); // gs_infernus_2
FrakCars[FRAK_GROVE][2] = AddStaticVehicleEx(560, 2499.8689, -1654.9833, 13.1318, 73.3367,234,234, 600); // gs_sultan_1
FrakCars[FRAK_GROVE][3] = AddStaticVehicleEx(560, 2510.4358, -1667.5021, 13.2139, 21.7674,234,234, 600); // gs_sultan_2
FrakCars[FRAK_GROVE][4] = AddStaticVehicleEx(560, 2507.5120, -1678.3459, 13.2111, 339.8317,234,234, 600); // gs_sultan_3
FrakCars[FRAK_GROVE][5] = AddStaticVehicleEx(522, 2493.8193, -1685.6548, 13.0816, 331.9830,234,234, 600); // gs_nrg_1
FrakCars[FRAK_GROVE][6] = AddStaticVehicleEx(522, 2492.7583, -1685.1547, 13.0816, 328.6006,234,234, 600); // gs_nrg_2
FrakCars[FRAK_GROVE][7] = AddStaticVehicleEx(522, 2491.5410, -1684.7617, 13.0328, 333.8896,234,234, 600); // gs_nrg_3
FrakCars[FRAK_GROVE][8] = AddStaticVehicleEx(522, 2490.1418, -1684.4767, 13.0153, 333.2024,234,234, 600); // gs_nrg_4
FrakCars[FRAK_GROVE][9] = AddStaticVehicleEx(541, 2476.0457, -1697.8132, 13.1443, 359.1874,234,234, 600); // gs_bullet_1
FrakCars[FRAK_GROVE][10] = AddStaticVehicleEx(541, 2472.0601, -1697.9293, 13.1414, 0.7579,234,234, 600); // gs_bullet_2
FrakCars[FRAK_GROVE][11] = AddStaticVehicleEx(451, 2482.9082, -1683.9436, 13.1213, 90.0109,234,234, 600); // gs_turismo_1
FrakCars[FRAK_GROVE][12] = AddStaticVehicleEx(482, 2469.0544, -1671.6486, 13.5166, 10.8241,234,234, 600); // gs_burrito_1
for(new i;i<20;i++){
if(FrakCars[FRAK_GROVE][i] == INVALID_VEHICLE_ID)continue;
SetVehicleVirtualWorld(FrakCars[FRAK_GROVE][i], 15);
}
return 1;
} -
Jemand eine Idee wieso die Autos so spawnen & was ich dagegen machen kann?
Screenshot ist unten beigelegt.
sa-mp-042.png -
Meine Frage ist, ob mein Code, das gleiche bewirkt, wie der unten drunter.
Sprich, kann ich eine while Schleife verwenden anstatt for zu benutzen, welche Vor & Nachteile bilden sich dann ?
while (i < GetMaxPlayers()){if(IsPlayerLoggedIn(i) == 0)continue;
if(pInfo[i][pFraktion] != pInfo[playerid][pFraktion])
continue;SendClientMessage(i, color, str);
}
for(new i;i<GetMaxPlayers();i++){
if(IsPlayerLoggedIn(i) == 0)continue;
if(pInfo[i][pFraktion] != pInfo[playerid][pFraktion])continue;
SendClientMessage(i, color, str);
} -

Hab es mir auch schon gedacht & jetzt umgesetzt.
-
Möglicherweise ein AV Programm das die Teamspeak Pakete sich von Zeit zu Zeit unter die Lupe nimmt ?
Es hat funktioniert. Ohne AV, geht es sau gut.
-
Man kann es einstellen wie man es mag denke ich. Nova z.B erlaubt über den AC Skin Mods, aber bei LSD Cont, Päckchen oder Perlen Mod kickt er dich raus.
-
Ja ich spiele auch auf Nova und nutze den Sbinder. Also ist ja jetzt mal totaler Unsinn.
-
Ich selber benutze schon seit vielen Jahren die Logitech G502 und das auch ohne Mousepad.
Es kommt nur drauf an aus was für einem Material der Schreibtisch bzw. die Oberfläche ist, allerdings gibt es mit den meisten Materialien keine Probleme und es ist eher die Ausnahme das die Maus da Probleme hat.Ja es ist meine Tischoberfläche. Hat jemand eine gute Sensfix?
-
Habe manchmal einen extremen High Ping im TS wenn ich SAMP Spiele, aber in SAMP geht dann trotzdem immer alles lagfrei..beim schnacken im Ts ist es immer lästig.. jemand eine Idee, wie ich das in den Griff kriege ?
-
Ich möchte den SAMP CAC von sampcac.xyz zur Pflicht machen auf meinen Gamemode.. jemand eine Idee?

