moin,
kurtzes problem:
error 047: array sizes do not match, or destination array is too small
die zeile: tInfo[i][Name] = dini_Get("save", "Name");
tInfo[i][Name] ist im enum mit 128 angegeben:
enum Teams
{
Name[128],
....
}
moin,
kurtzes problem:
error 047: array sizes do not match, or destination array is too small
die zeile: tInfo[i][Name] = dini_Get("save", "Name");
tInfo[i][Name] ist im enum mit 128 angegeben:
enum Teams
{
Name[128],
....
}
Spieler werden seperat gespeichert
moin,
bin gerade dabei Teams in ein enum zu packen, aber beim speichern und laden mit dini kommt eine warning und er speichert auch nix, woran kann das liegen?
Warning: warning 229: index tag mismatch (symbol "tInfo")
public OnGameModeExit()
{
for(new i = 0; i < MAX_Teams; i++)
{
new name[128], save[128];
name = tInfo[i][Name]; // Hier Die fehler zeile
format(save,sizeof(save),"/Teams/%s.ini",name);
dini_Create(save);
dini_Set(save,"Name",tInfo[i][Name]);
dini_FloatSet(save,"LSX",tInfo[i][lsX]);
dini_FloatSet(save,"LSY",tInfo[i][lsY]);
dini_FloatSet(save,"LSZ",tInfo[i][lsZ]);
dini_IntSet(save,"interls",pInfo[playerid][interls] );
dini_IntSet(save,"Virtls",pInfo[playerid][Virtls] );
}
return 1;
}
Kann mal jemand drübergucken, spawne im nix:
if(pickupid == ea1g)
{
//hier
for(new i;i!=MAX_HAUSER;i++)
{
new name[128];
GetPlayerName(playerid,name,sizeof(name));
if(Haus[i][besitzer] == name[127])
{
SetPlayerPos(playerid, Haus[i][Pos][0], Haus[i][Pos][1], Haus[i][Pos][2]);
SendClientMessage(playerid,COLOR_GREY,"Willkommen Zuhause");
}
}
}
muss ich bei der abfrage alle dateien durchgehen?
ich wüsste nicht was ich falsch gemacht habe
Hatte gerade selbes problem, hab die "ä" beim speicherpfad und dem ordner weggemacht, jetzt gehts bei mir
Weiß jemand wie ich den besitzer im haus spwanen lassen kann ?
bezüglich dem i was steckt dahinter ?
Sind dies Variabeln für Spieler.
das sind gangzonen
if(zone[i][copp] >= zone[i][grovep] && zone[i][copp] >= zone[i][mementop] && zone[i][copp] >= zone[i][cosap] && zone[i][copp] >= zone[i][yakuzap])
{
zone[i][besitzer] = 0;
GangZoneShowForAll(zone[i][zname], COLOR_zone0);
zone[i][angriff] = 0;
GangZoneStopFlashForAll(zone[i][zname]);
}
wie kann ich aus 6 variablen die größte herrausfinden??
glaube so funkionierts nicht oder? :
if(zone[i][grovep] >= zone[i][copp] && zone[i][grovep] >= zone[i][mementop] && zone[i][grovep] >= zone[i][cosap] && zone[i][grovep] >= zone[i][yakuzap])
Problem beim gangzonen system :
Beim sterben bekommt das team des getöteten punktabzug und das des killers punkte
public OnPlayerDeath(playerid, killerid, reason)
{
for(new i = 0;i < sizeof zone;i++)
{
if (IsPlayerInArea(playerid,zone[i][zone_minx], zone[i][zone_miny], zone[i][zone_maxx], zone[i][zone_maxy]))
{
if(zone[i][angriff] == 1)
{
if(pInfo[killerid][Team] <= 3)
{
zone[i][copp] += 5;
}
else if(pInfo[killerid][Team] == 5)
{
zone[i][grovep] += 5;
}
else if(pInfo[killerid][Team] == 6)
{
zone[i][mementop] += 5;
}
else if(pInfo[killerid][Team] == 7)
{
zone[i][cosap] += 5;
}
else if(pInfo[killerid][Team] == 8)
{
zone[i][yakuzap] += 5;
}
if(pInfo[playerid][Team] <= 3)
{
zone[i][copp] -= 6;
}
else if(pInfo[playerid][Team] == 5)
{
zone[i][grovep] -= 6;
}
else if(pInfo[playerid][Team] == 6)
{
zone[i][mementop] -= 6;
}
else if(pInfo[playerid][Team] == 7)
{
zone[i][cosap] -= 6;
}
else if(pInfo[playerid][Team] == 8)
{
zone[i][yakuzap] -= 6;
}
}
else
{
if(pInfo[killerid][Team] <= 3)
{
zone[i][copp] += 2;
}
else if(pInfo[killerid][Team] == 5)
{
zone[i][grovep] += 2;
}
else if(pInfo[killerid][Team] == 6)
{
zone[i][mementop] += 2;
}
else if(pInfo[killerid][Team] == 7)
{
zone[i][cosap] += 2;
}
else if(pInfo[killerid][Team] == 8)
{
zone[i][yakuzap] += 2;
}
if(pInfo[playerid][Team] <= 3)
{
zone[i][copp] -= 1;
}
else if(pInfo[playerid][Team] == 5)
{
zone[i][grovep] -= 1;
}
else if(pInfo[playerid][Team] == 6)
{
zone[i][mementop] -= 1;
}
else if(pInfo[playerid][Team] == 7)
{
zone[i][cosap] -= 1;
}
else if(pInfo[playerid][Team] == 8)
{
zone[i][yakuzap] -= 1;
}
}
}
}
return 1;
}
und wenn das besitzerteam weniger punkte hatt als ein anderes soll ein krieg beginnen, wo am ende ein team als neuer besitzer hervorgeht, jedoch ist hir keine reaktion
public Update()
{
if(skrieg == 0)
{
for(new i = 0;i < sizeof zone;i++)
{
if(zone[i][besitzer] == 0)
{
if(zone[i][copp] <= zone[i][grovep] || zone[i][copp] <= zone[i][mementop] || zone[i][copp] <= zone[i][cosap] || zone[i][copp] <= zone[i][yakuzap])
{
zone[i][angriff] = 1;
GangZoneFlashForAll(zone[i][zname],COLOR_zone1);
skrieg = 1;
SetTimer("ekrieg", 1000*60*4, 0);
}
}
else if(zone[i][besitzer] == 5)
{
if(zone[i][grovep] <= zone[i][copp] || zone[i][grovep] <= zone[i][mementop] || zone[i][grovep] <= zone[i][cosap] || zone[i][grovep] <= zone[i][yakuzap])
{
zone[i][angriff] = 1;
GangZoneFlashForAll(zone[i][zname],COLOR_zone1);
skrieg = 1;
SetTimer("ekrieg", 1000*60*4, 0);
}
}
else if(zone[i][besitzer] == 6)
{
if(zone[i][mementop] <= zone[i][copp] || zone[i][mementop] <= zone[i][grovep] || zone[i][mementop] <= zone[i][cosap] || zone[i][mementop] <= zone[i][yakuzap])
{
zone[i][angriff] = 1;
GangZoneFlashForAll(zone[i][zname],COLOR_zone1);
skrieg = 1;
SetTimer("ekrieg", 1000*60*4, 0);
}
}
else if(zone[i][besitzer] == 7)
{
if(zone[i][cosap] <= zone[i][copp] || zone[i][cosap] <= zone[i][mementop] || zone[i][cosap] <= zone[i][grovep] || zone[i][cosap] <= zone[i][yakuzap])
{
zone[i][angriff] = 1;
GangZoneFlashForAll(zone[i][zname],COLOR_zone1);
skrieg = 1;
SetTimer("ekrieg", 1000*60*4, 0);
}
}
else if(zone[i][besitzer] == 8)
{
if(zone[i][yakuzap] <= zone[i][copp] || zone[i][yakuzap] <= zone[i][mementop] || zone[i][yakuzap] <= zone[i][grovep] || zone[i][yakuzap] <= zone[i][cosap])
{
zone[i][angriff] = 1;
GangZoneFlashForAll(zone[i][zname],COLOR_zone1);
skrieg = 1;
SetTimer("ekrieg", 1000*60*4, 0);
}
}
}
}
public ekrieg()
{
for(new i = 0;i < sizeof zone;i++)
{
if(zone[i][copp] >= zone[i][grovep] && zone[i][copp] >= zone[i][mementop] && zone[i][copp] >= zone[i][cosap] && zone[i][copp] >= zone[i][yakuzap])
{
zone[i][besitzer] = 0;
GangZoneShowForAll(zone[i][zname], COLOR_zone0);
zone[i][angriff] = 0;
GangZoneStopFlashForAll(zone[i][zname]);
}
else if(zone[i][grovep] >= zone[i][copp] && zone[i][grovep] >= zone[i][mementop] && zone[i][grovep] >= zone[i][cosap] && zone[i][grovep] >= zone[i][yakuzap])
{
zone[i][besitzer] = 5;
GangZoneShowForAll(zone[i][zname], COLOR_T5);
zone[i][angriff] = 0;
GangZoneStopFlashForAll(zone[i][zname]);
}
else if(zone[i][mementop] >= zone[i][copp] && zone[i][mementop] >= zone[i][grovep] && zone[i][mementop] >= zone[i][cosap] && zone[i][mementop] >= zone[i][yakuzap])
{
zone[i][besitzer] = 6;
GangZoneShowForAll(zone[i][zname], COLOR_T6);
zone[i][angriff] = 0;
GangZoneStopFlashForAll(zone[i][zname]);
}
else if(zone[i][cosap] >= zone[i][copp] && zone[i][cosap] >= zone[i][mementop] && zone[i][cosap] >= zone[i][grovep] && zone[i][cosap] >= zone[i][yakuzap])
{
zone[i][besitzer] = 7;
GangZoneShowForAll(zone[i][zname], COLOR_T7);
zone[i][angriff] = 0;
GangZoneStopFlashForAll(zone[i][zname]);
}
else if(zone[i][yakuzap] >= zone[i][copp] && zone[i][yakuzap] >= zone[i][mementop] && zone[i][yakuzap] >= zone[i][grovep] && zone[i][yakuzap] >= zone[i][cosap])
{
zone[i][besitzer] = 8;
GangZoneShowForAll(zone[i][zname], COLOR_T8);
zone[i][angriff] = 0;
GangZoneStopFlashForAll(zone[i][zname]);
}
}
}
public krieg()
{
skrieg = 0;
}
//EDIT:
könnte es hier liegen?
if(zone[i][besitzer] == 0)
{
if(zone[i][copp] <= zone[i][grovep] || zone[i][copp] <= zone[i][mementop] || zone[i][copp] <= zone[i][cosap] || zone[i][copp] <= zone[i][yakuzap])
{
zone[i][angriff] = 1;
GangZoneFlashForAll(zone[i][zname],COLOR_zone1);
skrieg = 1;
SetTimer("ekrieg", 1000*60*4, 0);
}
}
copp ist = 2 und grovep = 3 es pasiert aber leider nix
Vielen dank für die schnelle und hilfreiche antwort :))
es funktioniert nun.
Habe ein enum mit Gangzonen erstellt, diese sollen eine für den besitzer definierte farbe bekommen, zum testen hab ich einer mal den besitzer 5 gegeben, dann sollte die zone grün sein, es wird aber nix angezeigt
weiß jemand was ich falsch gemacht habe?
#define COLOR_zone0 0xAAAAAA00
#define COLOR_T5 0x00FF0059
#define COLOR_T6 0xD7000059
#define COLOR_T7 0xD7FF0059
#define COLOR_T8 0x00000059
enum izone
{
name[32],
besitzer,
angriff,
grovep,
mementop,
cosap,
yakuzap,
copp,
Float:zone_minx,
Float:zone_miny,
Float:zone_maxx,
Float:zone_maxy
}
new zone[8][izone] = {
{"Docks",5,0,0,0,0,0,0,2318.883, -2763.543, 2862.689, -2309.553},
{"Airport",0,0,0,0,0,0,0,1307.329, -2731.961, 2151.559, -2175.33},
{"Marked",0,0,0,0,0,0,0,1010.708, -2199.016, 1668.599, -1839.771},
{"ShoppingCentre",0,0,0,0,0,0,0,1063.948, -1583.168, 1368.174, -1401.572},
{"Drughouse",0,0,0,0,0,0,0,641.8328, -1614.75, 877.6086, -1401.572},
{"REDHouse",0,0,0,0,0,0,0,326.1974, -1831.876, 676.0583, -1401.572},
{"Villen",0,0,0,0,0,0,0,193.0981, -1429.206, 542.959, -1105.492},
{"GelenPark",0,0,0,0,0,0,0,1835.923, -1468.684, 2079.305, -1121.283}
};
public OnPlayerSpawn(playerid)
{
for(new i = 0;i < sizeof zone;i++)
{
zone[i][name] = GangZoneCreate(zone[i][Float:zone_minx], zone[i][Float:zone_miny], zone[i][Float:zone_maxx], zone[i][Float:zone_maxy]);
if(zone[i][besitzer] == 0)
{
GangZoneShowForAll(zone[i][name], COLOR_zone0);
}
if(zone[i][besitzer] == 5)
{
GangZoneShowForAll(zone[i][name], COLOR_T5);
}
}
}
Habe ein Problem, wenn ich den folgenden code Nutze kommt als text nur raus: "*team*[name] " der text der verbreitet werden soll fehlt...
if(strcmp(cmd, "/t", true) == 0)
{
new str[64];
new text[256];
new string[256];
text[128] = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
GetPlayerName(playerid, str, sizeof str);
format(string,sizeof(string),"*Team* %s: %s",str,text);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(pInfo[i][plogin] == 1)
{
if(pInfo[i][Team] == pInfo[playerid][Team])
{
SendClientMessage(i, COLOR_GREEN, string);
}
}
}
}
}
danke funktioniert nun^^
sind 2 variablen, einmal memento und einmal amemento
Ich habe ein problem, eigentlich sollte im folgenden code bei %s die hinter dem text stehende variable ausgegeben werden, es kommt aber nur Ü,X oder sowas
woran ligt das?
HIer der code schnipsel:
if(pickupid == mpick) //MEMENTO MORI WAFFEN
{
if(pInfo[playerid][Team] == 6)
{
SendClientMessage(playerid,COLOR_GREY,"****************************");
SendClientMessage(playerid,COLOR_GREY,"* - * Gang Waffenlager * - *");
SendClientMessage(playerid,COLOR_GREY,"****************************");
SendClientMessage(playerid,COLOR_GREY,"* Memento Mori");
new mwlvl;
new string[128];
mwlvl = fraktionskasse[memento];
format(string, sizeof(string), "* Waffenanzahl: %s", (fraktionskasse[amemento]));
SendClientMessage(playerid, COLOR_GREY, string);
format(string, sizeof(string), "* WaffenLevel %s", mwlvl);
SendClientMessage(playerid, COLOR_GREY, string);
SendClientMessage(playerid,COLOR_GREY,"****************************");
Ich wollte mal fragen, ob es möglich ist ein und die selbe variable im gamemode und im filterscript zu laden und zu bearbeiten?
Vielen Dank alles wieder ok...
Habe meinen gamemode aus dem alten (3.0c) in den neuen (3.0e) server kopiert und auf einmal 26 error....
könnte ein klammerfehler sein, aber ich finde keinen
C:\Users\Karin\Desktop\Selfmade server\pawno\include\string.inc(0) : error 075: input line too long (after substitutions)
C:\Users\Karin\Desktop\Selfmade server\pawno\include\string.inc(1) : error 075: input line too long (after substitutions)
C:\Users\Karin\Desktop\Selfmade server\pawno\include\dutils.inc(282) : error 017: undefined symbol "strlen"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\dutils.inc(301) : error 017: undefined symbol "strlen"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\dutils.inc(302) : error 017: undefined symbol "strlen"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\dutils.inc(302) : error 017: undefined symbol "strlen"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\dutils.inc(355) : error 017: undefined symbol "strlen"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\dutils.inc(369) : error 017: undefined symbol "strlen"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\dutils.inc(370) : error 017: undefined symbol "strcmp"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\dutils.inc(368) : warning 203: symbol is never used: "ignorecase"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\dutils.inc(381) : error 017: undefined symbol "strlen"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\dutils.inc(466) : error 017: undefined symbol "strlen"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\dutils.inc(469) : error 017: undefined symbol "strlen"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\dini.inc(48) : error 017: undefined symbol "strfind"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\dini.inc(49) : error 017: undefined symbol "strfind"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\dini.inc(56) : error 017: undefined symbol "strfind"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\dini.inc(59) : error 017: undefined symbol "strfind"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\dini.inc(109) : error 017: undefined symbol "strval"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\dini.inc(174) : error 017: undefined symbol "strcat"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\Dudb.inc(35) : error 017: undefined symbol "strlen"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\utils.inc(3) : error 017: undefined symbol "strlen"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\utils.inc(22) : error 017: undefined symbol "strval"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\utils.inc(50) : error 017: undefined symbol "strlen"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\utils.inc(58) : error 017: undefined symbol "strcmp"
C:\Users\Karin\Desktop\Selfmade server\pawno\include\utils.inc(60) : error 017: undefined symbol "strlen"
C:\Users\Karin\Desktop\Selfmade\Reallife.pwn(167) : warning 202: number of arguments does not match definition
C:\Users\Karin\Desktop\Selfmade\Reallife.pwn(693) : warning 235: public function lacks forward declaration (symbol "OnPlayerPrivmsg")
C:\Users\Karin\Desktop\Selfmade\Reallife.pwn(707) : error 017: undefined symbol "strcmp"
C:\Users\Karin\Desktop\Selfmade\Reallife.pwn(733) : error 017: undefined symbol "strcmp"
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
26 Errors.
danke, funzt nun
euch noch ein frohes fest
was habe ich falsch gemacht?
dcmd_Invite(playerid,params[]) {
if(!strlen(params)) {
return SendClientMessage(playerid,COLOR_RED,"/Invite [playerid]");
}
new pID=strval(params);
if(!IsPlayerConnected(pID)) {
return SendClientMessage(playerid,COLOR_RED,"Kein Spieler mit angegebener ID Online");
}
else {
SetPVarInt(pID,"invite", pInfo[playerid][Team]); // : error 017: undefined symbol "pID"
SendClientMessage(pID,COLOR_YELLOW,"Du Wurdest in eine Fraktion eingeladen, tippe /japs oder /nein");
SendClientMessage(playerid,COLOR_YELLOW,"einladung Erfolgreich versendet!");
return 1;
}
}
Würde gerne einen "invite" und "ja" befehl in mein script einbauen, habe jedoch keine ahnung wo ich anfangen soll....,
die variable "Team" vom leader soll, bei dem befehl "ja" gleich der variable des eingeladenen werden, die kann ein spieler der einen cdm eingibt bei einem anderen ein event auslösen, und dann auf die variable des leaders der gesendet hatt zugreifen?
würde gerne mit "strcmp()" arbeiten, für eine erklärung mit beispiel wäre ich sehr dankbar...