Beiträge von Kaliber
-
-
Diese Variable:
FightSystem[TempZone][fsOwnerFaction]
Hat nicht den Wert 5,6,13,14,15,16,17 oder 22
Das heißt du musst das Script anpassen
mfg.
-
Du hast eine { vergessen, schreibe es so:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate==PLAYER_STATE_DRIVER)
{
if(GetPVarInt(playerid,"Carlienzs")==0)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,COLOR_RED,"Du hast kein Führerschein.");
}
else if(GetPVarInt(playerid,"Carlienzs")==1)
{
SendClientMessage(playerid,COLOR_RED,"/motor um den Motor zustarten!");
}
}
return 1;
}mfg.
-
Ne kleine Frage,wie lasse nen Textdraw Einblenden ?
habe in erstellt aber weder ShowTextdrawForAll noch ForPlayer
klappt...
Dann hast du ihn Falsch erstellt, schick mal den Code, den du geschrieben hast un sag auch unter welchen Callback du ihn geschrieben hastmfg.
-
Naja, sehr simpel und paar kleine Verbesserungen hätte ich:
1. Lösche mal alle überflüssigen Callbacks und oben nimm das mit dem #if defined Filterscript raus, das ist sinnlos, denn es ist ein Filterscript also scripte es auch einfach so
2. Bei deinen #defines fängt man bei 0 an
3. Die 5 news da hättest du in eine Zeile packen können
4. Nimm mal das OnGameModeInit, OnGameModeExit und OnPlayerRequest raus (das braucht man nur für ein Gamemode nicht für ein FS !)
5. Deine Commands anpassen z.B. so:
if (strcmp("/cvote", cmdtext, true, 10) == 0)
in
if (strcmp("/cvote", cmdtext, true, 6) == 0)Sind nur ein paar Tipps, nicht böse gemeint
mfg.
-
Poste mal bitte die stock-Funktion von:
IsAFightFaction
mfg.
-
Das musst du auch so schreiben
ocmd:freeze(playerid,params[])
{
new pID,string[128],string2[128];
if(sscanf(params,"u",pID))return SendClientMessage(playerid,ROT,"Benutzung: /freeze [ID]");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Der angegebene Spieler ist nicht connected!");
if(GetPVarInt(playerid,"AdminLevel")==0) return SendClientMessage(playerid,ROT,"Du bist kein Admin !");
TogglePlayerControllable(pID,0);
format(string,sizeof(string),"Du hast den Spieler %s gefreezed.",SpielerName(pID));
format(string2,sizeof(string2),"Du wurdest vom Spieler %s gefreezed!",SpielerName(playerid));
SendClientMessage(playerid,GRÜN,string);
SendClientMessage(pID,ROT2,string2);
return 1;
}mfg.
-
1. Hab nicht drauf geachtet.
2. Wieso ist es überflüssig?
3. Es ist ja ein String. Ich dachte string darf nur 64, 128 .... bis 1024 gehen. So hats mir mal jemand gesagtLg Sonderzeichen
2. Weil er sich dann wundert warum er Errors bekommt3. Nein, ein String kann von 0 bis unendlich gehen
Meistens verwendet man aber diese Reihe:
2,4,8,16,32,64,128,256/255,1024,2048,4096 //höher braucht man es eig nichtmfg.
-
Du musst das so schreiben, und bitte verschiebe nicht die if-Abfragen und die Zeilen wo die Variablen deklariert werden, sonst funktioniert das nicht !
if(strcmp(cmd, "/buyfuel", true) == 0)
{
if(PlayerInfo[playerid][pJob] != 22) return SendClientMessage(playerid,WHITE,"Du bist kein Trucker");
if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 453) return SendClientMessage(playerid, COLOR_GRAD1, "Du kannst nur mit einem Roadtrain Benzin kaufen!");
if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid))) return SendClientMessage(playerid,WHITE,"Dieser Truck hat keinen Anhänger !");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GOLD, "Benutzung: /buyfuel [Anzahl]");
new Anzahl = strval(tmp), sum = (PlayerInfo[playerid][pTrucker] + Anzahl);
if(GetPlayerMoney(playerid) < (Anzahl*100)) return SendClientMessage(playerid,WHITE,"Du besitzt zu wenig Geld für so viel Benzin !");
if(sum >= 2500) return SendClientMessage(playerid,WHITE,"Du hast schon 2500 Liter Benzin!");
PlayerInfo[playerid][pTrucker] += Anzahl;
new stringtrucker[128];
format(stringtrucker,sizeof(stringtrucker),"Du hast %d Liter Benzin gekauft! Du kannst dir nun eine Tankstelle aussuchen die Benzin benötigt!",Anzahl);
SendClientMessage(playerid,WHITE,stringtrucker);
GivePlayerMoney(playerid, -(Anzahl*100));
return 1;
}mfg.
-
Kaliber
Es hätte auch so funktioniert wenn er das S bei der sscanf abfrage entfernt hätte, oder?
Nein, da er playerid verwendet hatte bei SetPVarInt und nicht pIDDu machst eine normale SendClientMessage. Nur das du statt playerid pID benuzt.
//Variablen erstellen.
new playername[128], pidname[128], message[128];//Namen der Spieler auslesen und abspeichern.
GetPlayerC&PName(playerid, playerC&Pname, sizeof(playername));
GetPlayerNameC&P(pID, pidC&Pname, sizeof(pidname));//Nachricht an den Fahrschüler.
format(message, sizeC&Pof(message), "Du hast von %s einen Führerschein erhalten.", playername); //%s = Hier string einfügen | playername = Der ausgelesene Name wird statt %s eingefügt
SendClientMessage(C&PpID, COLOR_CODE, message);//Nachricht an den Fahrlehrer senden.
format(message, sizeC&Pof(message), "Du hast %s einen Führerschein gegeben.", pidname); //%s = Hier string einfügen | pidname = Der ausgelesene Name wird statt %s eingefügt
SendClientMessage(C&Pplayerid, COLOR_CODE, message);
2 Sachen dazu:
1. Dein C&P da drinnen ist überflüssig
2.
playername[128] //128 ?! dieser Array ist viel zu groß, 24 reicht vollkommen
Also schreibe für die Variable der Namen playername[24] und pidname[24]mfg.
-
COMMAND:givecarlienzs(playerid,params[])
{
new pID;
if(Spieler[playerid][Member] != 8) return SendClientMessage(playerid,COLOR_RED,"Du bist kein Fahrlehrer !");
if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_RED,"Benutzung: /givelicense [ID]");
if(GetPlayerMoney(pID) < 8000) return SendClientMessage(playerid,COLOR_RED,"Dieser Spieler besitzt keine 8.000$ !");
SetPVarInt(pID,"Carlienzs",1);
GivePlayerMoney(pID, -8000);
return 1;
}Das musst du so machen
mfg.
-
wtf was soll das bringen ? in den ordner ist doch nix ?
Hast du was zu verlierenNein, also mache es doch einfach
Vielleicht sind falsche Informationen in die Registry eingetragen worden oder was weiß ich
mfg.
-
Da steht es doch, neuinstallation könnte helfen, jetzt lösche diesen Ordner (sicher dir aber die .pwn Dateien von den Scripts) und downloade es dir neu
mfg.
-
Das wusste ich ja aber ich definier es so das man das nur mit nem Truck machen kann jedoch weiss ich zz die Roadtrainid nicht da das wiki Down/Blocked ist?
Die musst du doch gar nicht wissenEinfach oben in deinem Command einfügen:
if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid))) return SendClientMessage(playerid,rot,"Dieser Truck hat keinen Anhänger !");
mfg.
-
jop hilft alles nix..
und auf linux startet er deswegen such ich jetzt ein anderen streamer
Du hast das noch nicht so ganz verstanden, die Fehlermeldung kommt nicht wegen dem Streamer, sondern wegen deiner .dll Datei die da neben deiner server.exe liegt, lösche die bitte mal und zeige mir die Fehlermeldung die da kommtZusammenfassung: Bitte lösche alle .dll und .so Dateien, außer sie liegen in dem Ordner plugins
Und zeige mir die Fehlermeldung...
mfg.
-
Kaliber ich kaoiers immernoch nicht aber egal Danke
Ist doch ganz simpel, schau mal her:new Anzahl; //new deklariert eine neue Variable (Anzahl hat den Wert 0)
so jetzt wenn wir es so machen würden:
Anzahl = 1;//Wäre Anzahl 1
aber wir machen das:
Anzahl = strval(tmp);//tmp = eine Variable in der der Text steht, was der User eingegeben hat (/buyfuel [ANZAHL]) diese Anzahl steht in tmp und strval holt diese Zahl aus der VariableNochmal auf deinen Code bezogen:
if(strcmp(cmd, "/buyfuel", true) == 0)
{
if(PlayerInfo[playerid][pJob] != 22) return SendClientMessage(playerid,WHITE,"Du bist kein Bootsmann");
if(PlayerInfo[playerid][pTrucker] >= 2500) return SendClientMessage(playerid,WHITE,"Du hast schon 2500 Waren");
if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 453) return SendClientMessage(playerid, COLOR_GRAD1, "Du kannst nur mit einem Roadtrain Benzin kaufen!");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GOLD, "Benutzung: /buyfuel [Anzahl]");
new Anzahl = strval(tmp);
if(GetPlayerMoney(playerid) < (Anzahl*500)) return SendClientMessage(playerid,WHITE,"Du besitzt zu wenig Geld für so viele Waren !");//Wenn er zu wenig Geld hat
PlayerInfo[playerid][pTrucker] += Anzahl;
new str[128];
format(str, 128,"Du hast %d Waren gekauft und besitzt schon %d Waren !",Anzahl,PlayerInfo[playerid][pTrucker]);
SendClientMessage(playerid,WHITE,str);
GivePlayerMoney(playerid, -(Anzahl*500));//das hast du vergessen, er soll ja schließlich geld verlieren
return 1;
}mfg.
-
Weil tmp ein string ist und in diesem String befindet sich die Information einer Zahl (die Anzahl halt, was er eingibt) und strval formatiert den String in eine brauchbare Zahlmfg.
-
Mann muss aber vehicleid definieren
Ja so:new vehicleid = GetPlayerVehicleID(playerid);
mfg.
-
So sollte das aussehen:
if(strcmp(cmd, "/buyfuel", true) == 0)
{
if(PlayerInfo[playerid][pJob] != 22) return SendClientMessage(playerid,WHITE,"Du bist kein Bootsmann");
if(PlayerInfo[playerid][pTrucker] >= 2500) return SendClientMessage(playerid,WHITE,"Du hast schon 2500 Waren");
if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 453) return SendClientMessage(playerid, COLOR_GRAD1, "Du kannst nur mit einem Roadtrain Benzin kaufen!");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GOLD, "Benutzung: /buyfuel [Anzahl]");
new Anzahl = strval(tmp);
PlayerInfo[playerid][pTrucker] += Anzahl;
return 1;
}mfg.
-
Mach mal alle .dll Dateien die in der Nähe deiner server.exe liegen weg ! Nur im Ordner plugins sollten .dll oder .so Dateien sein !
mfg.