Beiträge von M4rciii
-
-
Hallo, hier ist ein Tutorial für Timer. Viel Spaß xD
Also, die Grundlage ist es einen Timer zu erstellen, man benutzt SetTimer und SetTimerEx:
SetTimer(funcname[], interval, repeating);
SetTimerEx(funcname[], interval, repeating, const format[], {Float,_}:...);funcname: Die Funktion, die nach der abgelaufenen Zeit abgerufen werden soll.
interval: Die Zeit des Timers bis zur Ausführung in MILLISEKUNDEN
repeat: Soll der Timer wiederholt werden? 1=JA 0=NEIN
Beide Timerfunktionen geben die TimerID zurückBeispiel:
CheckTimer = SetTimer("CheckPlayers",5000,1); // Timer mit Wiederholung alle 5000ms = 5 Sekunden
WerbungsTimer = SetTimer("Werbung",5*60*1000,1); // Timer mit Wiederholung alle 5*60*1000ms = 300000ms = 300 Sekunden
DelayTimer[playerid] = SetTimerEx("Teleport",500,0,"iffff",playerid,X,Y,Z,A); // Timer ohne Wiederholung nach 500ms = 0,5 SekundenEs Fällt auf: Da ist noch was bei SetTimerEx
Hierbei werden Variablen mit dem Timer mitgeliefert. "iffff" bedeutet, es wird 1 Integer(playerid) gefolgt von 4 Floats(X,Y,Z,A) mitübertragen.
Hier eine Übersicht, welche Buchstaben man für was einsetzen muss:
i = Integer
d = Dezimalzahl
s = String
b = Bool
f = FloatDie Funktion "Teleport" könnte so aussehen:
public Teleport(id,Float:X,Float:Y,Float:Z,Float:A)
{
SetPlayerPos(id,X,Y,Z);
SetPlayerFacingAngle(id,A);
}VORSICHT: Sowas würde nicht mit Standardfunktionen wie SetPlayerPos funktionieren.
Wenn ein Timer gestoppt werden soll, zum Beispiel beim Beenden des Gamemodes benutzt man KillTimer.
KillTimer(timerid);timerid: Die TimerID die bei SetTimer(Ex) zurückgegeben wurde
SetTimer und SetTimerEx können mit KillTimer beendet werden...Ich hoffe ich konnte euch damit weiterhelfen, sodass es reibungslos läuft.
Ich werde es evtl noch etwas updaten...MfG, M4rciii
-
Das kann eig nicht sein...
public OnPlayerDeath(playerid, killerid, reason)
{
dkills[killerid]++;
ddeaths[playerid]++;
return 1;
}
Die KillerID bekommt einen Kill dazu und die PlayerID(der gekillte) bekommt einen Tod dazu...Ich seh den Fehler nicht.
Bist du sicher, dass zu alles andere rausgemacht hast? -
if (strcmp(cmdtext, "/auf", true)==0)
{
if(PlayerToPoint(15.0, playerid, -1514.9021, -816.6779, 58.5230))
{
SetObjectRot(Tor,0.0000,0.8594,258.7500);
}
return 1;
}if (strcmp(cmdtext, "/zu", true)==0)
{
if(PlayerToPoint(15.0, playerid, -1514.9021, -816.6779, 58.5230))
{
SetObjectRot(Tor,0.0000,270.6186,258.7500);
}
return 1;
}if(PlayerToPoint(15.0, playerid, -1514.9021, -816.6779, 58.5230)) würde heissen ob er NICHT im Radius 15 ist.
Und lösch das #define PlayerToPoint, das hilft bei "undefined symbol" auch nicht weiter und ersetz es hiermit:
stock PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
}
return 0;
} -
Der Gemüseeintopf!!!
Ich find das Video arschgeil xD
Und "Ich bin ein Ziegelstein" auch -
Also ich hab mit jetzt die Arbeit gemacht und das alles hier in einer funktionierenden Version hochgeladen: breadfish.de/wcf/attachment/596/
Füg es in deinen GM ein -
public OnPlayerCommandText(playerid, cmdtext[]) {
if (strcmp(cmdtext, "/auf", true)==0)
{
MoveObject(Tor,2028.244141, 1338.613037, 9.987190,4);
return 1;
}if (strcmp(cmdtext, "/schrankehoch", true)==0)
{
SetObjectRot(Schranke,rotX,rotY,rotZ);
return 1;
}if (strcmp(cmdtext, "/zu", true)==0)
{
MoveObject(Tor, 2028.251099, 1337.621704, 9.987190,4);
return 1;
}
return 0;
}Bei SetObjectRot(Schranke,rotX,rotY,rotZ); musst du die Rotationen eintragen im hochgefahrenen Zustand.
-
SetTimerEx("Flash",300,0,"p",playerid);
SetTimerEx("Disableflash",25000,0,"f", playerid);
Playerid ist also eine Float oder ein "p"??
Du kannst I=Integer oder D=Dezimalzahl benutzen:
SetTimerEx("Flash",300,0,"i",playerid);
SetTimerEx("Disableflash",25000,0,"i", playerid);
Wie du es gemacht hast, gehts nur für ID 0. -
-
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/opengate", true))
{
if(gTeam[playerid] == TEAM_COPS)
{
MoveObject(lspdgate, 1597.288696, -1637.887085, 14.706839, 4.0);
SendClientMessage(playerid, 0xAAAAAAAA, "Tor wurde geöffnet");
SetTimer("lspdgateclose",3000, false);
}
else
{
SendClientMessage(playerid, 0xAAAAAAAA,"Du musst Polizist sein um das Tor zu öffnen!");
}
return 1;
}
return 0;
} -
[wiki][/wiki]Bei dieser Zeile ist etwas falsch eingerückt. Rück es richtig ein, oder füge das hier oben wo hin ein:
#pragma tabsize 0EDIT: Yeah, erster
-
-
AddPlayerClass(1,1361.7102,-1647.5931,13.3828,270.1750,0,0,0,0,0,0);
Skin-ID 1 gibt es nicht...
SKIN-IDsAußerdem fehlt bei RequestClass das return, daran könnte es liegen...
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
} -
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER) // Als Fahrer
{
SendClientMessage(playerid,COLOR_YELLOW," Du bist ein Fahrer xD");
}
if(newstate == PLAYER_STATE_PASSENGER) // Als Beifahrer
{
SendClientMessage(playerid,COLOR_YELLOW," Du bist ein Beifahrer xD");
}
return 1;
} -
Zeig uns mal dein OnPlayerRequestClass und OnPlayerRequestSpawn. Hast du auch AddPlayerClass im Script?? Ohne kanns ja nicht gehen.
-
Hab mein Radio auf Lautstärke 0, also hör ich das nicht allzu oft xD
-
Welcher Ausschnitt aus GTA??
Hab nix gehört, was an GTA erinnert -
-
if(strcmp(cmd,"/ip",true) == 0)
{
if(PlayerInfo[playerid][pAdmin] >= 1)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid,COLOR_YELLOW," /ip [id]");
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
new ip[15];
GetPlayerIp(giveplayerid,ip,sizeof(ip));
GetPlayerName(giveplayerid,giveplayer,sizeof(giveplayer));
format(string,sizeof(string)," %s's IP: %s",giveplayer,ip);
SendClientMessage(playerid,COLOR_YELLOW,string);
}
}
else SendClientMessage(playerid,COLOR_YELLOW," Spieler nicht online!");
return 1;
} -
@Maercell,
es geht hier um sscanf :0Ja, aber was bringt es sscanf zu nutzen, wenn man nur EIN Integer braucht. Außerdem gehts auch um DCMD