CreateDynamicObject gehört nicht zu bfx_oStream sondern zum Streamer Plugin von Icognitio -.-'
Hör auf Blödsinn zu verzapfen ![]()
Mach das von in der Signatur von Ramino steht und alles sollte funktionieren
CreateDynamicObject gehört nicht zu bfx_oStream sondern zum Streamer Plugin von Icognitio -.-'
Hör auf Blödsinn zu verzapfen ![]()
Mach das von in der Signatur von Ramino steht und alles sollte funktionieren
O.o bloody ist es gibt ne viel schönere Möglichkeit und die nennt sich OnPlayerKeyStateChange
Damit kannste (fast) alle Keys rausfinden.
Musst es nur richtig einbauen/verwenden
in etwa so
new string [16]; // die Keys können bis zu 16 Zeichen lang sein
format(string,sizeof(string),"%d",newkeys);
SendClientMessage(playerid,0xFFFFFFFF,string);
Ich würd sagen das ich recht sanft mit ihm umgegangen bin ![]()
Andere Leute hier hätten das anders gemacht^^
Es kann auch sein, das am Code was falsch ist.
Z.B. wenn du Objecte an nicht vorhandene Slots hängst
Ja lol mit dem Code kann warscheinlich nur Key(Kalcor) was anfangen ![]()
Vll sagst du uns was du gemacht hast bevor du gecrasht bist
Das heißt eigentlich nur das die argumente die du in den Funktionen verwendest, entweder nicht vollständig oder zu wenige sind.
Ich rate die mal dafür in die Wiki zu gucken.
Dort sind alle Parameter für die jeweiligen Funktionen vorhanden, sie warten nur noch darauf von die aufgerufen zu werden
Ich hab mir das Script nochmal genauer angesehen und mir ist eine Sache besonders ins Auge gefallen, die besonders schlecht umgesetzt wurde ![]()
nämlich dieser Teil:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new newcar = GetPlayerVehicleID(playerid);
if(newstate == PLAYER_STATE_DRIVER)
{
if(LSPDCar(newcar))
{
if (pInfo[playerid][Fraktion] == 1)
{}
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, ROT, "Du bist kein Polizist");
return 1;
}
}
}
if(newstate == PLAYER_STATE_DRIVER)
{
if(FBICar(newcar))
{
if (pInfo[playerid][Fraktion] == 4)
{}
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,ROT,"Du bist kein Mietglied der FBI");
return 1;
}
}
}
if(newstate == PLAYER_STATE_DRIVER)
{
if(SFPDCar(newcar))
{
if (pInfo[playerid][Fraktion] == 5)
{}
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,ROT,"Du bist kein Mietglied des SFPD");
return 1;
}
}
}
if(newstate == PLAYER_STATE_DRIVER)
{
if(MEDICCar(newcar))
{
if (pInfo[playerid][Fraktion] == 4)
{}
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,ROT,"Du bist kein Mietglied der Medics");
return 1;
}
}
}
return 1;
}
Was soll das werden ne Party?
Alter grauenhaft, nicht ma als ich gecopiet und gepastet hab (damals :D) sah das so aus
Ich nehm den Code ma kurz auseinander
als erstes nehmen wir mal an der Spieler ist in der Fraktion Medic
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new newcar = GetPlayerVehicleID(playerid);
if(newstate == PLAYER_STATE_DRIVER) // Du fragst hier ab ob der Spieler Fahrer ist
{
if(LSPDCar(newcar))
{
if (pInfo[playerid][Fraktion] == 1) { } // unnötige if else verschachtlung if(pInfo[playerid][Fraktion] != 1) reicht voll kommen aus
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, ROT, "Du bist kein Polizist");
return 1;
}
}
}
if(newstate == PLAYER_STATE_DRIVER) // Da wir ja annehmen das der Spieler in der Fraktion Medic ist läuft der Code weiter und du fragst wieder ab ob Fahrer ist -> du machst das 2 mal wozu?
{
if(FBICar(newcar))
{
if (pInfo[playerid][Fraktion] == 4) { } // Gleiche wie beim LSPD
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,ROT,"Du bist kein Mietglied der FBI");
return 1;
}
}
}
if(newstate == PLAYER_STATE_DRIVER) // Hier schon wieder ne abfrage es reicht einmal vollkommen aus
{
if(SFPDCar(newcar))
{
if (pInfo[playerid][Fraktion] == 5) { } // Gleiche wie oben -.-'
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,ROT,"Du bist kein Mietglied des SFPD");
return 1;
}
}
}
if(newstate == PLAYER_STATE_DRIVER) // Hier haben wir nummer 4 deiner Abfrage... Es wird langsam langweilig...
{
if(MEDICCar(newcar))
{
if (pInfo[playerid][Fraktion] == 4) // Gleiche wie vorher auch -.-'
{}
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,ROT,"Du bist kein Mietglied der Medics");
return 1;
}
}
}
return 1;
}
Du bist jetzt 4 Mal die Abfrage durchgegangen ob der Spieler Fahrer ist -.-'
Der Server wird sich nachher bei größeren Script bedanken...
Und Newbies lernen falsche Techniken
Das mit den car Funktionen hab ich dir ja schon erklärt ![]()
wärste so nett und verrätst uns/mir wie du das angestellt hast?
Haste ma ne system wiederherstellung versucht?
Hilft dabei meistens
Eine frage was bringt CallLocalFunction ?!?
Kein Problem ![]()
Ich versuchs ma zu erklären ![]()
Wenn du eine Include schreibst kannst du ja nicht auf die Funktionen des GMs zugreifen, aber mit der CallLocalFunction geht das.
Du greifst sozusagen auf das aktive Script zu, in dem die Include eingebunden ist.
ich finde es nicht so gut für anfänger da er nicht gerade Resourcensparend ist....
Ehm ja ganz toller Kommentar, als ob Anfänger genau wüssten wie sie Resourcensparend/schonend scripten -.-'
Wäre aber schön wenn du das ma updaten könntest, unteranderem sind publics total unnötig wenn du sie nicht per Timer oder CallLocalFunction oder CallRemoteFunction aufrufst ![]()
Du könntest auch noch den schnipsel einbauen den ich gepostet hab bzw die anderen daran anpassen
PasteBin MUSS vorliegen sonst kein DownLoad bzw keine DownLoadlink
//Edit: Hier nochma die Regel
ZitatBei sämtlichen Veröffentlichungen (egal ob Gamemode, Filterscriopt, Tools, Plugins ,..) MUSS der Quellcode beigelegt oder verlinkt werden, dies dient dem Schutz der User um keine Schadsoftware zu verbreiten. Über Ausnahmen lässt sich diskutieren. Falls der Code für Pastebin o.ä. zu lang ist besteht die Verpflichtung diesen als normale Textdatei darzulegen.
Wo finde ich die Bots denn, bzw wo fahren die rum?
versuchs ma mit tabs ist glaub ich \t
also
format(string,sizeod(string),"blaaaa \tbaaaa");
so in etwa
Wenn das für die 0.3b Version ist brauchst du das nur mit den 0.3c Includes Compilen
Nette Idee ![]()
Vielleicht baust du das noch so um, das, wenn man der Server startet bzw das Filterscript, geprüft wird ob das Passwort geändert wurde wenn nicht --> Server aus oder das FS Lädt nicht
versuchs
oder hast du was in OnPlayerText geändert?
Klar kannst du deine Festplatte an den PC anschließen, trozdem wird dir dein Rechner sagen, dass da nix drauf ist.
Du wirst wieder einspezielle Tool nutzen müssen, darum find ich das einfacher mit nem USB Stick, denn dafür muss ich nicht noch was extra an Kabeln kaufen ![]()
Danke Jay_S für deinen doch so sinnvollen und hilfreichen Beitrag...
Ansich find ich das script nicht schlecht, aber man kann es auch kürzer machen
z.b.:
stock FBICar(vehicleid)
{
for(new i = 0; i < sizeof(FBICars); i++)
if(vehicleid== FBICars[i]) return 1;
return 0;
}
funktioniert bei mir tadellos
und warum hast du strget und sscanf drin?
entscheid dich für eins...
//Edit: falls wieder einer mekert
stock FBICar(vehicleid)
{
for(new i = 0; i < sizeof(FBICars); i++) { if(vehicleid== FBICars[i]) return 1; }
return 0;
}
alles das gleiche ![]()
Also ich will nicht ausschließen das es geht, nur denk ich das es besser wäre wenn du eine bereits gebannt xbox nimmst oder eine xbox die nie mit xboxlive verbunden ist sonst wirst du definitiv gebannt.
Ich wüsste jetzt auch keine möglichkeit wie es gehen soll, aber du solltest GTA IV nicht auch der Festplatte sichern sondern aufm USB-Stick kann man ja konfigurieren ![]()
Sonst bekommst du nachher Probleme damit an die Daten zu kommen.
An die Daten zu kommen sollte kein Problem sein.
Zum Öffnen des USB-Sticks musst du ein spezielles Programm nutzen mit Windows kommste da nicht weit ![]()
Ich glaub das Programm heißt Xplorer360