Wie würde es mit nem Timer gehen, das man wenn man jemanden angeschossen hat, der Spieler der angeschossen wurde 3sek sein /exit eingeben kann?
mfg
Wie würde es mit nem Timer gehen, das man wenn man jemanden angeschossen hat, der Spieler der angeschossen wurde 3sek sein /exit eingeben kann?
mfg
Variable für den Spieler erstellen und bei dem Befehl abfragen, und bei dem Timer nach den 3 sek die Variable wieder auf 0 setzen.
ZitatVariable für den Spieler erstellen und bei dem Befehl abfragen, und bei dem Timer nach den 3 sek die Variable wieder auf 0 setzen.
Mit welchem Public? da ich wissen will wann er angeschossen wird
Mit OnPlayerTakeDamage.
ZitatMit OnPlayerTakeDamage.
Mit SetTimerEx?
Ja natürlich.
ZitatJa natürlich.
klappt net
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid){
new string[128];
if(issuerid == INVALID_PLAYER_ID || playerid == INVALID_PLAYER_ID) return 1;
PlayerPlaySound(issuerid,17802,0.0,0.0,0.0);
format(string,sizeof(string)," -%.0f von %s",amount,PlayerName(issuerid));
SetPlayerChatBubble(playerid, string, GRÜN, 70.0, 1000*3);
SetTimerEx("AntiExit", 2500, false, "i", playerid);
AntiExit[playerid] = 1;
return 1;
}
forward AntiExits (playerid);
public AntiExits (playerid)
{
AntiExit[playerid] = 0;
return 1;
}
ocmd:l(playerid,params[])
{
if(AntiExit[playerid] == 1)return SendClientMessage(playerid,-1,"Du kannst er nacht 2.5sek wieder eine Arena verlassen durch den Hit");
if(Map[playerid] == 1)
{
if(dm[0][playerid] == 1)
{
if(dmcount[0] > 0)
{
dmcount[0] --;
}
}
if(dm[1][playerid] == 1)
{
if(dmcount[1] > 0)
{
dmcount[1] --;
}
}
if(dm[2][playerid] == 1)
{
if(dmcount[2] > 0)
{
dmcount[2] --;
}
}
for(new i; i != 3; ++i)dm[i][playerid]=0;
SendClientMessage(playerid,GRÜN,"[INFO] Du hast die Arena verlassen");
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
SetPlayerHealth(playerid,100);
Map[playerid] = 0;
CBug = 0;
SpawnPlayer(playerid);
}
return 1;
}
SetTimerEx("AntiExit", 2500, false, "i", playerid);
zu
SetTimerEx("AntiExit", 2500, false, "i", issuerid);
Weil der getroffene ja nach 2,5sec erst /exit machen darf. Nicht der, der geschossen hat.
ZitatSetTimerEx("AntiExit", 2500, false, "i", playerid);
zu
SetTimerEx("AntiExit", 2500, false, "i", issuerid);
Weil der getroffene ja nach 2,5sec erst /exit machen darf. Nicht der, der geschossen hat.
Funktioniert nicht beim /l Befehl kommt einfach man kann nicht 2.5sek verlassen
forward AntiExits (issuerid);
public AntiExits (issuerid)
{
AntiExit[issuerid] = 0;
return 1;
}
AntiExit[issuerid] = 1;
ZitatAlles anzeigenforward AntiExits (issuerid);
public AntiExits (issuerid)
{
AntiExit[issuerid] = 0;
return 1;
}
AntiExit[issuerid] = 1;
und beim /l Befehl AntiExit[playerid] == 1) oder ?
Ja, versuch es mal so.
new exitHitTime[MAX_PLAYERS];
public OnPlayerTakeDamage(...) {
exitHitTime[playerid] = gettime();
}
// beim exit befehl:
if (gettime() - exitHitTime[playerid] > ZeitInSekunden) {
return SendClientMessage(..., "Du darfst nicht raus");
}
// hier käme der normale exit
Bittesehr, gute Nacht.
Alles anzeigennew exitHitTime[MAX_PLAYERS];
public OnPlayerTakeDamage(...) {
exitHitTime[playerid] = gettime();
}
// beim exit befehl:
if (gettime() - exitHitTime[playerid] > ZeitInSekunden) {
return SendClientMessage(..., "Du darfst nicht raus");
}
// hier käme der normale exit
Bittesehr, gute Nacht.
Klappt i.wie net erst nach dem anschiessen kann man raus, davor steht das man nicht raus kann.
Dann häng an das exitHitTime[MAX_PLAERS] ein =0
Oder setze die variable beim connect auf 0
Dann häng an das exitHitTime[MAX_PLAERS] ein =0
Oder setze die variable beim connect auf 0
und nach dem Hit kann er sofort /exit eingeben obwohl ich die Zeit auf 5000 gestellt habe
if (gettime() - exitHitTime[playerid] > 5000) {
return SendClientMessage(playerid,-1, "Du darfst nicht raus");
Zeig mal bitte komplett alles, was mit dem Befehl zu tun hat.
Zeig mal bitte komplett alles, was mit dem Befehl zu tun hat.
new exitHitTime[MAX_PLAYERS]=0;
public OnPlayerConnect(playerid)
{
exitHitTime[playerid] = 0;
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid){
new string[128];
if(issuerid == INVALID_PLAYER_ID || playerid == INVALID_PLAYER_ID) return 1;
PlayerPlaySound(issuerid,17802,0.0,0.0,0.0);
format(string,sizeof(string)," -%.0f von %s",amount,PlayerName(issuerid));
SetPlayerChatBubble(playerid, string, GRÜN, 70.0, 1000*3);
exitHitTime[playerid] = gettime();
return 1;
}
ocmd:l(playerid,params[])
{
if (gettime() - exitHitTime[playerid] > 5000) {
return SendClientMessage(playerid,-1, "Du darfst nicht raus");
}
if(Map[playerid] == 1)
{
if(dm[0][playerid] == 1)
{
if(dmcount[0] > 0)
{
dmcount[0] --;
}
}
if(dm[1][playerid] == 1)
{
if(dmcount[1] > 0)
{
dmcount[1] --;
}
}
if(dm[2][playerid] == 1)
{
if(dmcount[2] > 0)
{
dmcount[2] --;
}
}
for(new i; i != 3; ++i)dm[i][playerid]=0;
SendClientMessage(playerid,GRÜN,"[INFO] Du hast die Arena verlassen");
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
SetPlayerHealth(playerid,100);
Map[playerid] = 0;
CBug = 0;
SpawnPlayer(playerid);
}
return 1;
}