Hm...lass mich überlegen,
wie sprechen von Gta richtig ?
Keine Ahnung vielleicht ein Ordner der was mit Gta zu tun hat ?
Hm...lass mich überlegen,
wie sprechen von Gta richtig ?
Keine Ahnung vielleicht ein Ordner der was mit Gta zu tun hat ?
http://community.mtasa.com/data.zip
Runterladen und in deinen Data Ordner werfen.
Ob dein Hud und deine Karte was ausmachen, siehste dann.
Zitaterfüllt beides den selben Zweck.
Sollte verständlich sein...
oder soll ich dir das als Message 500 mal durch den Loop oben schicken ?
Hab ich oben beschrieben, du kannst es türlich auch direkt Abfragen
erfüllt beides den selben Zweck.
Nur wenn ich mir deine Funktionen oben so ansehe, rat ich dir, dich erstmal in Pawn einzulesen.
Keine Sache.
for(new i,a = GetMaxPlayers();i < a;i++)
for ist im Prinzip nichts anderes als eine sich wiederholende Schleife die sich nach den in der Klammer stehenden Ziffern richtet.
Zuerst mal definierst du oben new i das Standartmässig den Wert 0 hat, danach gibst du der mitdefinierten Variable a den Wert
deiner derzeit spielenden User die sich auf dem Server befinden. (new i,a = GetMaxPlayers();)
Das i in diesem Fall ist die Startposition des Loops (der sich wiederholenden Schleife) die hier bei 0 startet.
0 deswegen weil es 0-499 Spielerid´s gibt.
Im zweiten Abschnitt wird überprüft ob i < a -> i kleiner als a (deine Useranzahl) ist, das ist das Limit der Schleife.
Sooft wiederholt sich der Loop, also einfach erklärt sooft bis alle Nummern bis zu der Spielerid des letzten Benutzers dranwaren. (i < a;)
Am Ende eines Loops kommt optional noch die Schrittweite, das kannst du dir so vorstellen...
i++;
ist nichts anderes als
i = i + 1;
Das heißt jetzt im Verständlichen das er immer eine Id nach vorne hüpft, wäre natürlich auch möglich nach hinten oder Dezimalstellen (Kommastellen/Floats) nach vorne zu hüpfen
was wir aber hier nicht brauchen, weil die Playerid´s Vollzahlen = Integer´s sind, Ziffern ohne Kommas.
0
1
2
3
4
5
6
7
...
Dass was danach folgt ist eigentlich einfach, man überprüft ob die Id die gerade überprüft wird, sich auf dem Server befindet.
Kann ja sein, das Playerid: 8 unbesetzt ist aber 9, 10 auf dem Server sind, weil der Benutzer frühzeitig ging.
if(IsPlayerConnected(i))
Danach kommt deine Variable die checkt ob die Spielerid die Variable auf 1 gestellt hat.
Anschließend deine Funktionen
Statt unsinniges Zeugs zu posten hätte man ihm in der Zwischenzeit die kurze Lösung schreiben können...
for(new i,a = GetMaxPlayers();i < a;i++)
{
if(IsPlayerConnected(i) && medic_im_dienst[i] == 1)
{
SendPlayerMessageToPlayer(i, playerid, "Ich benötige hier einen Arzt (Rote Makierung)!");
SetPlayerMarkerForPlayer(i, playerid, RED);
}
}
Zitat<script src="skript.lua"/>
Du hast keinen type definiert ob es Serverseitig ist oder Clientseitig.
Aber es sollte Serverseitig sein, weil der Handler onPlayerJoin nur Serverseitig definiert ist.
Zitat<script src="skript.lua" type="server" />
Ccmd - by Jason
__________________________________________________________
http://wiki.multitheftauto.com/wiki/Ccmd
Struktur/Aufbau von Chatcommands in Mta 1.0 +
function c_CommandHandler( message, messageType )
local arg2
if(message == 0)then
nBeginn["c_Start"], nEnd["c_End"] = string.find(message, "!")
if(nBeginn["c_Start"] ~= false and nBeginn["c_Start"] == 1)then
message = string.lower(message) -- for accepting chatcommands like /KIcK or /kICK
if(string.len(string.sub(message, 2)) > 0)then
l_pos = 1
for key, c_cmd in pairs(c_cmds), 2 do
nBeginn["c_Arg"] = string.sub(message, 2, #c_cmds[l_pos]+2)
-- Word Symbols
arg2 = #c_cmd[l_pos]+3 -- +1 next arg tab
l_pos=l_pos+2
if(nBeginn["c_Arg"] == c_cmd)then
--c_cmd[l_pos+1]
l_pos=l_pos-1
local c_Playa = getElementsByType( "player" )
for theKey, c_Target in ipairs(c_Playa) do
nBeginn["c_Target"], nEnd["c_Target"] = string.find(message, c_Target)
if(nBeginn["c_Target"] == arg2 and nEnd["c_Target"] == #getPlayerName(c_Target)+arg2)then
if(c_Target ~= source)then
executeCommandHandler ( c_cmds[l_pos], source, c_Target )
else
return outputChatBox("* You are targeting yourself, Retard!", source)
end
else
return outputChatBox("* Player "..string.sub(message,arg2).." not found!", source)
end
break -- playerloop
end
break -- arg1 loop
else
return outputChatBox("* Command !"..nBeginn["c_Arg"].." not found in tha Resource :o", source)
end
end
end
end
end
end
addEventHandler( "onPlayerChat", getRootElement(), c_CommandHandler)
Alles anzeigen
Hm...ja das Problem haben wir seit geraumer Zeit.
Die Leute auf deinem Screenshot sind Serial gebannt worden,
die meißten Admins sind Undercover Online hilft aber bei 2 vollen Servern meißtens nix.
gabriel ist gebannt danke für den Report.
Update auf Version 6.35:
- Syntax sowie komplette Spielerlistenumstellung auf Playerid´s
- Überarbeitetes Statistiksystem nun mit SMF-Board Userprofil verlinkt
- Signaturstatistik mit Php SDK Module
- Level/Exp System eingeführt
- XIII All in One C# Software geupdatet (kleiner Abstürze des Chat Servers behoben)
- Lua Consolen Errors nun zu 99.9999 % gefixxt (Abweichungen möglich )
- !top um eine Liste der besten 10 Spieler auszugeben
- 5 Neue Maps
- Video mit EPG Race Server gedreht
Wieso fragst du jeden Wert einzeln ab und nicht direkt die ganze Tabelle?
SELECT * FROM `copcars`
Danach einfach mit fetch_assoc die einzelnen Spalten abfragen.
Normal muss man die Werte (falls du es in deiner Datenbank nicht als Varchar speicherst, sondern als Int/Tinyints)
nicht mehr umwandeln, wobei ich mir bei der Anzahl an MySQL Modulen nicht sicher sein kann.
@Zipper lies dich mal weiter durch
The source of this event is the player that joined the server.
Ich rede nicht von getLocalPlayer(), außerdem wäre es grober Unfug
zu behaupten man können vom eigenen Clientscript andere Clienten ansteuern.
Wenn dann...
'Client' >' Server' > 'Client' Global aufrufen
Sonst könnte man mit nem gehackten/modifizierten Clientscript ja andere Spieler hacken
bzw. deren Accounts regelrecht durchlöchern.
Außerdem kann man sich den Map Editor auch selber nachbauen, was aber nicht nötig ist
Am meißten freu ich mich auf
- 0005120: [Installer] Require nickname/player name on install (Flobu) - assigned.
und
- 0005162: [Server] Download timeouts caused by temporary internal web server failure - new.
- 0004361: [Scripting] Water elements destroyed through resetMapInfo do not reappear - new.
ging mir schon langsam auf den Senkel das bei uns -XIII- einige Spieler Download Timeouts hatten
obwohl vollständige Caches angelegt waren.
Nö die Function wird schon für den Spieler ausgelöst der gerade den Server betretten hat,
ein Ding der Unmöglichkeit Clientseitig auf andere Clienten überzuspringen.
Client bleibt Client.
Vermutlich ist es hier so, dass das Element (source) gerade diese File noch nicht geladen hat.
oder die noch nicht im Cache liegt. Dann wundert es nicht das er sie nicht abspielen kann.
Einfach einen Timer oder onClientResourceStart (wie Zipper schon sagt) verwenden.
Das müsste nach dem Download der Files aufgerufen werden.
Steht der Sound auch in deine xml ?
Den an deiner Funktion stimmt alles
wenn sie wirklich als Clientresource eintragen ist.
Wenn dein San Andreas nicht ohne die Sound Files funktioniert, was ja mich auch nicht wirklich wundert, funktioniert dein Sa-mp ,bis auf den Serverbrowser
natürlich, auch nicht. Gestartet ja kein externes Spiel sondern deine gta_sa.exe.
Geht auch einfacher...
s_find = {}
s_find["s_Start#1"], s_find["s_Ende#1"] = string.find(text, "Schrimps")
if(s_find["s_Start#1"] and s_find["s_Ende#1"] ~= false)then
return s_find["s_Start#1"]
else
return false
end
Gibt die genaue Startposition von "Ich mag Schrimps" in einem Text an, falls es weder Start noch Ende des Strings
erfassen kann, gibt es false zurück.
Multidimensionale Datengruppen/Arrays in Lua
local rootElement = getRootElement()
local screenWidth,screenHeight = guiGetScreenSize()
function renderDisplay ( )
local seconds = getTickCount() / 1000
local angle = math.sin(seconds) * 80
dxDrawImage ( screenWidth/2 - 50, 0, 325, 42, "test_logo.png", angle, 0, -120 )
end
function HandleTheRendering ( )
addEventHandler("onClientRender",rootElement, renderDisplay)
end
addEventHandler("onClientResourceStart",rootElement, HandleTheRendering)
Kann an vielem liegen, wenn die resource zb. nicht in deiner Meta / mtaserverconfig steht.
Oder du hast das test_logo.png nicht als gültige File drin.
Außerdem sollte man sowas selber bauen, ich riech von hier das dass wieder ne Clientseitig runtergeladene Resource
von irgendeinem Server ist.
Wieso willst du dein Logo überhaupt drehen ?