Ich nutze dcmd,
kA wie ocmd definiert ist, ich hätte aber gedacht, dass alle ocmd Befehle auch im onplayercommandtext drinne sind ?
Oder werden die schon davor weggefiltert ?
Beiträge von Sry4pwn
-
-
Mhm, also ich löse sowas immer so.
ocmd:tban(playerid, params[])
{
New str[64];Format(str, 64, "timeban %s", params);
OnPlayerCommandText(playerid, str);
}] -
Du kannst doch nicht Abfragen ob ein Spieler in 2 Fraktionen ist, was ist denn mit dir los
&& = UND
= ODERMfG
oh doch, das kann ich.
Ich frage nämlich ab ob er NICHT in fraktion 1 ist und ob er NICHT in fraktion 3 ist.
nur dann soll er die errormessage kriegen,wenn ich das mit oder machen würde, würde er mir die errormessage ausgeben, obwohl ich in einer der fraktionen bin.
verstehste ?
sonst würde ich abfragen ob er NICHT in fraktion 1 oder NICHT in fraktion 3 ist.du kannst es theoretisch auch so machen:
if(IsSpielerInFraktion(playerid,1) || IsSpielerInFraktion(playerid,3)) {
...
}
else return SendClientMessage(...); -
jaa klar, brauchen tu ichs nicht...
aber ich finds meist übersichtlicher, muss jeder für sich wissen...^^ -
ja, das stimmt, aber dann wären trotzdem noch viele fehler gewesen, am besten berichtigst du alle, bzw erklärst, wo das > zeichen hinkommt, anstatt immer irwelche begriffe zu schreiben, da kennt sich kein anfänger mit aus...
-
naya, jetz fragt er ab ob er nicht in der fraktion ist oder nciht in der anderen ist
&& stimmt schon, wenn er in keiner Fraktion ist soll er die client message schicken
if(!IsSpielerInFraktion(playerid,1) && !IsSpielerInFraktion(playerid,3)) return SendClientMessage(...);
else {...}aber die abfrage stimmt auch nicht so
das gehört so:
stock IsSpielerInFraktion(playerid,fraktionsid)
{
if(GetPVarInt(playerid,"Fraktion")==fraktionsid)return 1;
return 0;
} -
public OnPlayerDeath(playerid, killerid, reason)
{
if(GetPVarInt(killerid,"Fraktion")==9)
{
if(GetPVarInt(playerid,"Kopfgeld")>0)
{
GameTextForPlayer(killerid,"Auftragsmord", 3000, 1);
GivePlayerMoney(killerid, GetPVarInt(playerid,"Kopfgeld"));
DeletePVar(playerid,"Kopfgeld");
}
}
return 1;
} -
funktioniert aber ne
-
naya, gibt sicher schöneres, tut aber seinen zweck...
if(newkeys & KEY_FIRE) {
new id=GetPlayerTargetPlayer(playerid);
if(id!=INVALID_PLAYER_ID) {
if(IsPlayerNPC(id)) {
new damage=GetPVarInt(id, "damage");
if(damage<80) SetPVarInt(id, "damage", damage+10);
else {
if(damage>=80) { //wenn damage zu hoch, dann spieler sterben lassen
if(IsPlayerInAnyVehicle(id)) RemovePlayerFromVehicle(id); //anim funktioniert im car nicht
OnPlayerDeath(id, playerid, 47);
ApplyAnimation(id,"CRACK","crckdeth1",4.1,0,1,1,1,0,1);
SetTimerEx("kickPlayer", 6000, false, "i", id);
}
}
}
}
}dazu braucht man aber dann noch die public:
forward kickPlayer(playerid);
public kickPlayer(playerid)
{
Kick(playerid);
return 1;
} -
Onplayergivedamage, nicht onplayertakedamage
-
ja theorethisch, aber in den ketten sind meistens auch so kleine laufräder,
und ich denke es ist vom programmieren her einfacher dem panzer einfach viele räder zu geben, anstatt nochmal eine ausnahmen für ketten zu machen.hat nicht die andromada auch recht viele räder ?
kA -
mhm naya ich hab kA, verwende von anfang an pvars,
wäre aber trotzdem mal gut zu wissen wie ?? -
meistens sinds klammerfehler, oder zu viel gesetzte ";"
ist aber ohne fehlermeldung relativ schwer zu finden, deswegen so oft wie möglich compilen, und wenn was nicht geht, dann im letzten teil schaun, dann kann man den bereich vom fehler einschränken... -
noch etwas zu pvars,
ja sie sind langsamer und ressourcenfressender...
aber der vorteil von pvars ist, dass man sie auch ganz einfach in filterscripts auslesen kann.
Dies ist mit arrays bzw enums nicht so einfach möglich...Außerdem kann man mal kurz sachen speichern und die pvars dann mit deletepvar wieder löschen...
natürlich, kann man auch im enum eine variable zB reason nennen, oder so ähnlich und dann diese verwenden wenn man zwischen 2 befehlen etwas zwischenspeichern will,
wenn dabei jedoch zwei variablen gebraucht werden, braucht man schon wieder 2, oder es gibt bugs...
Mit PVars hast du dieses Problem nicht.Jeder hat aber seine eigenen Vorlieben, hier nur nochmal die vorteile der pvars
-
Gibts nicht auch eine abfrag die getplayerspecialaction lautet ?
Frag das doch einfach bei deinem Schild CMd ab.Wenn nicht, dann sorry.
-
Naya also erstens brauchst du nicht erwarten, dass dir jemand den ganzen Code macht,
Und im allgemeinen musst du garnicht dein komplettes Script umstellen, du kannst auch strcmp.für cmds ohne Parameter hernehmen und ocmd für Befehle mit.
Dafür musst du nicht alles umstellen
-
Mit oder?
Scheise, habe das Zeichen am Handy nich, Naya zwei so senkrechte striche.
-
Ah okay chillig, sorry das wusste ich ned.
Wie gehtn das genau ?
-
:facepalm:
Die 4 tut er bei der z Koordinaten dazu, damit er nicht im Objekt steht.
Also.Word er einmal nach oben geslapt und fällt dann runter.
Und das is dann nich Grad sauber gescriptet -
Lass mal die Schrift klein...
Naya, in n++, werden dir Funktionen und defines angezeigt und vervollständigt, man sieht während man eine Funktion schreibt die Parameter die man braucht.
Die Formatierung ist leichter und es hat beim einfügen nicht so komische Fehler wie pawno,Die Nachteile sind, dass es n extra Programm ist, und man das Script vorm compilen immer speichern muss.(aber das is mit strg s kein ding)