Er hat einen Innenraum irgendwo hingemappt und beim einsteigen wird man da hinein geportet...^^
Beiträge von Double-O-Seven
-
-
Double-O-Icons
Hi,
I've made a map icon streamer for my gamemode, because I couldn't find a good streamer or a streamer with a working link.
So, I've made my own one. No flickering icons, max 32 and limit set 500. (change it if you like)Functions:
CodeInitMapIconStreaming(); - Use this in your script to start streaming, you should use AFTER creating all map icons. CreateMapIcon(modelid,color,Float:x,Float:y,Float:z); - Create a mapicon. DestroyMapIcon(id); - Destroy an mapicon. MapIconUpdate(); - Don't use this in your script. ResetMapIcons(playerid); - Use this when a player disconnects. GetClosestUnusedMapIcon(playerid) - You don't need to use this. GetDistanceToPoint(playerid,Float:x,Float:y,Float:z); - You can use this for other things in your script, too.
Sorry, dass es Englisch ist, habe einfach den Text aus meinem Post auf sa-mp.com kopiert^^, sollte aber kein Problem sein
-
Benutz dini_FloatSet...
-
Falls diese Art von Doppelpost nicht erlaubt ist, bitte Beiträge zusammenfügen.
-
Guten Abend,
Da in Scriptwünschethread die Nachfrage nach einem Filterscript, mit welchem man Cheater usw. melden kann, besteht und ich selbst sowas habe, habe ich beschlossen, das in ein Filterscript zu packen und zu veröffentlichen.
/report <ID/Name> <Grund> um Cheater usw. zu melden. Es wird an alle Rcon-Admins gesendet und in ein File geschrieben.
Viel Spass!
-
Dann werde ich halt ein Filterscript machen (Double-O-Report^^) und es hier und auf forum.sa-mp.com veröffentlichen.
-
Hmm... ah... ne^^
-
-
if(cmdtext[0] == '/' && cmdtext[1] == 't')
{
new stringt[100];
new namet[100];
for(new i = 0; i <= MAX_PLAYERS; i++ )
{
if(IsPlayerConnected(i))
{
if(gTeam[playerid] == gTeam[i])
{
GetPlayerName(playerid, namet, sizeof(namet));
format(stringt,sizeof(stringt),"%s: %s",namet,cmdtext[3]);
SendClientMessage(i, COLOR_ORANGE, stringt);
}
}
}
return 1;
}Im Loop hast du return 0;^^ Daran liegts.
-
IsNumeric(const string[])
{
for (new i = 0, j = strlen(string); i < j; i++)
if (string[i] > '9' || string[i] < '0') return 0;
return 1;
}
stock strtok(const string[], &index,seperator=' ')
{
new length = strlen(string);
new offset = index;
new result[64];
while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
if ((index < length) && (string[index] == seperator))
{
index++;
}
return result;
}Ich habe geschrieben, dass noch strtok(...) benötigt wird Die Variablen für strtok(...) usw.:
new cmd[64],idx,tmp[64],pid;
cmd=strtok(cmdtext, idx);
Anstatt MAX_SLOTS MAX_PLAYERS benutzen.
Bisschen denken würd nicht schaden...
-
z.B.:
public OnPlayerRequestClass(playerid,classid)
{
ApplyAnimation(playerid,"PAULNMAC","wank_out",4.1,1,0,0,0,-1);
//mehr Sachen deiner Wahl...
return 1;
};D
-
stock ReturnUser(tmp[])
{
new playerid=INVALID_PLAYER_ID;
if(strlen(tmp)>=1)
{
if(IsNumeric(tmp))
{
if(IsPlayerConnected(strval(tmp)))
playerid=strval(tmp);
}
else
{
if(strlen(tmp)>=3)
{
new count;
for(new i=0;i<MAX_SLOTS;i++)
{
if(IsPlayerConnected(i))
{
if(strfind(PlayerName(i),tmp,true)!=-1)
{
playerid=i;
count++;
}
}
}
if(count>1)
{
playerid=INVALID_PLAYER_ID;
}
}
}
}
return playerid;
}
stock PlayerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
return name;
}
stock PlayerIP(playerid)
{
new ip[16];
GetPlayerIp(playerid,ip,16);
return ip;
}
stock PlayerReportPlayer(playerid,reportid,report[])
{
new h,m,s;
new d,y,month;
getdate(d,y,month);
gettime(h,m,s);
new string[512];
format(string,sizeof(string),"%d.%d.%d | %d:%d:%d | %s(%d,%s) meldet %s(%d,%s) wegen: %s\r\n",d,month,y,h,m,s,
PlayerName(playerid),playerid,PlayerIP(playerid),PlayerName(reportid),reportid,PlayerIP(reportid),report);
new File:log=fopen("Report.log",io_append);
fwrite(log,string);
fclose(log);
SendClientMessage(playerid,0xF60000F6,"Meldung erfolgreich gesendet.");
SendClientMessage(playerid,0xF60000F6,"Falls kein Admin online ist, wird sie später ein Admin lesen.");
format(string,sizeof(string),"[Meldung] %s (%d) meldet %s (%d) wegen: %s",PlayerName(playerid),playerid,PlayerName(reportid),reportid,report);
for(new i=0;i<MAX_PLAYERS;i++)
if(IsPlayerConnected(i))
if(IsPlayerAdmin(i))
SendClientMessage(i,0xF60000F6,string);
return 1;
}Der Command((strtok benötigt):
if(strcmp(cmd,"/melden",true)==0)
{
tmp=strtok(cmdtext,idx);
if(!strlen(tmp))
return SendClientMessage(playerid,0xF60000F6,"-Warnung- Anwendung: /melden <ID> <Grund>");
pid=ReturnUser(tmp);
if(!IsPlayerConnected(pid))
return SendClientMessage(playerid,0xF60000F6,"-Warnung- Anwendung: /melden <ID> <Grund>");
if(strlen(cmdtext[strlen(cmd)+strlen(tmp)+2])<3)
return SendClientMessage(playerid,0xF60000F6,"-Warnung- Anwendung: /melden <ID> <Grund>");
PlayerReportPlayer(playerid,pid,cmdtext[strlen(cmd)+strlen(tmp)+2]);
return 1;
}Sollte funktionieren. Hab ich aus meinem eigenen Script^^
-
Es streamt Checkpoints...
-
#include <Double-O-Checkpoints> ?
Die Funktionen die du brauchst, sind da definiert und PAWNO kompiliert diese Funktionen zusammen mit dem Rest. Du kannst aber auch alles kopieren und direkt in deinen Gamemode machen. Dann musst du nicht oben noch #include hinmachen.
-
Du speicherst es im Include-Ordner. Danach fügst du oben im Script #include <Double-O-Checkpoints> ein. Dann benutzt du die Funktionen. Ganz wichtig: DOCP_OnPlayerDisconnect im Script bei OnPlayerDisconnect(playerid,reason) unten hinzufügen. Genauso DOCP_OnGameModeInit im Script Unter OnGameModeInit() einfügen.
-
Nabend zum zweiten^^
Double-O-Checkpoints Download (INC)
Double-O-Checkpoints ist ein einfacher Checkpointstreamer. Er berechnet für jeden Spieler immer den nahesten Checkpoint und falls der Spieler nahe genug ist, wird er erstellt.
Funktionen:
- CreateCheckpoint(Float:x,Float:y,Float:z,interior,Float:size,Float:distance,showforall) - Checkpoint erstellen. showforall auf "true" setzen, um ihn - standartmässig für alle Spieler sichtbar zu machen.
- DestroyCheckpoint(cpid) - Checkpoint zerstören
- ShowCheckpointForAll(cpid,show) - Checkpoint für alle verstecken oder sichtbar machen
- ShowCheckpointForPlayer(playerid,cpid,show) - Das Obige für einen bestimmten Spieler
- DOCP_OnPlayerDisconnect(playerid) - Im Script unter OnPlayerDisconnect(playerid,reason) einfügen
- DOCP_OnGameModeInit() - Im Script unter OnGameModeInit einfügen
- CheckpointStreamer() - Nicht benutzen im Script
- GetDistanceToPoint(playerid,Float:x,Float:y,Float:z,&Float:dis) - Auch nicht
- GetClosestCheckpoint(playerid) - Auch nicht
- GetPlayerCheckpoint(playerid) -Nützlich bei OnPlayerEnterCheckpoint
- IsValidCheckpoint(cpid) - Sollte selbsterklärend sein.Beispiel für eine mögliche Anwendung:
Code
Alles anzeigenpublic OnPlayerEnterCheckpoint(playerid) { switch(GetPlayerCheckpoint(playerid)) { case 0,2,3: { GivePlayerMoney(playerid,500); SendClientMessage(playerid,0xFFFFFFFF,"You have entered a money checkpoint. Take the 500$."); return 1; } case 1: { Kick(playerid);//^^ return 1; } } return 1; }
Ich hoffe, jemand kann es brauchen! Viel Spass damit!
MfG Double-O-Seven
-
Nabend^^
Da ich Double-O-Vehicles bereits im offiziellen SAMP-Forum veröffentlicht habe, werde ich es auch hier tun.
Es ist ganz einfach: Filterscript laden, /menu1-5 benutzen und ein Fahr-/Flugzeug auswählen. Das vorherige Fahrzeug wird dann aber "zerstört", um Fahrzeugspam zu verhindern. Wenn man das Mausrad drückt, "ruft" man es zu sich.
Viel Spass
-
Hi,
ich habe ein kleines Derby gescriptet.
Die Idee kam kam vom Derby Event, der auf dem MG3 Clan-Server stattfindet jedes Wochende.
Da wir am Anfang nur mit Yrace+einem Teleportcmd in die Derbyarena das Derby durchführen konnte, hab ich nun ein richtiges gemacht.
Das Derby ist für maximal 50 Spieler gemacht(von der Anzahl der Bloodring Bangers her). Wer will und weiss, wie man das ändern kann, soll er es für sich tun
Das Derby kann nur von einem Admin gestartet werden mit /startderby und auch vorzeitig beendet werden mit /endderby. Auch das dürft ihr ändern, wenn ihr wollt.
Naja seht selbstPS: Im Script steht by SpyX4, so nenne ich mich in SA:MP und im MG3 Clan
breadfish.de/wcf/attachment/102/
Hier noch ein Download-Link neben dem Dateianhang:
DOWNLOAD (.PWN + .AMX) -
du musst in der Server.cfg direkt hinter "filterscripts" "XtremeAdmin2" schreiben und dann den Server neustarten
-
LOL das ist ja noch überflüssiger als mein ServerLog FS (http://forum.sa-mp.com/index.php?topic=41934.0) ...
Im game "/save" eingeben und dann findest du die Daten im SA-Ordner in der "savedpositions.txt"-Datei!