Fragt "if(TERRORIST)" bei dir auch nach der playerid ?
Also wie im GF "if(PlayerInfo[PLAYERID][pTerrorist] == 1)" ? Also das eine playerid in Verbindung mit "TERRORIST" steht ?
Fragt "if(TERRORIST)" bei dir auch nach der playerid ?
Also wie im GF "if(PlayerInfo[PLAYERID][pTerrorist] == 1)" ? Also das eine playerid in Verbindung mit "TERRORIST" steht ?
Kannst du mir sagen, wie ich
das bei OnPlayerDeath hinkriege?
Habe es noch nicht probiert,
habe auch keine Vorstellung, wie ich es probieren soll.
So nach dem Prinzip:
new WarPointFraktionX; //oben im script
Dann, wenn jemand eine Zone angreift und alles beginnt, setzt du eine Variable auf 1 oder so, das dann zeigt, dass ein Kampf gerade läuft.
Diese Variable fragst du bei OnPlayerDeath ab und du fragst ab, ob einer in der Zone getötet wurde:
//onplayerdeath
if(WarStarted == 1) // also wenn der Kampf läuft
{
if( HIER FRAGEN OB 'Killerid' IN DER FRAKTION X IST)
{
if( HIER FRAGEN OB 'Playerid' IN DER FRAKTION Y IST)
{
if(IsPlayerInZone(playerid, minX, minY, maxX, maxY) && IsPlayerInZone(killerid, minX, minY, maxX, maxY)) // Koordinaten der Gangzone
WarPointFraktionX ++;
}
}
}
So fragst du ab, ob killerid playerid in der bestimmten Zone getötet hat. Wenn ja, kriegt killerid ein Punkt.
Falls der Server ausgeht oder du ihn zwischendurch restarten möchtest, kannst du diese Variablen auch direkt in eine Datei speichern und beim Serveranmachen sofort auslesen und den Timer weiter laufen lassen.
Probiers, Übung macht den Meister
SetTimerEx("Log1", 3500, 0, "is", playerid);
Du hast "Log1" geschrieben, aber dein forward ist "log1", also klein geschrieben.
1. Du erstellst mit GangZoneCreate ein paar Zonen, die einnehmbar sind.
2. Wenn jemand in der Zone steht, und die Zone mit einem Befehl einnehmen will, färbt sie sich in die Farbe der Fraktionsfarbe des Spielers.
3. Wenn jemand diese Zone nun angreift, lässt du ein Timer starten und die Zone blinken: GangZoneFlashForPlayer(playerid, zoneid, color)
4. Wenn jemand aus einer Fraktion den anderen aus einer anderen tötet, werden punkte gezählt: Passiert alles unter OnPlayerDeath
5. Wenn der Timer zuende ist, vergleichst du die Punkte. Wer mehr hat, hat gewonnen und die Zone färbt sich in die Fraktionsfarbe: GangZoneShowForPlayer(playerid, zoneid, color)
Wo kommst du genau nicht weiter ?
Diese Funktion meint er ne:
public Encrypt(string[])
{
for(new x=0; x < strlen(string); x++)
{
string[x] += (3^x) * (x % 15);
if(string[x] > (0xff))
{
string[x] -= 256;
}
}
return 1;
}
1. Pickup:
Unter OnGameModeInit erstellst du ein Pickup:
CreatePickup(Pickupid, Typ, X, Y, Z); // Typ --> 1 ist nicht aufhebbar
Dann fragst du bei OnPlayerPickupPickup, ob er ein Cop ist:
if( HIER ABFRAGEN OB DER SPIELER EIN COP IST )
{
// wenn er ein cop ist und das pickup aufhebt, was soll dann passieren
}
2. Bestimmtes Auto:
Zitatoder wie amcht mann das das nur z.B. cj ein bestimmtes auto fahreen kann ?
So wie ich dich verstehe, darf nur die Skin-ID CJ ein bestimmtes Auto fahren ? Wenn so, dann so:
Unter OnPlayerStateChange fragst du ab, ober ein eine bestimmte Skin-ID hat:
if(newstate==PLAYER_STATE_DRIVER)
{
if(GetPlayerVehicleID(playerid) == FAHRZEUGID) //<-- FAHRZEUGID = das bestimmte Fahrzeug
{
if(GetPlayerSkin(playerid) == 0) // <-- CJ Skin-ID
{
}
else // wenn er keine CJ Skin-ID hat
{
RemovePlayerFromVehicle(playerid);
}
}
}
Wenn du aber meinst, dass nur der NAME CJ ein bestimmtes Auto fahren darf, dann so:
if(newstate == PLAYER_STATE_DRIVER)
{
if(GetPlayerVehicleID(playerid) == FAHRZEUGID) //<-- hier dasselbe mit dem bestimmten Fahrzeug
{
new plname[MAX_PLAYER_NAME];
GetPlayerName(playerid, plname, sizeof(plname));
if(strcmp(plname, "CJ", true) == 0)
{
}
else // wenn er nicht CJ heißt
{
RemovePlayerFromVehicle(playerid);
}
}
}
ZitatAch, ich finds immer wieder geil wie die Leute über andere dingen sagen von den Sie überhaupt keine ahnung haben.
Bevor ich zu jemanden sage das er Grundbasic gelernt hat und denkt ein Profie zu sein, wie du behauptest würd ich eher an mich selbst denken und nicht über andere blubbern,
du hast bestimmt keine ahnung vom Scripten, only Copy & Past...
Bist ja ein ganz witziger Junge. Ich habe nie behauptet, dass ich ein Profi bin, nur, dass du denkst, du wärst einer, was ich lächerlich finde. Was solls, vielleicht bin ich kein Profi, dafür bin ich auch kein verklatschter Junge wie du, der sein Leben vorm PC auslöscht und 24 Stunden am Tag seine Sucht nicht unterdrücken kann.
Mein pawno war auch schon mal kaputt, vollpfosten, grundbasis gelernt und dann für ein vollprofi halten
vollhorst, die klugste aussage die ich je gehört habe
Sollte das an mich gerichtet sein ?!
@Firefan:
Du kannst nicht einzelne Türen verschließen bzw. öffnen, wenn dann nur alle gleichzeitig. Dann kann aber weder der Beifahrer noch der Fahrer rein.
Vielleicht pawno kaputt, versuchs mal mit einem neuen pawno.
Das ist sehr aufwändig und daher wird niemand Lust haben es dir hier komplett zu scripten.
Ich rate dir das Bizsystem im GF anzugucken und deine Tankstellenbiz nach dem Prinzip in einer neuen Datei genauso zu machen.
Ob der Spieler im Auto sitzt, fragst du so ab:
if(IsPlayerInVehicle(playerid, fraktionscar[FRAKTIONSID][AUTOID]))
{
...
So fragst du nach einem bestimmten Fahrzeug.
Wenn du aber abfragen willst, ob ein Member in einem seiner Fraktionsautos sitzt, machst du es so:
if( HIER ABFRAGEN IN WELCHER FRAKTION DER MEMBER IST )
{
new fraktion = DIE OBIGE ABFRAGE;
for(new i = 0; i<sizeof(fraktionscar); i++)
{
if(IsPlayerInVehicle(playerid, fraktionscar[fraktion][i]))
{
// was passiert dann
}
else
{
// was passiert, wenn er in keinem der Fahrzeuge sitzt, die zu seiner Fraktion gehören
}
}
}
Das muss so sein:
for(new i = 0; i<MAX_PLAYERS; i++)
{
if(SpielerInfo[i][pfraktion] = ??) //<--- da muss nicht playerid, sondern ' i ' hin, weil es ja der fahrer ist
{
...
Und beachte: Oben hast du PlayerInfo[...][Fraktion] und unten PlayerInfo[...][pfraktion], setz es richtig.
Alles andere ist richtig. Das setzt du jetzt unter "public OnPlayerCommandText".
Wenn er string nicht definiert hätte, würde er doch gar nicht compilen können, ohne jegliche Meldungen.
Wann genau stürtzt der Server ab ?
Kannst du bisschen mehr vom "ondialogresponse" posten ?
Schaffst du selbst zu erstellen. Simple Abfrage:
if(strcmp(cmd, "/kidnap", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if( HIER ABFRAGEN OB ER IN EINER FRAKTION IST )
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "Befehl: /kidnap [playerid] [Sitz: 0 = hinten links, 1 = hinten rechts]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != playerid)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "Befehl: /kidnap [playerid] [Sitz: 0 = hinten links, 1 = hinten rechts]");
return 1;
}
new sit = strval(tmp);
if(sit < 0 || sit > 1) { SendClientMessage(playerid, COLOR_GREY, "Wähle den Sitzplatz nicht unter 0 oder über 1!"); return 1; }
if(GetDistanceBetweenPlayers(playerid, giveplayerid) < 2)
{
for(new i = 0; i<MAX_PLAYERS; i++)
{
if( HIER ABFRAGEN OB ' i ' IN DER GLEICHEN FRAKTION IST )
{
if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
{
if(GetDistanceBetweenPlayers(playerid, i) < 2)
{
new car = GetPlayerVehicleID(i);
if(sit == 0)
{
PutPlayerInVehicle(giveplayerid, car, 2);
}
else if(sit == 1)
{
PutPlayerInVehicle(giveplayerid, car, 3);
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du bist nicht in der Nähe eines Fahrers mit einem Auto!");
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Der Spieler aus deiner Fraktion ist nicht am Steuer!");
}
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Das Opfer ist nicht in deiner Nähe!");
}
}
}
}
}
}
So in etwa geht es.
(Ungetestet, eben mal schnell erstellt)
Warum versuchst du es nicht selbst ? Fühlt sich doch immer besser an, wenn man etwas selbst geschafft hat
Hmm, bei dir fragt er es so ab: Ist die Spieler ID 0 im Wagen ID 0, dann passiert nichts. Ist die Spieler ID 1 im Wagen ID 0, dann nichts, ansonsten respawnen. Ist die Spieler ID 2 im Wagen ID 0, dann nichts, ansonsten respawnen. Verstehst du es ? Ich denke, dass er es so abfragt. Bin mir nicht sicher, wie man das nun genau passend macht, aber probier es mal so:
public vspawn2()
{
for(new v = 0; v<CAR_AMOUNT; v++)
{
if(!IsAnyInVehicle(v))
{
SetVehicleToRespawn(v);
}
}
return 1;
}
stock IsAnyInVehicle(vehicleid)
{
for(new i = 0; i<MAX_PLAYERS; i++)
{
if(IsPlayerInVehicle(i, vehicleid);
{
return true;
}
}
return false;
}
Du musst diese Funktion unter "OnVehicleStreamIn" setzen:
public OnVehicleStreamIn(vehicleid, forplayerid)
{
if(IsACopCar(vehicleid))
{
if(!IsAState(forplayerid))
{
SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 1);
}
else
{
SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 0);
}
}
...