Ich benutze ein GF und wollte[...]
Er hat einen GF.. Naja ich muss schon zugeben das The Godfather ist schon ziemlich schwer zu übersehen ...
Ich benutze ein GF und wollte[...]
Er hat einen GF.. Naja ich muss schon zugeben das The Godfather ist schon ziemlich schwer zu übersehen ...
1. Pushen verboten-.-
2. Geh in die Godfather Sektion.
/*
Dein Problem war, dass du immer ein if genommen hast. else if gehört hier rein.
*/
if(!strcmp(strget(cmdtext,0),"/nehmwaffe"))
{
if(PlayerToPoint(5.0, playerid, -728.1709,1545.3650,39.0132)) { // wenn du 0.3 hast solltest du kein PlayerToPoint mehr benutzen ;)
new gunz = strval(strget(cmdtext,1));
new mats = PlayerInfo[playerid][Mats];
if(!strlen(strget(cmdtext,1))) {
SendClientMessage(playerid,0xFFFFFF,"Benutze: /nehmwaffe [Waffenname] ");
SendClientMessage(playerid,0xFFFFFF,"Verfügbare Namen: ak47 (600) , deagle (250) , raketenwerfer (1300)");
SendClientMessage(playerid,0xFFFFFF,"mp5 (350), rifle (700)");
return true;
}
new ak47 = GivePlayerWeapon(playerid, 30, 250);
new deagle = GivePlayerWeapon(playerid, 24, 100); // in dem Fall ist es echt übersichtlicher das so zu schreiben^^
new raketenwerfer = GivePlayerWeapon(playerid, 35, 5);
new mp5 = GivePlayerWeapon(playerid, 29, 180);
new rifle = GivePlayerWeapon(playerid, 33, 50);
if(gunz == ak47 && mats >= 600) {
GivePlayerWeapon(playerid , ak47);
SendClientMessage(playerid, 0xFFFFFF, "Du hast dir eine AK47 mit 250 Schuss geholt!");
mats -=600;
}
else if(gunz == deagle && mats >= 250) { // aus 2 if Abfragen eine gemacht
GivePlayerWeapon(playerid, deagle);
SendClientMessage(playerid, 0xFFFFFF, "Du hast dir eine Deagle mit 100 Schuss geholt!");
mats -=250;
}
else if(gunz == raketenwerfer && mats >= 1300) {
GivePlayerWeapon(playerid, raketenwerfer);
SendClientMessage(playerid, 0xFFFFFF, "Du hast dir einen Raketenwerfer mit 5 Schuss geholt");
mats -=1300;
}
else if(gunz == mp5 && mats >= 350) {
GivePlayerWeapon(playerid, mp5);
SendClientMessage(playerid, 0xFFFFFF, "Du hast dir eine MP5 mit 180 Schuss geholt!");
mats -=350;
}
else if(gunz == rifle && mats >= 700) {
GivePlayerWeapon(playerid, rifle);
SendClientMessage(playerid, 0xFFFFFF, "Du hast dir eine Rifle mit 50 Schuss geholt!");
mats -=700;
}
}
return true;
}
Naja scheint für Anfänger nicht so gut zu sein da es viele Bugs hat,
Der einzige mir bekannte Bug ist der mit dem Login. Wer dieses Script verwenden will kann sich auch ein Login/Registersystem Filterscript downloaden und einfügen, mir egal.
mfg
surrender
Du hast jeweils immer ein Komma zu viel.
Hi,
hier seht ihr mein erstes Release (vielleicht auch letztes kp).
Es handelt sich um einen Reallife/Roleplay Gamemode, der eigentlich später für einen Server (Ultimate Roleplay) gedacht war.
Da ich aber auf IV:MP umsteige (ein bisschen Eigenwerbung: IV:Roleplay) hab ich mir gedacht, lass ich den GM nich so vergammeln.
Was er alles beinhaltet, seht ihr wenn ihr ihn aufmacht.
Wichtig
Ihr müsst im Ordner scriptfiles noch zwei weitere Ordner erstellen: user und logs
Bekannte Bugs
- Das Login/Registersystem ist ziemlich unfertig/buggy. Die Sachen werden (soweit ich noch weiß), konkret gespeichert aber nicht geladen. Wer mir das hinbiegt bekommt fette Credits.
- Bei /login wird das PW nicht korrekt rausgelesen.
Ist nichts großes, Posts & Downloads aber gerne gesehen.
mfg
surrender
PS: Ist in eine .zip gepackt, weil ich hier keine 38KB uploaden darf.
public OnPlayerRequestClass(playerid, classid)
{
if(classid == 0) {
SetPlayerPos(1922.2555,-1117.0929,26.7295);
SetPlayerCameraPos(playerid,1922.2555,-1117.0929,26.7295);
//hier ist die zeile 37
SetPlayerCameraLookAt(playerid,1922.2555,-1117.0929,26.7295);
}
else if(classid == 1) {
SetPlayerPos(2489.6257,-1685.6521,13.5097);
SetPlayerCameraPos(playerid,2489.6257,-1685.6521,13.5097);
SetPlayerCameraLookAt(playerid,2489.6257,-1685.6521,13.5097);
}
return true;
}
Ey Nacho/Surrender dieser Thread ist im Bereich "Scriptwünsche" hmm also ich glaube das ist ein Thread wo man "wünsche" eusern kann und nicht wo man Spamt "Machs doch selbst"
Ich habe ihm ledeglich einen Rat gegeben, wie man es selbst machen kann-.- Und das sogar mit Link.
Wenn er sagt das nehme ich nich, ist mir das egal. Es war bloß ein Tipp.
Das liegt an der PickupID.
Wenn der Cop es nur so schreibt? Wenn er es in einem CMD macht zB /copcmds 10-4? Infos!!
Hat nichts damit zu tun..
Also bitte, gehts noch?
In dem Link ist fast alles drin was du wolltest, also klick einfach mal drauf!
Jo und aus dem OnGameModeInit bitte OnFilterScriptInit machen.
Ungetestet, ist ein Filterscript.
#include <a_samp>
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
#define WHITE 0xFFFFFF00
new WantedPickup;
public OnGameModeInit()
{
WantedPickup = CreatePickup(1247, 3, X, Y, Z);
}
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(wlevel, 6, cmdtext);
return false;
}
public OnPlayerDeath(playerid, killerid, reason)
{
SetPlayerWantedLevel(playerid, 0);
return true;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == WantedPickup && GetPlayerWantedLevel(playerid) > 0)
{
SetPlayerWantedLevel(playerid, --);
}
}
dcmd_wlevel(playerid, params[])
{
new typ, wanteds, name[MAX_PLAYER_NAME],tname[MAX_PLAYER_NAME], s[128];
if(!IsPlayerAdmin(playerid)) return false;
if(sscanf(params, "ui", typ, wanteds)) return SendClientMessage(playerid, WHITE, "* Verwendung: /wlevel [SpielerID/Name] [Sterne]");
if(typ == INVALID_PLAYER_ID)
{
SendClientMessage(playerid, WHITE, "* Diese ID ist nicht vergeben.");
return true;
}
if(wanteds < 0 || wanteds > 6) return SendClientMessage(playerid, WHITE, "* Es darf nicht weniger als 0 und nicht mehr als 6 Wanteds vergeben werden.");
SetPlayerWantedLevel(typ, wanteds);
GetPlayerName(playerid, name, sizeof(name));
GetPlayerName(playerid, name, sizeof(name));
format(s, sizeof (s), "* %s hat %s (ID: %d) WantedLevel %d gegeben.", name, tname, typ, wanteds);
SendClientMessageToAll(WHITE, s);
return true;
}
stock sscanf(string[], format[], {Float,_}:...)
{
#if defined isnull
if (isnull(string))
#else
if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
#endif
{
return format[0];
}
#pragma tabsize 4
new
formatPos = 0,
stringPos = 0,
paramPos = 2,
paramCount = numargs(),
delim = ' ';
while (string[stringPos] && string[stringPos] <= ' ')
{
stringPos++;
}
while (paramPos < paramCount && string[stringPos])
{
switch (format[formatPos++])
{
case '\0':
{
return 0;
}
case 'i', 'd':
{
new
neg = 1,
num = 0,
ch = string[stringPos];
if (ch == '-')
{
neg = -1;
ch = string[++stringPos];
}
do
{
stringPos++;
if ('0' <= ch <= '9')
{
num = (num * 10) + (ch - '0');
}
else
{
return -1;
}
}
while ((ch = string[stringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num * neg);
}
case 'h', 'x':
{
new
num = 0,
ch = string[stringPos];
do
{
stringPos++;
switch (ch)
{
case 'x', 'X':
{
num = 0;
continue;
}
case '0' .. '9':
{
num = (num << 4) | (ch - '0');
}
case 'a' .. 'f':
{
num = (num << 4) | (ch - ('a' - 10));
}
case 'A' .. 'F':
{
num = (num << 4) | (ch - ('A' - 10));
}
default:
{
return -1;
}
}
}
while ((ch = string[stringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num);
}
case 'c':
{
setarg(paramPos, 0, string[stringPos++]);
}
case 'f':
{
setarg(paramPos, 0, _:floatstr(string[stringPos]));
}
case 'p':
{
delim = format[formatPos++];
continue;
}
case '\'':
{
new
end = formatPos - 1,
ch;
while ((ch = format[++end]) && ch != '\'') {}
if (!ch)
{
return -1;
}
format[end] = '\0';
if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
{
if (format[end + 1])
{
return -1;
}
return 0;
}
format[end] = '\'';
stringPos = ch + (end - formatPos);
formatPos = end + 1;
}
case 'u':
{
new
end = stringPos - 1,
id = 0,
bool:num = true,
ch;
while ((ch = string[++end]) && ch != delim)
{
if (num)
{
if ('0' <= ch <= '9')
{
id = (id * 10) + (ch - '0');
}
else
{
num = false;
}
}
}
if (num && IsPlayerConnected(id))
{
setarg(paramPos, 0, id);
}
else
{
#if !defined foreach
#define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
#define __SSCANF_FOREACH__
#endif
string[end] = '\0';
num = false;
new
name[MAX_PLAYER_NAME];
id = end - stringPos;
foreach (Player, playerid)
{
GetPlayerName(playerid, name, sizeof (name));
if (!strcmp(name, string[stringPos], true, id))
{
setarg(paramPos, 0, playerid);
num = true;
break;
}
}
if (!num)
{
setarg(paramPos, 0, INVALID_PLAYER_ID);
}
string[end] = ch;
#if defined __SSCANF_FOREACH__
#undef foreach
#undef __SSCANF_FOREACH__
#endif
}
stringPos = end;
}
case 's', 'z':
{
new
i = 0,
ch;
if (format[formatPos])
{
while ((ch = string[stringPos++]) && ch != delim)
{
setarg(paramPos, i++, ch);
}
if (!i)
{
return -1;
}
}
else
{
while ((ch = string[stringPos++]))
{
setarg(paramPos, i++, ch);
}
}
stringPos--;
setarg(paramPos, i, '\0');
}
default:
{
continue;
}
}
while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
{
stringPos++;
}
while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
{
stringPos++;
}
paramPos++;
}
do
{
if ((delim = format[formatPos++]) > ' ')
{
if (delim == '\'')
{
while ((delim = format[formatPos++]) && delim != '\'') {}
}
else if (delim != 'z')
{
return delim;
}
}
}
while (delim > ' ');
return 0;
}
#include <a_samp>
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
#define WHITE 0xFFFFFF00
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(wlevel, 6, cmdtext);
return false;
}
public OnPlayerDeath(playerid, killerid, reason)
{
SetPlayerWantedLevel(playerid, 0);
return true;
}
dcmd_wlevel(playerid, params[])
{
new typ, wanteds, s[128];
if(!IsPlayerAdmin(playerid)) return false;
if(sscanf(params, "ui", typ, wanteds)) return SendClientMessage(playerid, WHITE, "* Verwendung: /wlevel [SpielerID/Name] [Sterne]");
if(typ == INVALID_PLAYER_ID)
{
format(s,sizeof(s),"* Die ID %d ist nicht vergeben.",typ);
SendClientMessage(playerid, WHITE, s);
return true;
}
SetPlayerWantedLevel(typ, wanteds);
format(s, sizeof (s), "* %s hat %s (ID: %d) %d WantedLevel gegeben.", GetPlayerName(playerid,s, sizeof(s)),GetPlayerName(typ,s, sizeof(s)),typ, s);
SendClientMessageToAll(WHITE, s);
return true;
}
stock sscanf(string[], format[], {Float,_}:...)
{
#if defined isnull
if (isnull(string))
#else
if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
#endif
{
return format[0];
}
#pragma tabsize 4
new
formatPos = 0,
stringPos = 0,
paramPos = 2,
paramCount = numargs(),
delim = ' ';
while (string[stringPos] && string[stringPos] <= ' ')
{
stringPos++;
}
while (paramPos < paramCount && string[stringPos])
{
switch (format[formatPos++])
{
case '\0':
{
return 0;
}
case 'i', 'd':
{
new
neg = 1,
num = 0,
ch = string[stringPos];
if (ch == '-')
{
neg = -1;
ch = string[++stringPos];
}
do
{
stringPos++;
if ('0' <= ch <= '9')
{
num = (num * 10) + (ch - '0');
}
else
{
return -1;
}
}
while ((ch = string[stringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num * neg);
}
case 'h', 'x':
{
new
num = 0,
ch = string[stringPos];
do
{
stringPos++;
switch (ch)
{
case 'x', 'X':
{
num = 0;
continue;
}
case '0' .. '9':
{
num = (num << 4) | (ch - '0');
}
case 'a' .. 'f':
{
num = (num << 4) | (ch - ('a' - 10));
}
case 'A' .. 'F':
{
num = (num << 4) | (ch - ('A' - 10));
}
default:
{
return -1;
}
}
}
while ((ch = string[stringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num);
}
case 'c':
{
setarg(paramPos, 0, string[stringPos++]);
}
case 'f':
{
setarg(paramPos, 0, _:floatstr(string[stringPos]));
}
case 'p':
{
delim = format[formatPos++];
continue;
}
case '\'':
{
new
end = formatPos - 1,
ch;
while ((ch = format[++end]) && ch != '\'') {}
if (!ch)
{
return -1;
}
format[end] = '\0';
if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
{
if (format[end + 1])
{
return -1;
}
return 0;
}
format[end] = '\'';
stringPos = ch + (end - formatPos);
formatPos = end + 1;
}
case 'u':
{
new
end = stringPos - 1,
id = 0,
bool:num = true,
ch;
while ((ch = string[++end]) && ch != delim)
{
if (num)
{
if ('0' <= ch <= '9')
{
id = (id * 10) + (ch - '0');
}
else
{
num = false;
}
}
}
if (num && IsPlayerConnected(id))
{
setarg(paramPos, 0, id);
}
else
{
#if !defined foreach
#define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
#define __SSCANF_FOREACH__
#endif
string[end] = '\0';
num = false;
new
name[MAX_PLAYER_NAME];
id = end - stringPos;
foreach (Player, playerid)
{
GetPlayerName(playerid, name, sizeof (name));
if (!strcmp(name, string[stringPos], true, id))
{
setarg(paramPos, 0, playerid);
num = true;
break;
}
}
if (!num)
{
setarg(paramPos, 0, INVALID_PLAYER_ID);
}
string[end] = ch;
#if defined __SSCANF_FOREACH__
#undef foreach
#undef __SSCANF_FOREACH__
#endif
}
stringPos = end;
}
case 's', 'z':
{
new
i = 0,
ch;
if (format[formatPos])
{
while ((ch = string[stringPos++]) && ch != delim)
{
setarg(paramPos, i++, ch);
}
if (!i)
{
return -1;
}
}
else
{
while ((ch = string[stringPos++]))
{
setarg(paramPos, i++, ch);
}
}
stringPos--;
setarg(paramPos, i, '\0');
}
default:
{
continue;
}
}
while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
{
stringPos++;
}
while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
{
stringPos++;
}
paramPos++;
}
do
{
if ((delim = format[formatPos++]) > ' ')
{
if (delim == '\'')
{
while ((delim = format[formatPos++]) && delim != '\'') {}
}
else if (delim != 'z')
{
return delim;
}
}
}
while (delim > ' ');
return 0;
}
Dann schau ins Wiki! Und du kannst auch nicht hoffen, dass es dir jemand machen wird, wenn du "versteh ich nicht" o.ä. schreibst..
Was hat sowas mit der Postzahl zu tun?
Du schreibst in deiner Sig, dass du kein Pawnosupport gibst, obwohl du selber immer bei den einfachsten Problemen Hilfe brauchst. Und das, nachdem du einen Gamemode selbst gemacht hast. Wenn der mal nicht Copy & Paste ist.
Und ich wette mit dir, meine 209 Posts sind qualitativer als deine 1200