Gute Tag Community,
Ich wollte fragen ob jemand german nova esports kennt wenn ja gibt es ja da ein PTP system sowas möchte ich mir auch zulegen könntet ihr mir tipps geben wie ich das mache ?
MfG
Master147
Gute Tag Community,
Ich wollte fragen ob jemand german nova esports kennt wenn ja gibt es ja da ein PTP system sowas möchte ich mir auch zulegen könntet ihr mir tipps geben wie ich das mache ?
MfG
Master147
was zur hölle ist ein "PTP - System"?
meine protect the präsident
Also ich bitte euch hier nicht so agressiv zu sein
und PTP ist ein Event das fast jede woche da veranstaltet wird.
Es läuft so ab das es ein Präsidenten gewählt wird und von den 2Gruppen abhaut.
Es gibt 3 Gruppen
1.Gruppe : Staat
2.Gruppe : Mafia/Gangs
3.Gruppe : Zivis
der Staat verteildigt na klar den Präsidenten und die 2 anderen Gruppen versuchen ihn zu töten.
Das Event soll 90min dauern wenn die Zeit um ist soll der Staat sein Gehalt kriegen.
wenn ein Zivi den Präsi killt soll er ganz alleine die 1Mio kriegen.
Also wenn ihr mir ein Tipp dafür gibt wie ich das scripten kann könnte ich euch bedankbar sein .
Ich habe das mit dem Befehl garnicht kapiert den wenn ich /ptp z.b 13 eingebe soll bei jeden steht Der heutige Präsident ist id13 versucht ihn zu killen
und wie mache ich das mit den Gruppen ?
In dem du dir die Grundlagen ansiehst und dann durch eine Variablen-Abfragen oder eine Funktion ausliest, ob der Spieler Zivlist/GangMember/Präsi ist.
Wenn du selbst das nicht hinkriegst - Back to the basics
Mit einem Timer
nen Befehl
und if abfragen, in dem du abfragst, wer in welcher frak ist.
Und dann das geld zu ordnest
wie mache ich das mit dem Befehl ?
wenn ich ja /ptp eingebe und danach seine id wie kann ich das so machen das man ihn killen muss ?
So ähnlich könnte dein System aussehen^^
vllt hast du jetzt eine idee.
new Event;
//Bei /event o.Ä
if(Event == 0)
{
Event = 1;
SendClientMessageToAll(Farbe, "Das PTP Event wurde gestartet! "):
SetTimer
return 1;
}
else
{
SendClientMessage(playerid, Farbe, "Das Event läuft bereits! ");
return 1;
}
//Unter OnPayerDeath
if(Event == 1)
{
if(!IsACop(killerid) && IsAPräsi(playerid)
{
giveplayermoney(killerid, 1000000);
sendclientmessagetoall(farbe, "... hat den Präsidenten getötet! das event ist vorbei! ");
KillTimer
}
}
mal ein kleiner aufbau^^
ok danke das kann mir bisschen weiterhelfen.
Jetzt möchte ich das so haben das ich nach /ptp eine id eingeben kann und er zum Präsi gemacht wird.
Wie tuhe ich das ?
Wenn er nur für das Event ein Präsi sein soll, würde es doch so gehn.
new Präsi[MAX_PLAYERS];
//Bei deinem /ptp befehl
Präsi[Spieler] = 1; //Jetzt ist er ein Präsi
//Und bei OnPlayerDeath wird gefragt ob der tote ein Präsi ist.
if(Präsi[playerid] == 1)
{
}
und wie kann ich den Namen auslesen lassen?
ich zwinge euch garnicht das zu machen ich frage ja nur nach
lesen dann schreiben!
Trotzdem sollst du dafür die grundlagen lernen, weil das nichts anderes ist.
Grundlagen lernen oder jemanden mit dem System beauftragen,
Darum ist er ja hier -_-
Nach meiner meinung nach funktioniert das am besten mit ocmd
Das würde dann so aussehn
ocmd:ptp(playerid,params[])
{
new pID; //Hier die definition wie wir den anderen Spieler nennen wollen
if(sscanf(params,"u",pID/*Ob /ptp im zusammenhang mit einer ID angegeben wird */)) return SendClientMessage(playerid,FARBE,"Was für eine meldung kommen soll, wenn er die Playerid weg gelassen hat");
Präsi[pID] = 1; //Hier wird der Spieler den wir angegeben haben Präsident gemacht
//Was dann noch alles passiert kannst du selber machen, denke ich^^
return 1;
}
so habe mein befehl geschrieben nun wenn mich einer killt geht der Server down
Hier mein befehl
ocmd:ptp(playerid,params[])
{
new pID,name[24],string[128];
if(sscanf(params,"u",pID)) return SendClientMessage(playerid,ROT,"Verwendung: /PTP [spielerid]");
PTP=1;
Praesi[pID]=1;
GetPlayerName(pID, name, 24);
SendClientMessageToAll(ROT,"[__________|Protect the Präsident|___________]");
format(string, sizeof(string), "Das PTP Event ist gestartet der Präsident ist %s", name);
SendClientMessageToAll(BLAU, string);
SendClientMessageToAll(BLAU,"Wer ihn tötet kriegt 1Mio auf sein Konto eingezahlt");
SetTimer("PTPtimer",5400000,false);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(PTP==1)
{
new pID;
if(Praesi[pID]==1)
{
new name[24];
GetPlayerName(pID, name, 24);
SendClientMessageToAll(ROT,"%s hat den Präsident getötet");
GivePlayerMoney(killerid,1000000);
SendClientMessage(killerid,BLAU,"Du hast den Präsident getötet");
return 1;
}
}
return 1;
}
was ist falsch korrekturen könnte es auch geben
public OnPlayerDeath(playerid, killerid, reason)
{
if(PTP==1)
{
if(Praesi[playerid]==1)
{
new name[24];
GetPlayerName(playerid, name, 24);
SendClientMessageToAll(ROT,"%s hat den Präsident getötet");
GivePlayerMoney(killerid,1000000);
SendClientMessage(killerid,BLAU,"Du hast den Präsident getötet");
return 1;
}
}
return 1;
}
So kannst du das nicht machen, hier gibt es kein pID^^
Bei OnPlayerDeath gibt es nur playerid und killerid, ausser du machst eine Schleife rein
Musst den String formatieren um den Namen einzufügen.
Das geht ganz leicht mit der format function
http://wiki.sa-mp.com/wiki/Format
@Vorposter:
Aber es gibt die ID des gestorbenen, und die desjenigen, der ihn getötet hat
und wie mache ich das so das jeder eine waffe bekommt