Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.

  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Operacje bitowe


  • Zamknięty Temat jest zamknięty
8 odpowiedzi w tym temacie

#1 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6032
Godlike

  • Postów:10825
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 05.08.2010 19:08

#define g_isalive[%1] g_isalive & (1<<%1)
#define g_isalive[%1]=1 g_isalive |= (1<<%1)
#define g_isalive[%1]=0 g_isalive &=  ~(1<<%1)

new g_isalive;

#include "mt2/events.inl"

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	RegisterHam(Ham_Spawn,"player","spawned")
	RegisterHam(Ham_Killed,"player","killed")
}


#if defined _events_included
   #endinput
#endif
#define _events_included

public spawned(id){
	g_isalive[id]=1
}

public killed(id,idattacker, shouldgib){
	g_isalive[id]=0
}


Welcome to the AMX Mod X 1.76-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

F:\dropbox\My Dropbox\Metin2 Mod\addons\amxmodx\scripting\metin2mod.sma(92) : warning 201: redefinition of constant/macro (symbol "g_isalive[%1]=1")
F:\dropbox\My Dropbox\Metin2 Mod\addons\amxmodx\scripting\metin2mod.sma(93) : warning 201: redefinition of constant/macro (symbol "g_isalive[%1]=0")
C:\Documents and Settings\Home\Desktop\compiler\compiler\include\mt2/events.inl(7) : error 028: invalid subscript (not an array or too many subscripts): "g_isalive"
C:\Documents and Settings\Home\Desktop\compiler\compiler\include\mt2/events.inl(7) : warning 215: expression has no effect
C:\Documents and Settings\Home\Desktop\compiler\compiler\include\mt2/events.inl(7) : error 001: expected token: ";", but found "]"
C:\Documents and Settings\Home\Desktop\compiler\compiler\include\mt2/events.inl(7) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Home\Desktop\compiler\compiler\include\mt2/events.inl(7) : fatal error 107: too many error messages on one line

Compilation aborted.
4 Errors.
Could not locate output file C:\Documents and Settings\Home\Desktop\compiler\compiler\compiled\metin2mod.amx (compile failed).

Compilation Time: 0,42 sec

pomóżcie bo zaraz mnie coś strzeli <_<

Użytkownik DarkGL edytował ten post 05.08.2010 19:09

  • +
  • -
  • 0

#2 R3X

    Godlike

  • Przyjaciel

Reputacja: 2960
Godlike

  • Postów:4247
  • Lokalizacja:Nie
Offline

Napisano 05.08.2010 19:37

#define g_isalive[%1] g_isalive & (1<<%1)
#define g_isalive[%1]=1 g_isalive |= (1<<%1)
#define g_isalive[%1]=0 g_isalive &=  ~(1<<%1)
te makra się nakrywają tak, że definiując drugie nie masz już pierwszego, a trzecie anuluje drugie,
możesz zrobić
#define g_isalive[%1] g_isalive & (1<<%1)
#define g_isalive2[%1]=1 g_isalive |= (1<<%1)
#define g_isalive3[%1]=0 g_isalive &=  ~(1<<%1)
ale to głupie; jak chcesz sobie ułatwić zapis możesz przeładować operatory + - == !

dlaczego nie użyjesz tablicy?
  • +
  • -
  • 0

#3 DarkGL

    Nie oddam ciasteczka !

  • Autor tematu
  • Administrator

Reputacja: 6032
Godlike

  • Postów:10825
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 05.08.2010 19:57

jak się nakrywają przecież g_isalive[%1] to nie to samo co g_isalive[%1]=1
  • +
  • -
  • 0

#4 R3X

    Godlike

  • Przyjaciel

Reputacja: 2960
Godlike

  • Postów:4247
  • Lokalizacja:Nie
Offline

Napisano 05.08.2010 20:34

F:\dropbox\My Dropbox\Metin2 Mod\addons\amxmodx\scripting\metin2mod.sma(92) : warning 201: redefinition of constant/macro (symbol "g_isalive[%1]=1")
F:\dropbox\My Dropbox\Metin2 Mod\addons\amxmodx\scripting\metin2mod.sma(93) : warning 201: redefinition of constant/macro (symbol "g_isalive[%1]=0")
komunikat jes wyraźny, nie znam dokładnego zachowania kompilatora w takim przypadku, ale na pewno nie są to 3 niezależne makra
  • +
  • -
  • 0

#5 DarkGL

    Nie oddam ciasteczka !

  • Autor tematu
  • Administrator

Reputacja: 6032
Godlike

  • Postów:10825
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 06.08.2010 00:31

no właśnie myślałem że #define ustala co jest podmieniane w kodzie przez preprocesor czyli tak naprawdę kompilator dostaje inny kod niż widzi go programista
np.
#define asd 1

new tab[asd]

a kompilator dostanie taki kod
new tab[1]

  • +
  • -
  • 0

#6 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1339
Godlike

  • Postów:3556
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 06.08.2010 16:44

bo tak jest
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#7 R3X

    Godlike

  • Przyjaciel

Reputacja: 2960
Godlike

  • Postów:4247
  • Lokalizacja:Nie
Offline

Napisano 06.08.2010 21:09

przy definiowaniu z '=' jest widocznie inaczej, zrobiłem mały dumping (dodałem -l do linii kompilatora)
#define g[%1]=1 (%1)
#define g[%1] (%1)

public temp(){
	g[1];
}
public temp(){
	(1);
}
#define g[%1]=1 (%1)
#define g[%1] (%1)

public temp(){
	g[1]=1;
}
public temp(){
	(1)=1;
}

Zamiana makr kolejnością
#define g[%1] (%1)
#define g[%1]=1 (%1)

public temp(){
	g[1];
}
public temp(){
	g[1];
}
#define g[%1] (%1)
#define g[%1]=1 (%1)

public temp(){
	g[1]=1;
}
public temp(){
	(1)
}

Widać, że tak zbudowane makra ze sobą kolidują
  • +
  • -
  • 0

#8 DarkGL

    Nie oddam ciasteczka !

  • Autor tematu
  • Administrator

Reputacja: 6032
Godlike

  • Postów:10825
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 06.08.2010 21:16

post do usunięcia skupiłem się na kodzie nie na reszcie postu r3x ;F

Użytkownik DarkGL edytował ten post 06.08.2010 21:16

  • +
  • -
  • 0

#9 R3X

    Godlike

  • Przyjaciel

Reputacja: 2960
Godlike

  • Postów:4247
  • Lokalizacja:Nie
Offline

Napisano 06.08.2010 21:17

Na to wygląda, z początku myślałem że chodzi o parametryczność, ale się poprawiłem szybko :)
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych